Lines Matching defs:sid
14 #define SIDTAB_HASH(sid) \
15 (sid & SIDTAB_HASH_MASK)
33 int sidtab_insert(struct sidtab *s, u32 sid, struct context *context)
43 hvalue = SIDTAB_HASH(sid);
46 while (cur && sid > cur->sid) {
51 if (cur && sid == cur->sid) {
61 newnode->sid = sid;
79 if (sid >= s->next_sid)
80 s->next_sid = sid + 1;
85 static struct context *sidtab_search_core(struct sidtab *s, u32 sid, int force)
93 hvalue = SIDTAB_HASH(sid);
95 while (cur && sid > cur->sid)
98 if (force && cur && sid == cur->sid && cur->context.len)
101 if (cur == NULL || sid != cur->sid || cur->context.len) {
103 sid = SECINITSID_UNLABELED;
104 hvalue = SIDTAB_HASH(sid);
106 while (cur && sid > cur->sid)
108 if (!cur || sid != cur->sid)
115 struct context *sidtab_search(struct sidtab *s, u32 sid)
117 return sidtab_search_core(s, sid, 0);
120 struct context *sidtab_search_force(struct sidtab *s, u32 sid)
122 return sidtab_search_core(s, sid, 1);
126 int (*apply) (u32 sid,
140 rc = apply(cur->sid, &cur->context, args);
172 return cur->sid;
191 return node->sid;
201 u32 sid;
207 sid = sidtab_search_cache(s, context);
208 if (!sid)
209 sid = sidtab_search_context(s, context);
210 if (!sid) {
213 sid = sidtab_search_context(s, context);
214 if (sid)
221 sid = s->next_sid++;
226 ret = sidtab_insert(s, sid, context);
236 *out_sid = sid;