source: libabac/abac_pl_yy.h @ 9937351

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

1) add handling for typed anonymous term, [int:?]
2) make a pass through abac/doc
3) fix up creddy to take oset option at different calls

  • Property mode set to 100644
File size: 3.1 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();
52extern void set_yy_term_data_name(abac_yy_term_data_t *ptr, char *name);
53extern void set_yy_term_data_is_anonymous(abac_yy_term_data_t *ptr);
54extern abac_yy_term_t *make_yy_term_dterm_anonymous();
55extern abac_yy_term_t *make_yy_term_dterm_data(abac_yy_term_data_t *dptr);
56extern abac_yy_term_t *make_yy_term_dterm_named(abac_yy_principal_t *nptr);
57extern abac_yy_term_t *make_yy_term_dterm_principal(abac_yy_term_principal_t *pptr);
58extern abac_yy_term_principal_t *make_yy_term_principal();
59extern void set_yy_term_principal_name(abac_yy_term_principal_t *,char*);
60extern void set_yy_term_principal_is_anonymous(abac_yy_term_principal_t *);
61extern abac_list_t *make_yy_val_range(char *val);
62
63extern abac_list_t *make_role_statement(abac_yy_expression_t *headexpr, abac_yy_expression_t *tailexpr);
64extern abac_list_t *make_oset_statement(abac_yy_expression_t *headexpr, abac_yy_expression_t *tailexpr);
65extern char *get_yy_term_data_name(abac_yy_term_data_t *ptr);
66extern abac_yy_term_data_t *get_yy_expression_object(abac_yy_expression_t *ptr);
67extern abac_yy_expression_t *add_yy_expression(abac_yy_expression_t *nexpr, abac_yy_expression_t *exprs);
68extern abac_yy_term_t *add_yy_term(abac_yy_term_t *nterm, abac_yy_term_t *terms);
69extern abac_list_t *add_yy_val_range(abac_list_t *ptr, char * val);
70
71
72#endif /* __ABC_PL_YY_H__ */
Note: See TracBrowser for help on using the repository browser.