hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/include/linux/device/driver.h
....@@ -272,6 +272,18 @@
272272 } \
273273 module_exit(__driver##_exit);
274274
275
+#define module_driver1(__driver, __register, __unregister, ...) \
276
+static int __init __driver##_init(void) \
277
+{ \
278
+ return __register(&(__driver) , ##__VA_ARGS__); \
279
+} \
280
+arch_initcall(__driver##_init); \
281
+static void __exit __driver##_exit(void) \
282
+{ \
283
+ __unregister(&(__driver) , ##__VA_ARGS__); \
284
+} \
285
+module_exit(__driver##_exit);
286
+
275287 /**
276288 * builtin_driver() - Helper macro for drivers that don't do anything
277289 * special in init and have no exit. This eliminates some boilerplate.