Message ID | 20210618045353.2510174-2-kraxel@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | modules: add meta-data database | expand |
On 18/06/21 06:53, Gerd Hoffmann wrote: > Add macros for module info annotations. > > Instead of having that module meta-data stored in lists in util/module.c > place directly in the module source code. > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > --- > include/qemu/module.h | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/include/qemu/module.h b/include/qemu/module.h > index 944d403cbd15..81ef086da023 100644 > --- a/include/qemu/module.h > +++ b/include/qemu/module.h > @@ -73,4 +73,29 @@ bool module_load_one(const char *prefix, const char *lib_name, bool mayfail); > void module_load_qom_one(const char *type); > void module_load_qom_all(void); > > +/* > + * module info annotation macros > + * > + * scripts/modinfo-collect.py will collect module info, > + * using the preprocessor and -DQEMU_MODINFO > + */ > +#ifdef QEMU_MODINFO > +# define modinfo(kind, value) \ > + MODINFO_START kind value MODINFO_END > +#else > +# define modinfo(kind, value) > +#endif > + > +/* module implements QOM type <name> */ > +#define module_obj(name) modinfo(obj, name) > + > +/* module has a dependency on <name> */ > +#define module_dep(name) modinfo(dep, name) > + > +/* module is for target architecture <name> */ > +#define module_arch(name) modinfo(arch, name) > + > +/* module registers QemuOpts <name> */ > +#define module_opts(name) modinfo(opts, name) > + > #endif > Let's ensure that the module system is documented in some file of docs/devel. Paolo
diff --git a/include/qemu/module.h b/include/qemu/module.h index 944d403cbd15..81ef086da023 100644 --- a/include/qemu/module.h +++ b/include/qemu/module.h @@ -73,4 +73,29 @@ bool module_load_one(const char *prefix, const char *lib_name, bool mayfail); void module_load_qom_one(const char *type); void module_load_qom_all(void); +/* + * module info annotation macros + * + * scripts/modinfo-collect.py will collect module info, + * using the preprocessor and -DQEMU_MODINFO + */ +#ifdef QEMU_MODINFO +# define modinfo(kind, value) \ + MODINFO_START kind value MODINFO_END +#else +# define modinfo(kind, value) +#endif + +/* module implements QOM type <name> */ +#define module_obj(name) modinfo(obj, name) + +/* module has a dependency on <name> */ +#define module_dep(name) modinfo(dep, name) + +/* module is for target architecture <name> */ +#define module_arch(name) modinfo(arch, name) + +/* module registers QemuOpts <name> */ +#define module_opts(name) modinfo(opts, name) + #endif
Add macros for module info annotations. Instead of having that module meta-data stored in lists in util/module.c place directly in the module source code. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- include/qemu/module.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)