xref: /illumos-gate/usr/src/tools/smatch/src/dissect.h (revision 1f5207b7)
1 #ifndef	DISSECT_H
2 #define	DISSECT_H
3 
4 #include <stdio.h>
5 #include "parse.h"
6 #include "expression.h"
7 
8 #define	U_SHIFT		8
9 
10 #define	U_R_AOF		0x01
11 #define	U_W_AOF		0x02
12 
13 #define	U_R_VAL		0x04
14 #define	U_W_VAL		0x08
15 
16 #define	U_R_PTR		(U_R_VAL << U_SHIFT)
17 #define	U_W_PTR		(U_W_VAL << U_SHIFT)
18 
19 struct reporter
20 {
21 	void (*r_symdef)(struct symbol *);
22 
23 	void (*r_symbol)(unsigned, struct position *, struct symbol *);
24 	void (*r_member)(unsigned, struct position *, struct symbol *, struct symbol *);
25 };
26 
27 extern void dissect(struct symbol_list *, struct reporter *);
28 
29 #endif
30