我試圖學習如何編寫一個sysfs模塊,並對基本初始化感到困惑。在查看kobject.h文件的this文檔中,有幾個與創建sysfs條目相關的不同功能。編寫一個Sysfs模塊
從它的外觀,功能「kobject_init_and_add」好像使用了正確的事情,這需要執行以下操作:
90 int kobject_init_and_add(struct kobject *kobj,
91 struct kobj_type *ktype, struct kobject *parent,
92 const char *fmt, ...);
結構的kobject和結構kobj_type是簡單的就夠了,但我不明白*父母kobject和* fmt cstring應該是什麼。另外,在初始化這些對象之後,我需要在exit_module函數中刪除它們,但有兩個選項似乎是可能的:kobject_del和kobject_puts。這些有什麼區別?
我的一部分混亂來自這樣一個事實,即雖然用Google搜索答案,但我看到的教程說使用kobject_register之類的函數,但實際上並不存在。
因此,對於像sysfs_create_group示例中的&module_attr這樣的屬性,其中是否定義了&module_attr?因爲那似乎是我遇到麻煩的地方。我讀過你可以使用__ATTR宏,但這對我造成了錯誤。 – Zephyr
您可以像下面的結構那樣定義 static struct attribute_group module_attr = { 。attrs = module_attribute, }; –
瞭解,我的問題是,你使用的'module_attribute'是否需要事先定義,或者只是聲明? – Zephyr