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