Lines Matching full:rule

16  * The rule section consists of four null-terminated strings per
23 * Type of the kABI rule. Must be one of the tags defined below.
26 * Rule-dependent target, typically the fully qualified name of
30 * Rule-dependent value.
38 * Rule: declonly
45 * Rule: enumerator_ignore
51 * Rule: enumerator_value
66 struct rule { struct
73 /* { type, target } -> struct rule */ argument
82 static inline unsigned int rule_hash(const struct rule *rule) in rule_hash() argument
84 return rule_values_hash(rule->type, rule->target); in rule_hash()
178 error("kABI rule section too small: %zd bytes", left); in kabi_read_rules()
186 struct rule *rule; in kabi_read_rules() local
192 error("unsupported kABI rule version: '%s'", field); in kabi_read_rules()
205 error("unsupported kABI rule type: '%s'", field); in kabi_read_rules()
207 rule = xmalloc(sizeof(struct rule)); in kabi_read_rules()
209 rule->type = type; in kabi_read_rules()
210 rule->target = xstrdup(get_rule_field(&rule_str, &left)); in kabi_read_rules()
211 rule->value = xstrdup(get_rule_field(&rule_str, &left)); in kabi_read_rules()
213 hash_add(rules, &rule->hash, rule_hash(rule)); in kabi_read_rules()
215 debug("kABI rule: type: '%s', target: '%s', value: '%s'", field, in kabi_read_rules()
216 rule->target, rule->value); in kabi_read_rules()
227 struct rule *rule; in kabi_is_declonly() local
234 hash_for_each_possible(rules, rule, hash, in kabi_is_declonly()
236 if (rule->type == KABI_RULE_TYPE_DECLONLY && in kabi_is_declonly()
237 !strcmp(fqn, rule->target)) in kabi_is_declonly()
271 struct rule *rule; in kabi_is_enumerator_ignored() local
282 rules, rule, hash, in kabi_is_enumerator_ignored()
284 if (rule->type == KABI_RULE_TYPE_ENUMERATOR_IGNORE && in kabi_is_enumerator_ignored()
285 !strcmp(target, rule->target)) { in kabi_is_enumerator_ignored()
299 struct rule *rule; in kabi_get_enumerator_value() local
309 hash_for_each_possible(rules, rule, hash, in kabi_get_enumerator_value()
312 if (rule->type == KABI_RULE_TYPE_ENUMERATOR_VALUE && in kabi_get_enumerator_value()
313 !strcmp(target, rule->target)) { in kabi_get_enumerator_value()
314 *value = get_ulong_value(rule->value); in kabi_get_enumerator_value()
327 struct rule *rule; in kabi_free() local
329 hash_for_each_safe(rules, rule, tmp, hash) { in kabi_free()
330 free((void *)rule->target); in kabi_free()
331 free((void *)rule->value); in kabi_free()
332 free(rule); in kabi_free()