hc
2024-03-22 f63cd4c03ea42695d5f9b0e1798edd196923aae6
kernel/include/linux/device/driver.h
....@@ -272,6 +272,20 @@
272272 } \
273273 module_exit(__driver##_exit);
274274
275
+
276
+
277
+#define module_driver2(__driver, __register, __unregister, ...) \
278
+static int __init __driver##_init(void) \
279
+{ \
280
+ return __register(&(__driver) , ##__VA_ARGS__); \
281
+} \
282
+late_initcall(__driver##_init); \
283
+static void __exit __driver##_exit(void) \
284
+{ \
285
+ __unregister(&(__driver) , ##__VA_ARGS__); \
286
+} \
287
+module_exit(__driver##_exit);
288
+
275289 /**
276290 * builtin_driver() - Helper macro for drivers that don't do anything
277291 * special in init and have no exit. This eliminates some boilerplate.