blob: 7986e34f2cfbb63d87b947ea43d1cae459669491 [file] [log] [blame]
Lev Walkinc6cac8e2016-03-14 02:57:07 -07001#ifndef ASN1C_FDEPS_H
2#define ASN1C_FDEPS_H
Lev Walkinacd9f8b2004-08-19 13:29:03 +00003
4typedef struct asn1c_fdeps_s {
5 char *filename; /* Or 0, if root. */
6
Lev Walkinf218e782006-09-12 06:21:18 +00007 enum fdep_usage {
8 FDEP_IGNORE = -1, /* Ignore contents of the section */
9 FDEP_NOTUSED = 0,
10 FDEP_REFERRED = 1, /* Dynamic list of dependencies */
11 FDEP_CONVERTER = 2, /* Name of the int main() file */
12 FDEP_COMMON_FILES = 3, /* Section for mandatory dependencies */
13 FDEP_CODEC_PER = 4, /* Use contents only if -gen-PER */
14 } usage; /* Some file refers to it */
Lev Walkinacd9f8b2004-08-19 13:29:03 +000015
16 struct asn1c_fdeps_s **elements;
17 int el_size;
18 int el_count;
19} asn1c_fdeps_t;
20
21asn1c_fdeps_t *asn1c_read_file_dependencies(arg_t *arg, const char *datadir);
22
23/* Data may be a filename or an "#include <>" string. */
24int asn1c_activate_dependency(asn1c_fdeps_t *deps, asn1c_fdeps_t *cur,
25 const char *data);
26
27asn1c_fdeps_t *asn1c_deps_makelist(asn1c_fdeps_t *deps);
28
Lev Walkinc6cac8e2016-03-14 02:57:07 -070029#endif /* ASN1C_FDEPS_H */