*参照元 [#mb8a2e6e]
#backlinks

*説明 [#jb523e2c]
-パス: [[linux-4.4.1/include/linux/device.h]]

-FIXME: これは何?
--説明


**引数 [#tad17177]
-__driver
--ドライバの定義
--例えば platform_driver ならば struct platform_driver 型の変数を指定する。
-__register
--ドライバの登録を行う関数。
-__unregister
--ドライバの登録解除を行う関数。
-...
--


**返り値 [#h0d52913]
-なし
-なし、関数では無い


**参考 [#oadcb381]


*実装 [#a5e0ef7d]
 /**
  * module_driver() - Helper macro for drivers that don't do anything
  * special in module init/exit. This eliminates a lot of boilerplate.
  * Each module may only use this macro once, and calling it replaces
  * module_init() and module_exit().
  *
  * @__driver: driver name
  * @__register: register function for this driver type
  * @__unregister: unregister function for this driver type
  * @...: Additional arguments to be passed to __register and __unregister.
  *
  * Use this macro to construct bus specific macros for registering
  * drivers, and do not use it on its own.
  */
 #define module_driver(__driver, __register, __unregister, ...) \
 static int __init __driver##_init(void) \
 { \
         return __register(&(__driver) , ##__VA_ARGS__); \
 } \
 module_init(__driver##_init); \
-
--[[linux-4.4.1/module_init()]]

 static void __exit __driver##_exit(void) \
 { \
         __unregister(&(__driver) , ##__VA_ARGS__); \
 } \
 module_exit(__driver##_exit);
-
--[[linux-4.4.1/module_exit()]]


*コメント [#n539a751]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS