1 /* 2 * $Id: inf.h,v 1.3 2003/11/30 21:58:16 winter Exp $ 3 */ 4 5 #define W_MAX 32 6 7 struct section { 8 const char * name; 9 10 TAILQ_ENTRY(section) link; 11 }; 12 TAILQ_HEAD(section_head, section); 13 14 struct assign { 15 struct section *section; 16 17 const char * key; 18 const char * vals[W_MAX]; 19 20 TAILQ_ENTRY(assign) link; 21 }; 22 TAILQ_HEAD(assign_head, assign); 23 24 struct reg { 25 struct section *section; 26 27 const char * root; 28 const char * subkey; 29 const char * key; 30 u_int flags; 31 const char * value; 32 33 TAILQ_ENTRY(reg) link; 34 }; 35 TAILQ_HEAD(reg_head, reg); 36 37 #define FLG_ADDREG_TYPE_SZ 0x00000000 38 #define FLG_ADDREG_BINVALUETYPE 0x00000001 39 #define FLG_ADDREG_NOCLOBBER 0x00000002 40 #define FLG_ADDREG_DELVAL 0x00000004 41 #define FLG_ADDREG_APPEND 0x00000008 42 #define FLG_ADDREG_KEYONLY 0x00000010 43 #define FLG_ADDREG_OVERWRITEONLY 0x00000020 44 #define FLG_ADDREG_64BITKEY 0x00001000 45 #define FLG_ADDREG_KEYONLY_COMMON 0x00002000 46 #define FLG_ADDREG_32BITKEY 0x00004000 47 #define FLG_ADDREG_TYPE_MULTI_SZ 0x00010000 48 #define FLG_ADDREG_TYPE_EXPAND_SZ 0x00020000 49 #define FLG_ADDREG_TYPE_DWORD 0x00010001 50 #define FLG_ADDREG_TYPE_NONE 0x00020001 51 52 extern void section_add (const char *); 53 extern void assign_add (const char *); 54 extern void define_add (const char *); 55 extern void regkey_add (const char *); 56 57 extern void push_word (const char *); 58 extern void clear_words (void); 59 extern int inf_parse (FILE *, FILE *); 60