X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fconf.h;h=c56cea48113ce0148a4b4f5670b7b45a20b17017;hb=b4d79987a979bcbf749294c706fdc8c4ae8f9304;hp=214d9da9be2235f82e2ed95fda4f34e977cb3646;hpb=ce0e823dc4cdb520f63eca96a122896917a49e56;p=libucw.git diff --git a/lib/conf.h b/lib/conf.h index 214d9da9..c56cea48 100644 --- a/lib/conf.h +++ b/lib/conf.h @@ -17,7 +17,8 @@ enum cf_class { CC_DYNAMIC, // dynamically allocated array CC_PARSER, // arbitrary parser function CC_SECTION, // section appears exactly once - CC_LIST // list with 0..many nodes + CC_LIST, // list with 0..many nodes + CC_BITMAP // of up to 32 items }; enum cf_type { @@ -99,6 +100,8 @@ struct cf_section { #define CF_PARSER(n,p,f,c) { .cls = CC_PARSER, .name = n, .number = c, .ptr = p, .u.par = (cf_parser*) f } #define CF_SECTION(n,p,s) { .cls = CC_SECTION, .name = n, .number = 1, .ptr = p, .u.sec = s } #define CF_LIST(n,p,s) { .cls = CC_LIST, .name = n, .number = 1, .ptr = CHECK_PTR_TYPE(p,clist*), .u.sec = s } +#define CF_BITMAP_INT(n,p) { .cls = CC_BITMAP, .type = CT_INT, .name = n, .number = 1, .ptr = CHECK_PTR_TYPE(p,u32*) } +#define CF_BITMAP_LOOKUP(n,p,t) { .cls = CC_BITMAP, .type = CT_LOOKUP, .name = n, .number = 1, .ptr = CHECK_PTR_TYPE(p,u32*), .u.lookup = t } /* Configuration items for basic types */ #define CF_INT(n,p) CF_STATIC(n,p,INT,int,1) #define CF_INT_ARY(n,p,c) CF_STATIC(n,p,INT,int,c)