Lines Matching refs:node
33 struct cond_expr_node *node = &expr->nodes[i]; in cond_evaluate_expr() local
35 switch (node->expr_type) { in cond_evaluate_expr()
40 s[sp] = p->bool_val_to_struct[node->boolean - 1]->state; in cond_evaluate_expr()
91 static void evaluate_cond_node(struct policydb *p, struct cond_node *node) in evaluate_cond_node() argument
97 new_state = cond_evaluate_expr(p, &node->expr); in evaluate_cond_node()
98 if (new_state != node->cur_state) { in evaluate_cond_node()
99 node->cur_state = new_state; in evaluate_cond_node()
103 for (i = 0; i < node->true_list.len; i++) { in evaluate_cond_node()
104 avnode = node->true_list.nodes[i]; in evaluate_cond_node()
111 for (i = 0; i < node->false_list.len; i++) { in evaluate_cond_node()
112 avnode = node->false_list.nodes[i]; in evaluate_cond_node()
139 static void cond_node_destroy(struct cond_node *node) in cond_node_destroy() argument
141 kfree(node->expr.nodes); in cond_node_destroy()
143 kfree(node->true_list.nodes); in cond_node_destroy()
144 kfree(node->false_list.nodes); in cond_node_destroy()
372 static int cond_read_node(struct policydb *p, struct cond_node *node, struct policy_file *fp) in cond_read_node() argument
382 node->cur_state = le32_to_cpu(buf[0]); in cond_read_node()
386 node->expr.nodes = kcalloc(len, sizeof(*node->expr.nodes), GFP_KERNEL); in cond_read_node()
387 if (!node->expr.nodes) in cond_read_node()
390 node->expr.len = len; in cond_read_node()
393 struct cond_expr_node *expr = &node->expr.nodes[i]; in cond_read_node()
406 rc = cond_read_av_list(p, fp, &node->true_list, NULL); in cond_read_node()
409 return cond_read_av_list(p, fp, &node->false_list, &node->true_list); in cond_read_node()
498 static int cond_write_node(struct policydb *p, struct cond_node *node, in cond_write_node() argument
505 buf[0] = cpu_to_le32(node->cur_state); in cond_write_node()
510 buf[0] = cpu_to_le32(node->expr.len); in cond_write_node()
515 for (i = 0; i < node->expr.len; i++) { in cond_write_node()
516 buf[0] = cpu_to_le32(node->expr.nodes[i].expr_type); in cond_write_node()
517 buf[1] = cpu_to_le32(node->expr.nodes[i].boolean); in cond_write_node()
523 rc = cond_write_av_list(p, &node->true_list, fp); in cond_write_node()
526 rc = cond_write_av_list(p, &node->false_list, fp); in cond_write_node()
556 struct avtab_node *node; in cond_compute_xperms() local
561 for (node = avtab_search_node(ctab, key); node; in cond_compute_xperms()
562 node = avtab_search_node_next(node, key->specified)) { in cond_compute_xperms()
563 if (node->key.specified & AVTAB_ENABLED) in cond_compute_xperms()
564 services_compute_xperms_decision(xpermd, node); in cond_compute_xperms()
573 struct avtab_node *node; in cond_compute_av() local
578 for (node = avtab_search_node(ctab, key); node; in cond_compute_av()
579 node = avtab_search_node_next(node, key->specified)) { in cond_compute_av()
581 (node->key.specified & (AVTAB_ALLOWED | AVTAB_ENABLED))) in cond_compute_av()
582 avd->allowed |= node->datum.u.data; in cond_compute_av()
584 (node->key.specified & (AVTAB_AUDITDENY | AVTAB_ENABLED))) in cond_compute_av()
590 avd->auditdeny &= node->datum.u.data; in cond_compute_av()
592 (node->key.specified & (AVTAB_AUDITALLOW | AVTAB_ENABLED))) in cond_compute_av()
593 avd->auditallow |= node->datum.u.data; in cond_compute_av()
594 if (xperms && (node->key.specified & AVTAB_ENABLED) && in cond_compute_av()
595 (node->key.specified & AVTAB_XPERMS)) in cond_compute_av()
596 services_compute_xperms_drivers(xperms, node); in cond_compute_av()