Lines Matching refs:key

71 		  const struct avtab_key *key, const struct avtab_datum *datum)
78 newnode->key = *key;
80 if (key->specified & AVTAB_XPERMS) {
106 static int avtab_insert(struct avtab *h, const struct avtab_key *key,
111 u16 specified = key->specified & ~(AVTAB_ENABLED|AVTAB_ENABLED_OLD);
116 hvalue = avtab_hash(key, h->mask);
120 if (key->source_type == cur->key.source_type &&
121 key->target_type == cur->key.target_type &&
122 key->target_class == cur->key.target_class &&
123 (specified & cur->key.specified)) {
129 if (key->source_type < cur->key.source_type)
131 if (key->source_type == cur->key.source_type &&
132 key->target_type < cur->key.target_type)
134 if (key->source_type == cur->key.source_type &&
135 key->target_type == cur->key.target_type &&
136 key->target_class < cur->key.target_class)
140 newnode = avtab_insert_node(h, hvalue, prev, key, datum);
148 * key/specified mask into the table, as needed by the conditional avtab.
152 const struct avtab_key *key,
157 u16 specified = key->specified & ~(AVTAB_ENABLED|AVTAB_ENABLED_OLD);
161 hvalue = avtab_hash(key, h->mask);
165 if (key->source_type == cur->key.source_type &&
166 key->target_type == cur->key.target_type &&
167 key->target_class == cur->key.target_class &&
168 (specified & cur->key.specified))
170 if (key->source_type < cur->key.source_type)
172 if (key->source_type == cur->key.source_type &&
173 key->target_type < cur->key.target_type)
175 if (key->source_type == cur->key.source_type &&
176 key->target_type == cur->key.target_type &&
177 key->target_class < cur->key.target_class)
180 return avtab_insert_node(h, hvalue, prev, key, datum);
187 const struct avtab_key *key)
191 u16 specified = key->specified & ~(AVTAB_ENABLED|AVTAB_ENABLED_OLD);
196 hvalue = avtab_hash(key, h->mask);
199 if (key->source_type == cur->key.source_type &&
200 key->target_type == cur->key.target_type &&
201 key->target_class == cur->key.target_class &&
202 (specified & cur->key.specified))
205 if (key->source_type < cur->key.source_type)
207 if (key->source_type == cur->key.source_type &&
208 key->target_type < cur->key.target_type)
210 if (key->source_type == cur->key.source_type &&
211 key->target_type == cur->key.target_type &&
212 key->target_class < cur->key.target_class)
228 if (node->key.source_type == cur->key.source_type &&
229 node->key.target_type == cur->key.target_type &&
230 node->key.target_class == cur->key.target_class &&
231 (specified & cur->key.specified))
234 if (node->key.source_type < cur->key.source_type)
236 if (node->key.source_type == cur->key.source_type &&
237 node->key.target_type < cur->key.target_type)
239 if (node->key.source_type == cur->key.source_type &&
240 node->key.target_type == cur->key.target_type &&
241 node->key.target_class < cur->key.target_class)
260 if (temp->key.specified & AVTAB_XPERMS)
378 struct avtab_key key;
385 memset(&key, 0, sizeof(struct avtab_key));
408 key.source_type = (u16)val;
409 if (key.source_type != val) {
414 key.target_type = (u16)val;
415 if (key.target_type != val) {
420 key.target_class = (u16)val;
421 if (key.target_class != val) {
445 key.specified = spec_order[i] | enabled;
447 rc = insertf(a, &key, &datum, p);
468 key.source_type = le16_to_cpu(buf16[items++]);
469 key.target_type = le16_to_cpu(buf16[items++]);
470 key.target_class = le16_to_cpu(buf16[items++]);
471 key.specified = le16_to_cpu(buf16[items++]);
473 if (!policydb_type_isvalid(pol, key.source_type) ||
474 !policydb_type_isvalid(pol, key.target_type) ||
475 !policydb_class_isvalid(pol, key.target_class)) {
482 if (key.specified & spec_order[i])
491 (key.specified & AVTAB_XPERMS)) {
496 } else if (key.specified & AVTAB_XPERMS) {
524 if ((key.specified & AVTAB_TYPE) &&
529 return insertf(a, &key, &datum, p);
589 buf16[0] = cpu_to_le16(cur->key.source_type);
590 buf16[1] = cpu_to_le16(cur->key.target_type);
591 buf16[2] = cpu_to_le16(cur->key.target_class);
592 buf16[3] = cpu_to_le16(cur->key.specified);
597 if (cur->key.specified & AVTAB_XPERMS) {