sys/module.h: allow MODULE_DEPEND to accept macros

Allow MODULE_DEPEND to accept macros by adding an extra level of
indirection. Some drivers in the tree actually depend on this being the
case.

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D54874
This commit is contained in:
Ahmad Khalifa
2026-01-26 11:27:59 +02:00
parent 8ef8c6abfa
commit 6ecaa8dfb6
+5 -3
View File
@@ -116,15 +116,17 @@ struct mod_pnp_match_info
}; \
DATA_SET(modmetadata_set, MODULE_METADATA_CONCAT(uniquifier))
#define MODULE_DEPEND_CONCAT(module, mdepend) _##module##_depend_on_##mdepend
#define MODULE_DEPEND(module, mdepend, vmin, vpref, vmax) \
static struct mod_depend _##module##_depend_on_##mdepend \
static struct mod_depend MODULE_DEPEND_CONCAT(module, mdepend) \
__section(".data") = { \
vmin, \
vpref, \
vmax \
}; \
MODULE_METADATA(_md_##module##_on_##mdepend, MDT_DEPEND, \
&_##module##_depend_on_##mdepend, #mdepend)
MODULE_METADATA(MODULE_DEPEND_CONCAT(module, mdepend), \
MDT_DEPEND, &MODULE_DEPEND_CONCAT(module, mdepend), \
__XSTRING(mdepend))
/*
* Every kernel has a 'kernel' module with the version set to