Blame view
security/selinux/ss/sidtab.h
1.46 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
/* * A security identifier table (sidtab) is a hash table * of security context structures indexed by SID value. * * Author : Stephen Smalley, <sds@epoch.ncsc.mil> */ #ifndef _SS_SIDTAB_H_ #define _SS_SIDTAB_H_ #include "context.h" struct sidtab_node { u32 sid; /* security identifier */ struct context context; /* security context structure */ struct sidtab_node *next; }; #define SIDTAB_HASH_BITS 7 #define SIDTAB_HASH_BUCKETS (1 << SIDTAB_HASH_BITS) #define SIDTAB_HASH_MASK (SIDTAB_HASH_BUCKETS-1) #define SIDTAB_SIZE SIDTAB_HASH_BUCKETS struct sidtab { struct sidtab_node **htable; unsigned int nel; /* number of elements */ unsigned int next_sid; /* next SID to allocate */ unsigned char shutdown; |
73ff5fc0a selinux: cache si... |
29 30 |
#define SIDTAB_CACHE_LEN 3 struct sidtab_node *cache[SIDTAB_CACHE_LEN]; |
1da177e4c Linux-2.6.12-rc2 |
31 32 33 34 35 36 |
spinlock_t lock; }; int sidtab_init(struct sidtab *s); int sidtab_insert(struct sidtab *s, u32 sid, struct context *context); struct context *sidtab_search(struct sidtab *s, u32 sid); |
12b29f345 selinux: support ... |
37 |
struct context *sidtab_search_force(struct sidtab *s, u32 sid); |
1da177e4c Linux-2.6.12-rc2 |
38 39 40 41 42 43 |
int sidtab_map(struct sidtab *s, int (*apply) (u32 sid, struct context *context, void *args), void *args); |
1da177e4c Linux-2.6.12-rc2 |
44 45 46 47 48 49 50 51 52 53 |
int sidtab_context_to_sid(struct sidtab *s, struct context *context, u32 *sid); void sidtab_hash_eval(struct sidtab *h, char *tag); void sidtab_destroy(struct sidtab *s); void sidtab_set(struct sidtab *dst, struct sidtab *src); void sidtab_shutdown(struct sidtab *s); #endif /* _SS_SIDTAB_H_ */ |