/* * 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; #define SIDTAB_CACHE_LEN 3 struct sidtab_node *cache[SIDTAB_CACHE_LEN]; 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); struct context *sidtab_search_force(struct sidtab *s, u32 sid); int sidtab_map(struct sidtab *s, int (*apply) (u32 sid, struct context *context, void *args), void *args); 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_ */ /linux/net-next.git/'>summary</a><a href='/cgit.cgi/linux/net-next.git/refs/?id=b66a8043d0baa9818a407ed857eada5cb21cd9bb'>refs</a><a class='active' href='/cgit.cgi/linux/net-next.git/log/drivers/usb/gadget'>log</a><a href='/cgit.cgi/linux/net-next.git/tree/drivers/usb/gadget?id=b66a8043d0baa9818a407ed857eada5cb21cd9bb'>tree</a><a href='/cgit.cgi/linux/net-next.git/commit/drivers/usb/gadget?id=b66a8043d0baa9818a407ed857eada5cb21cd9bb'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/drivers/usb/gadget?id=b66a8043d0baa9818a407ed857eada5cb21cd9bb'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/drivers/usb/gadget'> <input type='hidden' name='id' value='b66a8043d0baa9818a407ed857eada5cb21cd9bb'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/log/?id=b66a8043d0baa9818a407ed857eada5cb21cd9bb'>root</a>/<a href='/cgit.cgi/linux/net-next.git/log/drivers?id=b66a8043d0baa9818a407ed857eada5cb21cd9bb'>drivers</a>/<a href='/cgit.cgi/linux/net-next.git/log/drivers/usb?id=b66a8043d0baa9818a407ed857eada5cb21cd9bb'>usb</a>/<a href='/cgit.cgi/linux/net-next.git/log/drivers/usb/gadget?id=b66a8043d0baa9818a407ed857eada5cb21cd9bb'>gadget</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit.cgi/linux/net-next.git/log/drivers/usb/gadget?id=b66a8043d0baa9818a407ed857eada5cb21cd9bb&showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr> e='hidden' name='id' value='33e962c8871f015f5c8978384553dddcf5b81b22'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><div class='diffstat-header'><a href='/cgit.cgi/linux/net-next.git/diff/?h=nds-private-remove&id=33e962c8871f015f5c8978384553dddcf5b81b22'>Diffstat</a> (limited to 'kernel/watchdog.c')</div><table summary='diffstat' class='diffstat'>