hc
2023-11-20 69d6da3c1c63675524a25e7dc92a4f43c4164cef
kernel/include/linux/device.h
....@@ -1725,6 +1725,20 @@
17251725 } \
17261726 module_exit(__driver##_exit);
17271727
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
+
17281742 /**
17291743 * builtin_driver() - Helper macro for drivers that don't do anything
17301744 * special in init and have no exit. This eliminates some boilerplate.