Lines Matching refs:node
90 int evaluate_cond_node(struct policydb *p, struct cond_node *node) in evaluate_cond_node() argument
95 new_state = cond_evaluate_expr(p, node->expr); in evaluate_cond_node()
96 if (new_state != node->cur_state) { in evaluate_cond_node()
97 node->cur_state = new_state; in evaluate_cond_node()
101 for (cur = node->true_list; cur; cur = cur->next) { in evaluate_cond_node()
103 cur->node->key.specified &= ~AVTAB_ENABLED; in evaluate_cond_node()
105 cur->node->key.specified |= AVTAB_ENABLED; in evaluate_cond_node()
108 for (cur = node->false_list; cur; cur = cur->next) { in evaluate_cond_node()
111 cur->node->key.specified &= ~AVTAB_ENABLED; in evaluate_cond_node()
113 cur->node->key.specified |= AVTAB_ENABLED; in evaluate_cond_node()
143 static void cond_node_destroy(struct cond_node *node) in cond_node_destroy() argument
147 for (cur_expr = node->expr; cur_expr; cur_expr = next_expr) { in cond_node_destroy()
151 cond_av_list_destroy(node->true_list); in cond_node_destroy()
152 cond_av_list_destroy(node->false_list); in cond_node_destroy()
153 kfree(node); in cond_node_destroy()
307 if (cur->node == node_ptr) { in cond_insertf()
338 list->node = node_ptr; in cond_insertf()
399 static int cond_read_node(struct policydb *p, struct cond_node *node, void *fp) in cond_read_node() argument
410 node->cur_state = le32_to_cpu(buf[0]); in cond_read_node()
435 node->expr = expr; in cond_read_node()
441 rc = cond_read_av_list(p, fp, &node->true_list, NULL); in cond_read_node()
444 rc = cond_read_av_list(p, fp, &node->false_list, node->true_list); in cond_read_node()
449 cond_node_destroy(node); in cond_read_node()
455 struct cond_node *node, *last = NULL; in cond_read_list() local
472 node = kzalloc(sizeof(struct cond_node), GFP_KERNEL); in cond_read_list()
473 if (!node) in cond_read_list()
476 rc = cond_read_node(p, node, fp); in cond_read_list()
481 p->cond_list = node; in cond_read_list()
483 last->next = node; in cond_read_list()
484 last = node; in cond_read_list()
546 rc = avtab_write_item(p, cur_list->node, fp); in cond_write_av_list()
554 static int cond_write_node(struct policydb *p, struct cond_node *node, in cond_write_node() argument
562 buf[0] = cpu_to_le32(node->cur_state); in cond_write_node()
567 for (cur_expr = node->expr; cur_expr != NULL; cur_expr = cur_expr->next) in cond_write_node()
575 for (cur_expr = node->expr; cur_expr != NULL; cur_expr = cur_expr->next) { in cond_write_node()
583 rc = cond_write_av_list(p, node->true_list, fp); in cond_write_node()
586 rc = cond_write_av_list(p, node->false_list, fp); in cond_write_node()
620 struct avtab_node *node; in cond_compute_xperms() local
625 for (node = avtab_search_node(ctab, key); node; in cond_compute_xperms()
626 node = avtab_search_node_next(node, key->specified)) { in cond_compute_xperms()
627 if (node->key.specified & AVTAB_ENABLED) in cond_compute_xperms()
628 services_compute_xperms_decision(xpermd, node); in cond_compute_xperms()
639 struct avtab_node *node; in cond_compute_av() local
644 for (node = avtab_search_node(ctab, key); node; in cond_compute_av()
645 node = avtab_search_node_next(node, key->specified)) { in cond_compute_av()
647 (node->key.specified & (AVTAB_ALLOWED|AVTAB_ENABLED))) in cond_compute_av()
648 avd->allowed |= node->datum.u.data; in cond_compute_av()
650 (node->key.specified & (AVTAB_AUDITDENY|AVTAB_ENABLED))) in cond_compute_av()
656 avd->auditdeny &= node->datum.u.data; in cond_compute_av()
658 (node->key.specified & (AVTAB_AUDITALLOW|AVTAB_ENABLED))) in cond_compute_av()
659 avd->auditallow |= node->datum.u.data; in cond_compute_av()
660 if (xperms && (node->key.specified & AVTAB_ENABLED) && in cond_compute_av()
661 (node->key.specified & AVTAB_XPERMS)) in cond_compute_av()
662 services_compute_xperms_drivers(xperms, node); in cond_compute_av()