Lines Matching refs:key

70 		  struct avtab_key *key, struct avtab_datum *datum)  in avtab_insert_node()  argument
76 newnode->key = *key; in avtab_insert_node()
94 static int avtab_insert(struct avtab *h, struct avtab_key *key, struct avtab_datum *datum) in avtab_insert() argument
98 u16 specified = key->specified & ~(AVTAB_ENABLED|AVTAB_ENABLED_OLD); in avtab_insert()
103 hvalue = avtab_hash(key, h->mask); in avtab_insert()
107 if (key->source_type == cur->key.source_type && in avtab_insert()
108 key->target_type == cur->key.target_type && in avtab_insert()
109 key->target_class == cur->key.target_class && in avtab_insert()
110 (specified & cur->key.specified)) in avtab_insert()
112 if (key->source_type < cur->key.source_type) in avtab_insert()
114 if (key->source_type == cur->key.source_type && in avtab_insert()
115 key->target_type < cur->key.target_type) in avtab_insert()
117 if (key->source_type == cur->key.source_type && in avtab_insert()
118 key->target_type == cur->key.target_type && in avtab_insert()
119 key->target_class < cur->key.target_class) in avtab_insert()
123 newnode = avtab_insert_node(h, hvalue, prev, cur, key, datum); in avtab_insert()
135 avtab_insert_nonunique(struct avtab *h, struct avtab_key *key, struct avtab_datum *datum) in avtab_insert_nonunique() argument
139 u16 specified = key->specified & ~(AVTAB_ENABLED|AVTAB_ENABLED_OLD); in avtab_insert_nonunique()
143 hvalue = avtab_hash(key, h->mask); in avtab_insert_nonunique()
147 if (key->source_type == cur->key.source_type && in avtab_insert_nonunique()
148 key->target_type == cur->key.target_type && in avtab_insert_nonunique()
149 key->target_class == cur->key.target_class && in avtab_insert_nonunique()
150 (specified & cur->key.specified)) in avtab_insert_nonunique()
152 if (key->source_type < cur->key.source_type) in avtab_insert_nonunique()
154 if (key->source_type == cur->key.source_type && in avtab_insert_nonunique()
155 key->target_type < cur->key.target_type) in avtab_insert_nonunique()
157 if (key->source_type == cur->key.source_type && in avtab_insert_nonunique()
158 key->target_type == cur->key.target_type && in avtab_insert_nonunique()
159 key->target_class < cur->key.target_class) in avtab_insert_nonunique()
162 return avtab_insert_node(h, hvalue, prev, cur, key, datum); in avtab_insert_nonunique()
165 struct avtab_datum *avtab_search(struct avtab *h, struct avtab_key *key) in avtab_search() argument
169 u16 specified = key->specified & ~(AVTAB_ENABLED|AVTAB_ENABLED_OLD); in avtab_search()
174 hvalue = avtab_hash(key, h->mask); in avtab_search()
177 if (key->source_type == cur->key.source_type && in avtab_search()
178 key->target_type == cur->key.target_type && in avtab_search()
179 key->target_class == cur->key.target_class && in avtab_search()
180 (specified & cur->key.specified)) in avtab_search()
183 if (key->source_type < cur->key.source_type) in avtab_search()
185 if (key->source_type == cur->key.source_type && in avtab_search()
186 key->target_type < cur->key.target_type) in avtab_search()
188 if (key->source_type == cur->key.source_type && in avtab_search()
189 key->target_type == cur->key.target_type && in avtab_search()
190 key->target_class < cur->key.target_class) in avtab_search()
201 avtab_search_node(struct avtab *h, struct avtab_key *key) in avtab_search_node() argument
205 u16 specified = key->specified & ~(AVTAB_ENABLED|AVTAB_ENABLED_OLD); in avtab_search_node()
210 hvalue = avtab_hash(key, h->mask); in avtab_search_node()
213 if (key->source_type == cur->key.source_type && in avtab_search_node()
214 key->target_type == cur->key.target_type && in avtab_search_node()
215 key->target_class == cur->key.target_class && in avtab_search_node()
216 (specified & cur->key.specified)) in avtab_search_node()
219 if (key->source_type < cur->key.source_type) in avtab_search_node()
221 if (key->source_type == cur->key.source_type && in avtab_search_node()
222 key->target_type < cur->key.target_type) in avtab_search_node()
224 if (key->source_type == cur->key.source_type && in avtab_search_node()
225 key->target_type == cur->key.target_type && in avtab_search_node()
226 key->target_class < cur->key.target_class) in avtab_search_node()
242 if (node->key.source_type == cur->key.source_type && in avtab_search_node_next()
243 node->key.target_type == cur->key.target_type && in avtab_search_node_next()
244 node->key.target_class == cur->key.target_class && in avtab_search_node_next()
245 (specified & cur->key.specified)) in avtab_search_node_next()
248 if (node->key.source_type < cur->key.source_type) in avtab_search_node_next()
250 if (node->key.source_type == cur->key.source_type && in avtab_search_node_next()
251 node->key.target_type < cur->key.target_type) in avtab_search_node_next()
253 if (node->key.source_type == cur->key.source_type && in avtab_search_node_next()
254 node->key.target_type == cur->key.target_type && in avtab_search_node_next()
255 node->key.target_class < cur->key.target_class) in avtab_search_node_next()
374 struct avtab_key key; in avtab_read_item() local
379 memset(&key, 0, sizeof(struct avtab_key)); in avtab_read_item()
402 key.source_type = (u16)val; in avtab_read_item()
403 if (key.source_type != val) { in avtab_read_item()
408 key.target_type = (u16)val; in avtab_read_item()
409 if (key.target_type != val) { in avtab_read_item()
414 key.target_class = (u16)val; in avtab_read_item()
415 if (key.target_class != val) { in avtab_read_item()
435 key.specified = spec_order[i] | enabled; in avtab_read_item()
437 rc = insertf(a, &key, &datum, p); in avtab_read_item()
457 key.source_type = le16_to_cpu(buf16[items++]); in avtab_read_item()
458 key.target_type = le16_to_cpu(buf16[items++]); in avtab_read_item()
459 key.target_class = le16_to_cpu(buf16[items++]); in avtab_read_item()
460 key.specified = le16_to_cpu(buf16[items++]); in avtab_read_item()
462 if (!policydb_type_isvalid(pol, key.source_type) || in avtab_read_item()
463 !policydb_type_isvalid(pol, key.target_type) || in avtab_read_item()
464 !policydb_class_isvalid(pol, key.target_class)) { in avtab_read_item()
471 if (key.specified & spec_order[i]) in avtab_read_item()
485 if ((key.specified & AVTAB_TYPE) && in avtab_read_item()
490 return insertf(a, &key, &datum, p); in avtab_read_item()
549 buf16[0] = cpu_to_le16(cur->key.source_type); in avtab_write_item()
550 buf16[1] = cpu_to_le16(cur->key.target_type); in avtab_write_item()
551 buf16[2] = cpu_to_le16(cur->key.target_class); in avtab_write_item()
552 buf16[3] = cpu_to_le16(cur->key.specified); in avtab_write_item()