Replace libelf with elfutils.
[platform/upstream/rpm.git] / build / rpmfc.h
1 #ifndef _H_RPMFC_
2 #define _H_RPMFC_
3
4 typedef struct rpmfc_s * rpmfc;
5
6 struct rpmfc_s {
7     ARGV_t av;          /*!< file(1) output lines */
8     int ac;             /*!< no. of lines */
9     int ix;             /*!< current lineno */
10     ARGV_t fn;          /*!< file names */
11     ARGI_t fcolor;      /*!< file colors */
12     ARGI_t fdictx;      /*!< file class dictionary indices */
13     ARGV_t dict;        /*!< file class dictionary */
14 };
15
16
17 enum FCOLOR_e {
18     RPMFC_BLACK                 = 0,
19     RPMFC_ELF32                 = (1 <<  0),
20     RPMFC_ELF64                 = (1 <<  1),
21 #define RPMFC_ELF       (RPMFC_ELF32|RPMFC_ELF64)
22
23     RPMFC_EXECUTABLE            = (1 <<  8),
24     RPMFC_SCRIPT                = (1 <<  9),
25     RPMFC_TEXT                  = (1 << 10),
26     RPMFC_DATA                  = (1 << 11),    /* XXX unused */
27     RPMFC_DOCUMENT              = (1 << 12),
28     RPMFC_STATIC                = (1 << 13),
29     RPMFC_NOTSTRIPPED           = (1 << 14),
30     RPMFC_COMPRESSED            = (1 << 15),
31
32     RPMFC_DIRECTORY             = (1 << 16),
33     RPMFC_SYMLINK               = (1 << 17),
34     RPMFC_DEVICE                = (1 << 18),
35     RPMFC_LIBRARY               = (1 << 19),
36     RPMFC_ARCHIVE               = (1 << 20),
37     RPMFC_FONT                  = (1 << 21),
38     RPMFC_IMAGE                 = (1 << 22),
39     RPMFC_MANPAGE               = (1 << 23),
40
41     RPMFC_WHITE                 = (1 << 29),
42     RPMFC_INCLUDE               = (1 << 30),
43     RPMFC_ERROR                 = (1 << 31)
44 };
45 typedef enum FCOLOR_e FCOLOR_t;
46
47 struct rpmfcTokens_s {
48 /*@observer@*/
49     const char * token;
50     int colors;
51 };
52
53 typedef struct rpmfcTokens_s * rpmfcToken;
54
55 #ifdef __cplusplus
56 extern "C" {
57 #endif
58
59 /**
60  */
61 int rpmfcColoring(const char * fmstr)
62         /*@*/;
63
64 /**
65  */
66 void rpmfcPrint(const char * msg, rpmfc fc, FILE * fp)
67         /*@globals fileSystem @*/
68         /*@modifies *fp, fileSystem @*/;
69 /**
70  */
71 /*@null@*/
72 rpmfc rpmfcFree(/*@only@*/ /*@null@*/ rpmfc fc)
73         /*@modifies fc @*/;
74
75 /**
76  */
77 rpmfc rpmfcNew(void)
78         /*@*/;
79
80 /**
81  */
82 int rpmfcClassify(/*@out@*/ rpmfc *fcp, ARGV_t argv)
83         /*@modifies *fcp @*/;
84
85 #ifdef __cplusplus
86 }
87 #endif
88
89 #endif /* _H_RPMFC_ */