X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fparser-utils.h;h=9096b311ce6ecc00b4fd0d3f0c851fe8f588a4c5;hp=e82e3f9c81638be7cdbe2bedcbcca2eba98f66fa;hb=45e92aa32a80fdbbf5ad3ad64e34b1ac872018ef;hpb=ce5eab024583af5a4725503bad6ed2aee452b1aa diff --git a/discover/parser-utils.h b/discover/parser-utils.h index e82e3f9..9096b31 100644 --- a/discover/parser-utils.h +++ b/discover/parser-utils.h @@ -1,12 +1,25 @@ #ifndef PARSER_UTILS_H #define PARSER_UTILS_H +#include "types/types.h" #include "parser.h" #define streq(a,b) (!strcasecmp((a),(b))) #define artwork_pathname(file) (PKG_SHARE_DIR "/artwork/" file) +#define __parser_funcname(_n) __register_parser ## _ ## _n +#define _parser_funcname(_n) __parser_funcname(_n) + +#define register_parser(_parser) \ + static __attribute__((constructor)) \ + void _parser_funcname(__COUNTER__)(void) \ + { \ + __register_parser(&_parser); \ + } + +void __register_parser(struct parser *parser); + void device_add_boot_option(struct device *device, struct boot_option *boot_option);