hc
2023-11-07 5e8555e3ea324daaf0e38422bcba48c4df33a0d9
kernel/include/linux/device.h
....@@ -1711,6 +1711,20 @@
17111711 } \
17121712 module_exit(__driver##_exit);
17131713
1714
+
1715
+
1716
+#define module_driver1(__driver, __register, __unregister, ...) \
1717
+static int __init __driver##_init(void) \
1718
+{ \
1719
+ return __register(&(__driver) , ##__VA_ARGS__); \
1720
+} \
1721
+arch_initcall(__driver##_init); \
1722
+static void __exit __driver##_exit(void) \
1723
+{ \
1724
+ __unregister(&(__driver) , ##__VA_ARGS__); \
1725
+} \
1726
+module_exit(__driver##_exit);
1727
+
17141728 /**
17151729 * builtin_driver() - Helper macro for drivers that don't do anything
17161730 * special in init and have no exit. This eliminates some boilerplate.