.. | .. |
---|
1711 | 1711 | } \ |
---|
1712 | 1712 | module_exit(__driver##_exit); |
---|
1713 | 1713 | |
---|
| 1714 | +#define module_driver1(__driver, __register, __unregister, ...) \ |
---|
| 1715 | +static int __init __driver##_init(void) \ |
---|
| 1716 | +{ \ |
---|
| 1717 | + return __register(&(__driver) , ##__VA_ARGS__); \ |
---|
| 1718 | +} \ |
---|
| 1719 | +arch_initcall(__driver##_init); \ |
---|
| 1720 | +static void __exit __driver##_exit(void) \ |
---|
| 1721 | +{ \ |
---|
| 1722 | + __unregister(&(__driver) , ##__VA_ARGS__); \ |
---|
| 1723 | +} \ |
---|
| 1724 | +module_exit(__driver##_exit); |
---|
1714 | 1725 | /** |
---|
1715 | 1726 | * builtin_driver() - Helper macro for drivers that don't do anything |
---|
1716 | 1727 | * special in init and have no exit. This eliminates some boilerplate. |
---|