Lines Matching refs:key
93 avtab_insert_node(avtab_t * h, int hvalue, avtab_ptr_t prev, avtab_key_t * key,
103 newnode->key = *key;
105 if (key->specified & AVTAB_XPERMS) {
136 int avtab_insert(avtab_t * h, avtab_key_t * key, avtab_datum_t * datum)
141 key->specified & ~(AVTAB_ENABLED | AVTAB_ENABLED_OLD);
146 hvalue = avtab_hash(key, h->mask);
149 if (key->source_type == cur->key.source_type &&
150 key->target_type == cur->key.target_type &&
151 key->target_class == cur->key.target_class &&
152 (specified & cur->key.specified)) {
158 if (key->source_type < cur->key.source_type)
160 if (key->source_type == cur->key.source_type &&
161 key->target_type < cur->key.target_type)
163 if (key->source_type == cur->key.source_type &&
164 key->target_type == cur->key.target_type &&
165 key->target_class < cur->key.target_class)
169 newnode = avtab_insert_node(h, hvalue, prev, key, datum);
177 * key/specified mask into the table, as needed by the conditional avtab.
181 avtab_insert_nonunique(avtab_t * h, avtab_key_t * key, avtab_datum_t * datum)
186 key->specified & ~(AVTAB_ENABLED | AVTAB_ENABLED_OLD);
190 hvalue = avtab_hash(key, h->mask);
193 if (key->source_type == cur->key.source_type &&
194 key->target_type == cur->key.target_type &&
195 key->target_class == cur->key.target_class &&
196 (specified & cur->key.specified))
198 if (key->source_type < cur->key.source_type)
200 if (key->source_type == cur->key.source_type &&
201 key->target_type < cur->key.target_type)
203 if (key->source_type == cur->key.source_type &&
204 key->target_type == cur->key.target_type &&
205 key->target_class < cur->key.target_class)
208 newnode = avtab_insert_node(h, hvalue, prev, key, datum);
213 avtab_datum_t *avtab_search(avtab_t * h, avtab_key_t * key)
218 key->specified & ~(AVTAB_ENABLED | AVTAB_ENABLED_OLD);
223 hvalue = avtab_hash(key, h->mask);
225 if (key->source_type == cur->key.source_type &&
226 key->target_type == cur->key.target_type &&
227 key->target_class == cur->key.target_class &&
228 (specified & cur->key.specified))
231 if (key->source_type < cur->key.source_type)
233 if (key->source_type == cur->key.source_type &&
234 key->target_type < cur->key.target_type)
236 if (key->source_type == cur->key.source_type &&
237 key->target_type == cur->key.target_type &&
238 key->target_class < cur->key.target_class)
248 avtab_ptr_t avtab_search_node(avtab_t * h, avtab_key_t * key)
253 key->specified & ~(AVTAB_ENABLED | AVTAB_ENABLED_OLD);
258 hvalue = avtab_hash(key, h->mask);
260 if (key->source_type == cur->key.source_type &&
261 key->target_type == cur->key.target_type &&
262 key->target_class == cur->key.target_class &&
263 (specified & cur->key.specified))
266 if (key->source_type < cur->key.source_type)
268 if (key->source_type == cur->key.source_type &&
269 key->target_type < cur->key.target_type)
271 if (key->source_type == cur->key.source_type &&
272 key->target_type == cur->key.target_type &&
273 key->target_class < cur->key.target_class)
288 if (node->key.source_type == cur->key.source_type &&
289 node->key.target_type == cur->key.target_type &&
290 node->key.target_class == cur->key.target_class &&
291 (specified & cur->key.specified))
294 if (node->key.source_type < cur->key.source_type)
296 if (node->key.source_type == cur->key.source_type &&
297 node->key.target_type < cur->key.target_type)
299 if (node->key.source_type == cur->key.source_type &&
300 node->key.target_type == cur->key.target_type &&
301 node->key.target_class < cur->key.target_class)
318 if (cur->key.specified & AVTAB_XPERMS) {
347 ret = apply(&cur->key, &cur->datum, args);
441 avtab_key_t key;
448 memset(&key, 0, sizeof(avtab_key_t));
473 key.source_type = (uint16_t) val;
474 if (key.source_type != val) {
479 key.target_type = (uint16_t) val;
480 if (key.target_type != val) {
485 key.target_class = (uint16_t) val;
486 if (key.target_class != val) {
511 key.specified = spec_order[i] | enabled;
513 rc = insertf(a, &key, &datum, p);
533 key.source_type = le16_to_cpu(buf16[items++]);
534 key.target_type = le16_to_cpu(buf16[items++]);
535 key.target_class = le16_to_cpu(buf16[items++]);
536 key.specified = le16_to_cpu(buf16[items++]);
540 if (key.specified & spec_order[i])
549 (key.specified & AVTAB_XPERMS)) {
553 } else if (key.specified & AVTAB_XPERMS) {
582 return insertf(a, &key, &datum, p);