Lines Matching refs:sid
15 #define SIDTAB_HASH(sid) \ argument
16 (sid & SIDTAB_HASH_MASK)
34 int sidtab_insert(struct sidtab *s, u32 sid, struct context *context) in sidtab_insert() argument
42 hvalue = SIDTAB_HASH(sid); in sidtab_insert()
45 while (cur && sid > cur->sid) { in sidtab_insert()
50 if (cur && sid == cur->sid) in sidtab_insert()
57 newnode->sid = sid; in sidtab_insert()
74 if (sid >= s->next_sid) in sidtab_insert()
75 s->next_sid = sid + 1; in sidtab_insert()
79 static struct context *sidtab_search_core(struct sidtab *s, u32 sid, int force) in sidtab_search_core() argument
87 hvalue = SIDTAB_HASH(sid); in sidtab_search_core()
89 while (cur && sid > cur->sid) in sidtab_search_core()
92 if (force && cur && sid == cur->sid && cur->context.len) in sidtab_search_core()
95 if (!cur || sid != cur->sid || cur->context.len) { in sidtab_search_core()
97 sid = SECINITSID_UNLABELED; in sidtab_search_core()
98 hvalue = SIDTAB_HASH(sid); in sidtab_search_core()
100 while (cur && sid > cur->sid) in sidtab_search_core()
102 if (!cur || sid != cur->sid) in sidtab_search_core()
109 struct context *sidtab_search(struct sidtab *s, u32 sid) in sidtab_search() argument
111 return sidtab_search_core(s, sid, 0); in sidtab_search()
114 struct context *sidtab_search_force(struct sidtab *s, u32 sid) in sidtab_search_force() argument
116 return sidtab_search_core(s, sid, 1); in sidtab_search_force()
120 int (*apply) (u32 sid, in sidtab_map()
134 rc = apply(cur->sid, &cur->context, args); in sidtab_map()
166 return cur->sid; in sidtab_search_context()
185 return node->sid; in sidtab_search_cache()
195 u32 sid; in sidtab_context_to_sid() local
201 sid = sidtab_search_cache(s, context); in sidtab_context_to_sid()
202 if (!sid) in sidtab_context_to_sid()
203 sid = sidtab_search_context(s, context); in sidtab_context_to_sid()
204 if (!sid) { in sidtab_context_to_sid()
207 sid = sidtab_search_context(s, context); in sidtab_context_to_sid()
208 if (sid) in sidtab_context_to_sid()
215 sid = s->next_sid++; in sidtab_context_to_sid()
219 ret = sidtab_insert(s, sid, context); in sidtab_context_to_sid()
229 *out_sid = sid; in sidtab_context_to_sid()