*参照元 [#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]