xref: /freebsd-13-stable/usr.sbin/ndiscvt/inf.h (revision 17da660ad5b3b9cd90e164dd4dbb9beaa7203054)
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