6 #define iswhitespace(X) ((((X) == ' ') || ((X) == '\t'))?1:0)
7 #define RULE_MAX_STACK 32
8 #define RULES_FILE 0x01
11 #define RULETAB_FILE 0x02
12 #define RULETAB_ALL 0x01
13 #define RULETAB_ONLY_BOOT 0x02
14 #define RULETAB_SPECIFIC 0x03
29 struct groupdevid
**list
;
32 struct groupdevid
*next
;
33 TAILQ_HEAD(, groupdevid
) list
;
35 TAILQ_ENTRY(groupdevid
) link
;
46 struct groupdevid
*id
;
53 TAILQ_ENTRY(rule
) link
;
59 const char *rule_file
;
60 TAILQ_ENTRY(rule_tab
) link
;
64 typedef int (rule_iterate_callback_t
)(struct rule
*rule
,
65 struct groupdevid
*id
);
66 typedef int (rule_parser_t
)(char **);
68 struct groupdevid
*new_id(const char *, int);
69 struct groupdevid
*get_id(const char *);
70 struct groupdevid
*get_group(const char *, int);
71 struct rule
*new_rule(int, struct groupdevid
*);
72 void add_rule(struct rule
*);
74 void dump_config(void);
75 int read_config(const char *, int);
76 int syntax_error(const char *fmt
, ...) __printflike(1, 2);
78 void delete_rules(void);