.. | .. |
---|
272 | 272 | } \ |
---|
273 | 273 | module_exit(__driver##_exit); |
---|
274 | 274 | |
---|
| 275 | +#define module_driver1(__driver, __register, __unregister, ...) \ |
---|
| 276 | +static int __init __driver##_init(void) \ |
---|
| 277 | +{ \ |
---|
| 278 | + return __register(&(__driver) , ##__VA_ARGS__); \ |
---|
| 279 | +} \ |
---|
| 280 | +arch_initcall(__driver##_init); \ |
---|
| 281 | +static void __exit __driver##_exit(void) \ |
---|
| 282 | +{ \ |
---|
| 283 | + __unregister(&(__driver) , ##__VA_ARGS__); \ |
---|
| 284 | +} \ |
---|
| 285 | +module_exit(__driver##_exit); |
---|
| 286 | + |
---|
275 | 287 | /** |
---|
276 | 288 | * builtin_driver() - Helper macro for drivers that don't do anything |
---|
277 | 289 | * special in init and have no exit. This eliminates some boilerplate. |
---|