1*2d543d20SAndroid Build Coastguard Worker /* 2*2d543d20SAndroid Build Coastguard Worker * A security identifier table (sidtab) is a hash table 3*2d543d20SAndroid Build Coastguard Worker * of security context structures indexed by SID value. 4*2d543d20SAndroid Build Coastguard Worker */ 5*2d543d20SAndroid Build Coastguard Worker #ifndef _SELINUX_AVC_SIDTAB_H_ 6*2d543d20SAndroid Build Coastguard Worker #define _SELINUX_AVC_SIDTAB_H_ 7*2d543d20SAndroid Build Coastguard Worker 8*2d543d20SAndroid Build Coastguard Worker #include <selinux/selinux.h> 9*2d543d20SAndroid Build Coastguard Worker #include <selinux/avc.h> 10*2d543d20SAndroid Build Coastguard Worker 11*2d543d20SAndroid Build Coastguard Worker struct sidtab_node { 12*2d543d20SAndroid Build Coastguard Worker struct security_id sid_s; 13*2d543d20SAndroid Build Coastguard Worker struct sidtab_node *next; 14*2d543d20SAndroid Build Coastguard Worker }; 15*2d543d20SAndroid Build Coastguard Worker 16*2d543d20SAndroid Build Coastguard Worker #define SIDTAB_HASH_BITS 7 17*2d543d20SAndroid Build Coastguard Worker #define SIDTAB_HASH_BUCKETS (1 << SIDTAB_HASH_BITS) 18*2d543d20SAndroid Build Coastguard Worker #define SIDTAB_HASH_MASK (SIDTAB_HASH_BUCKETS-1) 19*2d543d20SAndroid Build Coastguard Worker #define SIDTAB_SIZE SIDTAB_HASH_BUCKETS 20*2d543d20SAndroid Build Coastguard Worker 21*2d543d20SAndroid Build Coastguard Worker struct sidtab { 22*2d543d20SAndroid Build Coastguard Worker struct sidtab_node **htable; 23*2d543d20SAndroid Build Coastguard Worker unsigned nel; 24*2d543d20SAndroid Build Coastguard Worker }; 25*2d543d20SAndroid Build Coastguard Worker 26*2d543d20SAndroid Build Coastguard Worker int sidtab_init(struct sidtab *s) ; 27*2d543d20SAndroid Build Coastguard Worker int sidtab_insert(struct sidtab *s, const char * ctx) ; 28*2d543d20SAndroid Build Coastguard Worker 29*2d543d20SAndroid Build Coastguard Worker int sidtab_context_to_sid(struct sidtab *s, 30*2d543d20SAndroid Build Coastguard Worker const char * ctx, security_id_t * sid) ; 31*2d543d20SAndroid Build Coastguard Worker 32*2d543d20SAndroid Build Coastguard Worker void sidtab_sid_stats(struct sidtab *s, char *buf, int buflen) ; 33*2d543d20SAndroid Build Coastguard Worker void sidtab_destroy(struct sidtab *s) ; 34*2d543d20SAndroid Build Coastguard Worker 35*2d543d20SAndroid Build Coastguard Worker #endif /* _SELINUX_AVC_SIDTAB_H_ */ 36