14 #define RPA_RECORD_NONE (0)
15 #define RPA_RECORD_START (1 << 0)
16 #define RPA_RECORD_END (1 << 1)
17 #define RPA_RECORD_MATCH (1 << 2)
18 #define RPA_RECORD_HEAD (1 << 3)
19 #define RPA_RECORD_TAIL (1 << 4)
21 #define RPA_RECORD_INVALID_UID ((ruint32)-1)
23 typedef struct rparecord_s {
37 typedef rlong (*rpa_recordtree_callback)(rarray_t *records, rlong rec, rpointer userdata);
39 rlong rpa_recordtree_walk(rarray_t *src, rlong rec, rlong level, rpa_recordtree_callback callaback, rpointer userdata);
40 rlong rpa_recordtree_get(rarray_t *records, rlong rec, rulong type);
41 rlong rpa_recordtree_firstchild(rarray_t *records, rlong rec, rulong type);
42 rlong rpa_recordtree_lastchild(rarray_t *records, rlong rec, rulong type);
43 rlong rpa_recordtree_next(rarray_t *records, rlong rec, rulong type);
44 rlong rpa_recordtree_prev(rarray_t *records, rlong rec, rulong type);
45 rlong rpa_recordtree_parent(rarray_t *records, rlong rec, rulong type);
46 rlong rpa_recordtree_rotatedown(rarray_t *records, rlong parent); /* Rotate children down, the last child becomes the first */
47 rlong rpa_recordtree_size(rarray_t *records, rlong rec); /* Size of the tree */
48 rlong rpa_recordtree_copy(rarray_t *dst, rarray_t *src, rlong rec);
49 rparecord_t *rpa_record_get(rarray_t *records, rlong rec);
51 void rpa_record_dumpindented(rarray_t *records, rlong rec, rint level);
52 void rpa_record_dump(rarray_t *records, rlong rec);
53 rlong rpa_record_getruleuid(rarray_t *records, rlong rec);
54 void rpa_record_setusertype(rarray_t *records, rlong rec, ruint32 usertype, rvalset_t op);
55 rlong rpa_record_getusertype(rarray_t *records, rlong rec);
56 rint rpa_record_optchar(rparecord_t *prec, rint defc);
57 rint rpa_record_loopchar(rparecord_t *prec, rint defc);