source: libabac/abac_pl_yy.h @ 0d0c3a9

mei_rt2mei_rt2_fix_1meiyap-rt1rt2
Last change on this file since 0d0c3a9 was 0d0c3a9, checked in by Mei <mei@…>, 12 years ago

1) adding missing extern forward declarations that is causing

freeBSD compiled prover to coredump

  • Property mode set to 100644
File size: 2.8 KB
Line 
1#ifndef __ABAC_PL_YY_H__
2#define __ABAC_PL_YY_H__
3
4/* C declarations */
5#include "abac_pl.h"
6#include "abac_list.h"
7#include "abac_util.h"
8#include "abac_rt.h"
9
10typedef struct _abac_yy_principal_t abac_yy_principal_t;
11typedef struct _abac_yy_term_principal_t abac_yy_term_principal_t;
12typedef struct _abac_yy_term_data_t abac_yy_term_data_t;
13typedef struct _abac_yy_term_t abac_yy_term_t;
14typedef struct _abac_yy_role_t abac_yy_role_t;
15typedef struct _abac_yy_oset_t abac_yy_oset_t;
16typedef struct _abac_yy_expression_t abac_yy_expression_t;
17
18enum expr_rtype {
19    e_yy_EXPR_NAMED=1,
20    e_yy_EXPR_ROLE=2,
21    e_yy_EXPR_OSET=3,
22    e_yy_EXPR_LINKED=4,
23    e_yy_EXPR_OBJECT=5
24};
25
26enum dterm_type {
27    e_yy_DTERM_PRINCIPAL=1,
28    e_yy_DTERM_NAMED=2,
29    e_yy_DTERM_DATA=3,
30    e_yy_DTERM_ANONYMOUS=4
31};
32
33enum range_type {
34   e_yy_RANGE_MIN=1,
35   e_yy_RANGE_MAX=2,
36   e_yy_RANGE_TARGET=3 
37};
38
39extern abac_yy_expression_t *make_yy_expression(int type,void *pptr, void *optr, abac_yy_role_t *linked_role);
40extern abac_list_t *make_yy_max_range(char *max);
41extern abac_list_t *make_yy_minmax_range(char *min, char *max);
42extern abac_list_t *make_yy_min_range(char *min);
43extern abac_yy_oset_t *make_yy_oset(char *name, abac_yy_term_t *terms);
44extern char *make_yy_oset_constraint(abac_yy_term_data_t *ptr, char *tail_string);
45extern char *make_yy_oset_constraint(abac_yy_term_data_t *ptr, char *tail_string);
46extern abac_yy_principal_t *make_yy_principal(char *sha, char *cn, int type);
47extern void make_yy_range_constraint(abac_yy_term_data_t *ptr, char *var);
48extern abac_yy_role_t *make_yy_role(char *name, abac_yy_term_t *terms);
49extern char *make_yy_role_constraint(abac_yy_term_principal_t *ptr, char *tail_string);
50extern char *make_yy_role_constraint(abac_yy_term_principal_t *ptr, char *tail_string);
51extern abac_yy_term_data_t *make_yy_term_data(char* name);
52extern abac_yy_term_t *make_yy_term_dterm_anonymous();
53extern abac_yy_term_t *make_yy_term_dterm_data(abac_yy_term_data_t *dptr);
54extern abac_yy_term_t *make_yy_term_dterm_named(abac_yy_principal_t *nptr);
55extern abac_yy_term_t *make_yy_term_dterm_principal(abac_yy_term_principal_t *pptr);
56extern abac_yy_term_principal_t *make_yy_term_principal(char* name);
57extern abac_list_t *make_yy_val_range(char *val);
58
59extern abac_list_t *make_role_statement(abac_yy_expression_t *headexpr, abac_yy_expression_t *tailexpr);
60extern abac_list_t *make_oset_statement(abac_yy_expression_t *headexpr, abac_yy_expression_t *tailexpr);
61extern char *get_yy_term_data_name(abac_yy_term_data_t *ptr);
62extern abac_yy_term_data_t *get_yy_expression_object(abac_yy_expression_t *ptr);
63extern abac_yy_expression_t *add_yy_expression(abac_yy_expression_t *nexpr, abac_yy_expression_t *exprs);
64extern abac_yy_term_t *add_yy_term(abac_yy_term_t *nterm, abac_yy_term_t *terms);
65extern abac_list_t *add_yy_val_range(abac_list_t *ptr, char * val);
66
67
68#endif /* __ABC_PL_YY_H__ */
Note: See TracBrowser for help on using the repository browser.