sysfs節點之DEVICE ATTR類

2021-09-11 07:53:11 字數 982 閱讀 3230

#define device_attr(_name, _mode, _show, _store) \

struct device_attribute dev_attr_**_name = __attr(_name, _mode, _show, _store)

_name:名稱,也就是將在sys fs中生成的檔名稱。

_mode:上述檔案的訪問許可權

_show:顯示函式,cat該檔案時,此函式被呼叫。

_store:寫函式,echo內容到該檔案時,此函式被呼叫。

##_attr不止一種形式,還有device_attr、driver_attr、bus_attr、calss_attr。

static ssize_t ##_store(struct class *cls,struct class_attribute *attr,const char *_buf,size_t _count)

static ssize_t ##_show(struct class *cls,struct class_attribute *attr,const char *_buf)

static struct class_attribute **_attrs=

static struct calss telpoio_attrs_class =

static int **_probe(struct platform_device *pdev)

或者static class_attr(name,0666,null,##_store);

static int **_probe(struct platform_device *pdev)

class_create()函式建立乙個類存放在sysfs下面,

然後通過device_create()函式在/dev目錄下建立相應的裝置節點。

這樣,載入模組的時候,使用者空間中的udev會自動響應 device_create()函式,

去/sysfs下尋找對應的類從而建立裝置節點。

linux之sysfs檔案系統

介紹sysfs 檔案系統 linux 2.6 核心中引入了 sysfs 檔案系統,是使用者空間與核心空間進行互動的乙個媒介。比起古老的 proc 檔案系統,它是基於 核心的資料結構 因此組織結構上更加嚴密。它的設計使核心的資訊更易獲取,而且更加清晰。核心空間與使用者空間的對映關係如下表所示 核心空間...

sysfs之platform匯流排初始化簡單分析

int init platform bus init void 第5行使用device register函式註冊platform bus裝置 第8行使用bus register函式註冊乙個匯流排。第10行如果註冊失敗,解除安裝匯流排。int device register struct device...

Curator之建立節點。

curator中提供了一系列fluent風格的介面,開發人員可以通過對其進行自由組合來完成各種型別節點的建立。createbuilder createmodable pathandbytesable 以上就是一系列最常用的建立節點api。下面通過一些場景來說明如何使用這些api。client.cre...