.. | .. |
---|
1711 | 1711 | } \ |
---|
1712 | 1712 | module_exit(__driver##_exit); |
---|
1713 | 1713 | |
---|
| 1714 | + |
---|
| 1715 | + |
---|
1714 | 1716 | #define module_driver1(__driver, __register, __unregister, ...) \ |
---|
1715 | 1717 | static int __init __driver##_init(void) \ |
---|
1716 | 1718 | { \ |
---|
.. | .. |
---|
1722 | 1724 | __unregister(&(__driver) , ##__VA_ARGS__); \ |
---|
1723 | 1725 | } \ |
---|
1724 | 1726 | module_exit(__driver##_exit); |
---|
| 1727 | + |
---|
| 1728 | + |
---|
| 1729 | + |
---|
| 1730 | +#define module_driver2(__driver, __register, __unregister, ...) \ |
---|
| 1731 | +static int __init __driver##_init(void) \ |
---|
| 1732 | +{ \ |
---|
| 1733 | + return __register(&(__driver) , ##__VA_ARGS__); \ |
---|
| 1734 | +} \ |
---|
| 1735 | +late_initcall(__driver##_init); \ |
---|
| 1736 | +static void __exit __driver##_exit(void) \ |
---|
| 1737 | +{ \ |
---|
| 1738 | + __unregister(&(__driver) , ##__VA_ARGS__); \ |
---|
| 1739 | +} \ |
---|
| 1740 | +module_exit(__driver##_exit); |
---|
| 1741 | + |
---|
1725 | 1742 | /** |
---|
1726 | 1743 | * builtin_driver() - Helper macro for drivers that don't do anything |
---|
1727 | 1744 | * special in init and have no exit. This eliminates some boilerplate. |
---|