/* Author : Stephen Smalley, <sds@epoch.ncsc.mil> */ /* FLASK */ /* * A security identifier table (sidtab) is a hash table * of security context structures indexed by SID value. */ #ifndef _SEPOL_POLICYDB_SIDTAB_H_ #define _SEPOL_POLICYDB_SIDTAB_H_ #include <sepol/policydb/context.h> #include <sys/cdefs.h> __BEGIN_DECLS typedef struct sidtab_node { sepol_security_id_t sid; /* security identifier */ context_struct_t context; /* security context structure */ struct sidtab_node *next; } sidtab_node_t; typedef struct sidtab_node *sidtab_ptr_t; #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 typedef struct { sidtab_ptr_t *htable; unsigned int nel; /* number of elements */ unsigned int next_sid; /* next SID to allocate */ unsigned char shutdown; } sidtab_t; extern int sepol_sidtab_init(sidtab_t * s); extern int sepol_sidtab_insert(sidtab_t * s, sepol_security_id_t sid, context_struct_t * context); extern context_struct_t *sepol_sidtab_search(sidtab_t * s, sepol_security_id_t sid); extern int sepol_sidtab_map(sidtab_t * s, int (*apply) (sepol_security_id_t sid, context_struct_t * context, void *args), void *args); extern void sepol_sidtab_map_remove_on_error(sidtab_t * s, int (*apply) (sepol_security_id_t s, context_struct_t * context, void *args), void *args); extern int sepol_sidtab_context_to_sid(sidtab_t * s, /* IN */ context_struct_t * context, /* IN */ sepol_security_id_t * sid); /* OUT */ extern void sepol_sidtab_hash_eval(sidtab_t * h, char *tag); extern void sepol_sidtab_destroy(sidtab_t * s); extern void sepol_sidtab_set(sidtab_t * dst, sidtab_t * src); extern void sepol_sidtab_shutdown(sidtab_t * s); __END_DECLS #endif /* _SIDTAB_H_ */ /* FLASK */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
avrule_block.h | File | 1.58 KB | 0644 |
|
avtab.h | File | 4.61 KB | 0644 |
|
conditional.h | File | 4.6 KB | 0644 |
|
constraint.h | File | 2.47 KB | 0644 |
|
context.h | File | 2.19 KB | 0644 |
|
ebitmap.h | File | 3.08 KB | 0644 |
|
expand.h | File | 3.55 KB | 0644 |
|
flask.h | File | 4.88 KB | 0644 |
|
flask_types.h | File | 1.72 KB | 0644 |
|
hashtab.h | File | 4.18 KB | 0644 |
|
hierarchy.h | File | 1.76 KB | 0644 |
|
link.h | File | 498 B | 0644 |
|
mls_types.h | File | 4.26 KB | 0644 |
|
module.h | File | 1.48 KB | 0644 |
|
polcaps.h | File | 694 B | 0644 |
|
policydb.h | File | 24.91 KB | 0644 |
|
services.h | File | 8.32 KB | 0644 |
|
sidtab.h | File | 1.91 KB | 0644 |
|
symtab.h | File | 1.06 KB | 0644 |
|
util.h | File | 1.41 KB | 0644 |
|