Lines Matching refs:out
54 static void write_expr(FILE *out, struct cil_list *expr) in write_expr() argument
59 fprintf(out, "("); in write_expr()
62 fprintf(out, " "); in write_expr()
67 write_expr(out, curr->data); in write_expr()
70 fprintf(out, "%s", (char *)curr->data); in write_expr()
82 fprintf(out, "%s", datum_to_str(curr->data)); in write_expr()
125 fprintf(out, "%s", op_str); in write_expr()
175 fprintf(out, "%s", operand_str); in write_expr()
179 fprintf(out, "<?FLAVOR>"); in write_expr()
183 fprintf(out, ")"); in write_expr()
186 static void write_node_list(FILE *out, struct cil_tree_node *current) in write_node_list() argument
190 fprintf(out, "("); in write_node_list()
193 fprintf(out, " "); in write_node_list()
197 fprintf(out, "%s", datum_to_str(current->data)); in write_node_list()
200 fprintf(out, ")"); in write_node_list()
203 static void write_string_list(FILE *out, struct cil_list *list) in write_string_list() argument
209 fprintf(out, "()"); in write_string_list()
213 fprintf(out, "("); in write_string_list()
216 fprintf(out, " "); in write_string_list()
219 fprintf(out, "%s", (char*)curr->data); in write_string_list()
221 fprintf(out, ")"); in write_string_list()
224 static void write_datum_list(FILE *out, struct cil_list *list) in write_datum_list() argument
230 fprintf(out, "()"); in write_datum_list()
234 fprintf(out, "("); in write_datum_list()
237 fprintf(out, " "); in write_datum_list()
240 fprintf(out, "%s", datum_to_str(curr->data)); in write_datum_list()
242 fprintf(out, ")"); in write_datum_list()
245 static void write_classperms(FILE *out, struct cil_classperms *cp) in write_classperms() argument
248 fprintf(out, "()"); in write_classperms()
252 fprintf(out, "(%s ", datum_or_str(DATUM(cp->class), cp->class_str)); in write_classperms()
254 write_expr(out, cp->perms); in write_classperms()
256 write_expr(out, cp->perm_strs); in write_classperms()
257 fprintf(out, ")"); in write_classperms()
260 static void write_classperms_list(FILE *out, struct cil_list *cp_list) in write_classperms_list() argument
267 fprintf(out, "()"); in write_classperms_list()
275 fprintf(out, "("); in write_classperms_list()
278 fprintf(out, " "); in write_classperms_list()
282 write_classperms(out, curr->data); in write_classperms_list()
288 fprintf(out, "%s", datum_to_str(DATUM(cp))); in write_classperms_list()
290 write_classperms_list(out,cp->classperms); in write_classperms_list()
292 fprintf(out, "%s", cp_set->set_str); in write_classperms_list()
297 fprintf(out, ")"); in write_classperms_list()
300 static void write_permx(FILE *out, struct cil_permissionx *permx) in write_permx() argument
303 fprintf(out, "%s", datum_to_str(DATUM(permx))); in write_permx()
305 fprintf(out, "("); in write_permx()
306 fprintf(out, "%s ", permx->kind == CIL_PERMX_KIND_IOCTL ? "ioctl" : "<?KIND>"); in write_permx()
307 fprintf(out, "%s ", datum_or_str(DATUM(permx->obj), permx->obj_str)); in write_permx()
308 write_expr(out, permx->expr_str); in write_permx()
309 fprintf(out, ")"); in write_permx()
313 static void write_cats(FILE *out, struct cil_cats *cats) in write_cats() argument
316 write_expr(out, cats->datum_expr); in write_cats()
318 write_expr(out, cats->str_expr); in write_cats()
322 static void write_level(FILE *out, struct cil_level *level, int print_name) in write_level() argument
325 fprintf(out, "%s", datum_to_str(DATUM(level))); in write_level()
327 fprintf(out, "("); in write_level()
328 fprintf(out, "%s", datum_or_str(DATUM(level->sens), level->sens_str)); in write_level()
330 fprintf(out, " "); in write_level()
331 write_cats(out, level->cats); in write_level()
333 fprintf(out, ")"); in write_level()
337 static void write_range(FILE *out, struct cil_levelrange *range, int print_name) in write_range() argument
340 fprintf(out, "%s", datum_to_str(DATUM(range))); in write_range()
342 fprintf(out, "("); in write_range()
344 write_level(out, range->low, CIL_TRUE); in write_range()
346 fprintf(out, "%s", range->low_str); in write_range()
347 fprintf(out, " "); in write_range()
349 write_level(out, range->high, CIL_TRUE); in write_range()
351 fprintf(out, "%s", range->high_str); in write_range()
352 fprintf(out, ")"); in write_range()
356 static void write_context(FILE *out, struct cil_context *context, int print_name) in write_context() argument
359 fprintf(out, "%s", datum_to_str(DATUM(context))); in write_context()
361 fprintf(out, "("); in write_context()
362 fprintf(out, "%s ", datum_or_str(DATUM(context->user), context->user_str)); in write_context()
363 fprintf(out, "%s ", datum_or_str(DATUM(context->role), context->role_str)); in write_context()
364 fprintf(out, "%s ", datum_or_str(DATUM(context->type), context->type_str)); in write_context()
366 write_range(out, context->range, CIL_TRUE); in write_context()
368 fprintf(out, "%s", context->range_str); in write_context()
369 fprintf(out, ")"); in write_context()
373 static void write_ipaddr(FILE *out, struct cil_ipaddr *ipaddr) in write_ipaddr() argument
376 fprintf(out, "%s", datum_to_str(DATUM(ipaddr))); in write_ipaddr()
381 fprintf(out, "(%s)", buf); in write_ipaddr()
385 static void write_constrain(FILE *out, struct cil_constrain *cons) in write_constrain() argument
387 write_classperms_list(out, cons->classperms); in write_constrain()
388 fprintf(out, " "); in write_constrain()
390 write_expr(out, cons->datum_expr); in write_constrain()
392 write_expr(out, cons->str_expr); in write_constrain()
395 static void write_call_args(FILE *out, struct cil_list *args) in write_call_args() argument
400 fprintf(out, "("); in write_call_args()
405 fprintf(out, " "); in write_call_args()
418 fprintf(out, "%s", datum_or_str(arg->arg, arg->arg_str)); in write_call_args()
424 write_cats(out, catset->cats); in write_call_args()
426 fprintf(out, "%s", arg->arg_str); in write_call_args()
433 write_level(out, level, CIL_TRUE); in write_call_args()
435 fprintf(out, "%s", arg->arg_str); in write_call_args()
442 write_range(out, range, CIL_TRUE); in write_call_args()
444 fprintf(out, "%s", arg->arg_str); in write_call_args()
451 write_ipaddr(out, addr); in write_call_args()
453 fprintf(out, "%s", arg->arg_str); in write_call_args()
461 fprintf(out, "%s", datum_to_str(DATUM(cp))); in write_call_args()
463 write_classperms_list(out, cp->classperms); in write_call_args()
465 fprintf(out, "%s", arg->arg_str); in write_call_args()
470 fprintf(out, "<?ARG:%s>", datum_or_str(arg->arg, arg->arg_str)); in write_call_args()
474 fprintf(out, ")"); in write_call_args()
477 static void write_call_args_tree(FILE *out, struct cil_tree_node *arg_node) in write_call_args_tree() argument
481 fprintf(out, "%s", (char *)arg_node->data); in write_call_args_tree()
483 fprintf(out, "("); in write_call_args_tree()
484 write_call_args_tree(out, arg_node->cl_head); in write_call_args_tree()
485 fprintf(out, ")"); in write_call_args_tree()
488 fprintf(out, " "); in write_call_args_tree()
549 static void cil_write_src_info_node(FILE *out, struct cil_tree_node *node) in cil_write_src_info_node() argument
553 fprintf(out, ";;* lms %u %s\n", info->hll_line, info->path); in cil_write_src_info_node()
555 fprintf(out, ";;* lmx %u %s\n", info->hll_line, info->path); in cil_write_src_info_node()
557 fprintf(out, ";;* <?SRC_INFO_KIND> %u %s\n", info->hll_line, info->path); in cil_write_src_info_node()
561 void cil_write_ast_node(FILE *out, struct cil_tree_node *node) in cil_write_ast_node() argument
569 fprintf(out, "%s\n", (char *)node->data); in cil_write_ast_node()
574 fprintf(out, "(block %s", datum_to_str(DATUM(block))); in cil_write_ast_node()
576 fprintf(out, ")"); in cil_write_ast_node()
577 fprintf(out, "\n"); in cil_write_ast_node()
582 fprintf(out, "(blockinherit %s)\n", datum_or_str(DATUM(inherit->block), inherit->block_str)); in cil_write_ast_node()
587 fprintf(out, "(in %s", in->block_str); in cil_write_ast_node()
589 fprintf(out, ")"); in cil_write_ast_node()
590 fprintf(out, "\n"); in cil_write_ast_node()
595 fprintf(out, "(optional %s", datum_to_str(DATUM(optional))); in cil_write_ast_node()
597 fprintf(out, ")"); in cil_write_ast_node()
598 fprintf(out, "\n"); in cil_write_ast_node()
603 fprintf(out, "(booleanif "); in cil_write_ast_node()
605 write_expr(out, bif->datum_expr); in cil_write_ast_node()
607 write_expr(out, bif->str_expr); in cil_write_ast_node()
609 fprintf(out, ")"); in cil_write_ast_node()
610 fprintf(out, "\n"); in cil_write_ast_node()
615 fprintf(out, "(tunableif "); in cil_write_ast_node()
617 write_expr(out, tif->datum_expr); in cil_write_ast_node()
619 write_expr(out, tif->str_expr); in cil_write_ast_node()
621 fprintf(out, ")"); in cil_write_ast_node()
622 fprintf(out, "\n"); in cil_write_ast_node()
627 fprintf(out, "(%s", cb->flavor == CIL_CONDTRUE ? "true" : "false"); in cil_write_ast_node()
629 fprintf(out, ")"); in cil_write_ast_node()
630 fprintf(out, "\n"); in cil_write_ast_node()
636 fprintf(out, "(macro %s (", datum_to_str(DATUM(macro))); in cil_write_ast_node()
640 fprintf(out, "(%s %s)", macro_param_flavor_to_string(param->flavor), param->str); in cil_write_ast_node()
643 fprintf(out, ")"); in cil_write_ast_node()
645 fprintf(out, ")"); in cil_write_ast_node()
646 fprintf(out, "\n"); in cil_write_ast_node()
651 fprintf(out, "(call %s", datum_or_str(DATUM(call->macro), call->macro_str)); in cil_write_ast_node()
653 fprintf(out, " "); in cil_write_ast_node()
654 write_call_args(out, call->args); in cil_write_ast_node()
656 fprintf(out, " "); in cil_write_ast_node()
657 write_call_args_tree(out, call->args_tree->root); in cil_write_ast_node()
660 fprintf(out, ")"); in cil_write_ast_node()
661 fprintf(out, "\n"); in cil_write_ast_node()
666 fprintf(out, "(blockabstract %s)\n", abstract->block_str); in cil_write_ast_node()
671 fprintf(out, "(mls %s)\n", mls->value ? "true" : "false"); in cil_write_ast_node()
676 fprintf(out, "(handleunknown "); in cil_write_ast_node()
678 fprintf(out, "%s", CIL_KEY_HANDLEUNKNOWN_ALLOW); in cil_write_ast_node()
680 fprintf(out, "%s", CIL_KEY_HANDLEUNKNOWN_DENY); in cil_write_ast_node()
682 fprintf(out, "%s", CIL_KEY_HANDLEUNKNOWN_REJECT); in cil_write_ast_node()
684 fprintf(out, "<?UNKNOWN>"); in cil_write_ast_node()
685 fprintf(out, ")\n"); in cil_write_ast_node()
690 fprintf(out, "(defaultuser "); in cil_write_ast_node()
692 write_datum_list(out, def->class_datums); in cil_write_ast_node()
694 write_string_list(out, def->class_strs); in cil_write_ast_node()
696 fprintf(out, " source"); in cil_write_ast_node()
698 fprintf(out, " target"); in cil_write_ast_node()
700 fprintf(out, " <?DEFAULT>"); in cil_write_ast_node()
701 fprintf(out, ")\n"); in cil_write_ast_node()
706 fprintf(out, "(defaultrole "); in cil_write_ast_node()
708 write_datum_list(out, def->class_datums); in cil_write_ast_node()
710 write_string_list(out, def->class_strs); in cil_write_ast_node()
712 fprintf(out, " source"); in cil_write_ast_node()
714 fprintf(out, " target"); in cil_write_ast_node()
716 fprintf(out, " <?DEFAULT>"); in cil_write_ast_node()
717 fprintf(out, ")\n"); in cil_write_ast_node()
722 fprintf(out, "(defaulttype "); in cil_write_ast_node()
724 write_datum_list(out, def->class_datums); in cil_write_ast_node()
726 write_string_list(out, def->class_strs); in cil_write_ast_node()
728 fprintf(out, " source"); in cil_write_ast_node()
730 fprintf(out, " target"); in cil_write_ast_node()
732 fprintf(out, " <?DEFAULT>"); in cil_write_ast_node()
733 fprintf(out, ")\n"); in cil_write_ast_node()
738 fprintf(out, "(defaultrange "); in cil_write_ast_node()
740 write_datum_list(out, def->class_datums); in cil_write_ast_node()
742 write_string_list(out, def->class_strs); in cil_write_ast_node()
744 fprintf(out, " source low"); in cil_write_ast_node()
746 fprintf(out, " source high"); in cil_write_ast_node()
748 fprintf(out, " source low-high"); in cil_write_ast_node()
750 fprintf(out, " target low"); in cil_write_ast_node()
752 fprintf(out, " target high"); in cil_write_ast_node()
754 fprintf(out, " target low-high"); in cil_write_ast_node()
756 fprintf(out, " <?DEFAULT>"); in cil_write_ast_node()
757 fprintf(out, ")\n"); in cil_write_ast_node()
762 fprintf(out, "(class %s ", datum_to_str(DATUM(class))); in cil_write_ast_node()
763 write_node_list(out, node->cl_head); in cil_write_ast_node()
764 fprintf(out, ")\n"); in cil_write_ast_node()
769 fprintf(out, "(classorder "); in cil_write_ast_node()
770 write_string_list(out, classorder->class_list_str); in cil_write_ast_node()
771 fprintf(out, ")\n"); in cil_write_ast_node()
776 fprintf(out, "(common %s ", datum_to_str(DATUM(common))); in cil_write_ast_node()
777 write_node_list(out, node->cl_head); in cil_write_ast_node()
778 fprintf(out, ")\n"); in cil_write_ast_node()
783 fprintf(out, "(classcommon %s %s)\n", cc->class_str, cc->common_str); in cil_write_ast_node()
788 fprintf(out, "(classpermission %s)\n", datum_to_str(DATUM(cp))); in cil_write_ast_node()
793 fprintf(out, "(classpermissionset %s ", cps->set_str); in cil_write_ast_node()
794 write_classperms_list(out, cps->classperms); in cil_write_ast_node()
795 fprintf(out, ")\n"); in cil_write_ast_node()
800 fprintf(out, "(classmap %s ", datum_to_str(DATUM(map))); in cil_write_ast_node()
801 write_node_list(out, node->cl_head); in cil_write_ast_node()
802 fprintf(out, ")\n"); in cil_write_ast_node()
807 fprintf(out, "(classmapping %s %s ", mapping->map_class_str, mapping->map_perm_str); in cil_write_ast_node()
808 write_classperms_list(out, mapping->classperms); in cil_write_ast_node()
809 fprintf(out, ")\n"); in cil_write_ast_node()
814 fprintf(out, "(permissionx %s (", datum_to_str(DATUM(permx))); in cil_write_ast_node()
815 fprintf(out, "%s ", permx->kind == CIL_PERMX_KIND_IOCTL ? "ioctl" : "<?KIND>"); in cil_write_ast_node()
816 fprintf(out, "%s ", datum_or_str(DATUM(permx->obj), permx->obj_str)); in cil_write_ast_node()
817 write_expr(out, permx->expr_str); in cil_write_ast_node()
818 fprintf(out, "))\n"); in cil_write_ast_node()
823 fprintf(out, "(sid %s)\n", datum_to_str(DATUM(sid))); in cil_write_ast_node()
828 fprintf(out, "(sidcontext %s ", sidcon->sid_str); in cil_write_ast_node()
830 write_context(out, sidcon->context, CIL_TRUE); in cil_write_ast_node()
832 fprintf(out, "%s", sidcon->context_str); in cil_write_ast_node()
833 fprintf(out, ")\n"); in cil_write_ast_node()
838 fprintf(out, "(sidorder "); in cil_write_ast_node()
839 write_string_list(out, sidorder->sid_list_str); in cil_write_ast_node()
840 fprintf(out, ")\n"); in cil_write_ast_node()
845 …fprintf(out, "(boolean %s %s)\n", datum_to_str(DATUM(boolean)), boolean->value ? "true" : "false"); in cil_write_ast_node()
850 …fprintf(out, "(tunable %s %s)\n", datum_to_str(DATUM(tunable)), tunable->value ? "true" : "false"); in cil_write_ast_node()
855 fprintf(out, "(sensitivity %s)\n", datum_to_str(DATUM(sens))); in cil_write_ast_node()
860 fprintf(out, "(sensitivityalias %s)\n", datum_to_str(DATUM(alias))); in cil_write_ast_node()
865 fprintf(out, "(sensitivityaliasactual %s %s)\n", aliasactual->alias_str, aliasactual->actual_str); in cil_write_ast_node()
870 fprintf(out, "(category %s)\n", datum_to_str(DATUM(cat))); in cil_write_ast_node()
875 fprintf(out, "(categoryalias %s)\n", datum_to_str(DATUM(alias))); in cil_write_ast_node()
880 fprintf(out, "(categoryaliasactual %s %s)\n", aliasactual->alias_str, aliasactual->actual_str); in cil_write_ast_node()
885 fprintf(out, "(categoryset %s ", datum_to_str(DATUM(catset))); in cil_write_ast_node()
886 write_cats(out, catset->cats); in cil_write_ast_node()
887 fprintf(out, ")\n"); in cil_write_ast_node()
892 fprintf(out, "(categoryorder "); in cil_write_ast_node()
893 write_string_list(out, catorder->cat_list_str); in cil_write_ast_node()
894 fprintf(out, ")\n"); in cil_write_ast_node()
899 fprintf(out, "(sensitivitycategory "); in cil_write_ast_node()
900 fprintf(out, "%s ", senscat->sens_str); in cil_write_ast_node()
901 write_cats(out, senscat->cats); in cil_write_ast_node()
902 fprintf(out, ")\n"); in cil_write_ast_node()
907 fprintf(out, "(sensitivityorder "); in cil_write_ast_node()
908 write_string_list(out, sensorder->sens_list_str); in cil_write_ast_node()
909 fprintf(out, ")\n"); in cil_write_ast_node()
914 fprintf(out, "(level %s ", datum_to_str(&level->datum)); in cil_write_ast_node()
915 write_level(out, level, CIL_FALSE); in cil_write_ast_node()
916 fprintf(out, ")\n"); in cil_write_ast_node()
921 fprintf(out, "(levelrange %s ", datum_to_str(DATUM(lvlrange))); in cil_write_ast_node()
922 write_range(out, lvlrange, CIL_FALSE); in cil_write_ast_node()
923 fprintf(out, ")\n"); in cil_write_ast_node()
928 fprintf(out, "(user %s)\n", datum_to_str(DATUM(user))); in cil_write_ast_node()
933 fprintf(out, "(userattribute %s)\n", datum_to_str(DATUM(attr))); in cil_write_ast_node()
938 fprintf(out, "(userattributeset %s ", attr->attr_str); in cil_write_ast_node()
940 write_expr(out, attr->datum_expr); in cil_write_ast_node()
942 write_expr(out, attr->str_expr); in cil_write_ast_node()
943 fprintf(out, ")\n"); in cil_write_ast_node()
948 fprintf(out, "(userrole "); in cil_write_ast_node()
949 fprintf(out, "%s ", datum_or_str(userrole->user, userrole->user_str)); in cil_write_ast_node()
950 fprintf(out, "%s", datum_or_str(userrole->role, userrole->role_str)); in cil_write_ast_node()
951 fprintf(out, ")\n"); in cil_write_ast_node()
956 fprintf(out, "(userlevel %s ", userlevel->user_str); in cil_write_ast_node()
958 write_level(out, userlevel->level, CIL_TRUE); in cil_write_ast_node()
960 fprintf(out, "%s", userlevel->level_str); in cil_write_ast_node()
961 fprintf(out, ")\n"); in cil_write_ast_node()
966 fprintf(out, "(userrange %s ", userrange->user_str); in cil_write_ast_node()
968 write_range(out, userrange->range, CIL_TRUE); in cil_write_ast_node()
970 fprintf(out, "%s", userrange->range_str); in cil_write_ast_node()
971 fprintf(out, ")\n"); in cil_write_ast_node()
976 fprintf(out, "(userbounds %s %s)\n", bounds->parent_str, bounds->child_str); in cil_write_ast_node()
981 fprintf(out, "(userprefix "); in cil_write_ast_node()
982 fprintf(out, "%s ", datum_or_str(DATUM(prefix->user), prefix->user_str)); in cil_write_ast_node()
983 fprintf(out, "%s)\n", prefix->prefix_str); in cil_write_ast_node()
988 fprintf(out, "(selinuxuser %s ", selinuxuser->name_str); in cil_write_ast_node()
989 fprintf(out, "%s ", datum_or_str(DATUM(selinuxuser->user), selinuxuser->user_str)); in cil_write_ast_node()
991 write_range(out, selinuxuser->range, CIL_TRUE); in cil_write_ast_node()
993 fprintf(out, "%s", selinuxuser->range_str); in cil_write_ast_node()
994 fprintf(out, ")\n"); in cil_write_ast_node()
999 fprintf(out, "(selinuxuserdefault "); in cil_write_ast_node()
1000 fprintf(out, "%s ", datum_or_str(DATUM(selinuxuser->user), selinuxuser->user_str)); in cil_write_ast_node()
1002 write_range(out, selinuxuser->range, CIL_TRUE); in cil_write_ast_node()
1004 fprintf(out, "%s", selinuxuser->range_str); in cil_write_ast_node()
1005 fprintf(out, ")\n"); in cil_write_ast_node()
1009 fprintf(out, "(role %s)\n", datum_to_str(node->data)); in cil_write_ast_node()
1013 fprintf(out, "(roleattribute %s)\n", datum_to_str(node->data)); in cil_write_ast_node()
1018 fprintf(out, "(roleattributeset %s ", attr->attr_str); in cil_write_ast_node()
1020 write_expr(out, attr->datum_expr); in cil_write_ast_node()
1022 write_expr(out, attr->str_expr); in cil_write_ast_node()
1023 fprintf(out, ")\n"); in cil_write_ast_node()
1028 fprintf(out, "(roletype "); in cil_write_ast_node()
1029 fprintf(out, "%s ", datum_or_str(DATUM(roletype->role), roletype->role_str)); in cil_write_ast_node()
1030 fprintf(out, "%s", datum_or_str(DATUM(roletype->type), roletype->type_str)); in cil_write_ast_node()
1031 fprintf(out, ")\n"); in cil_write_ast_node()
1036 fprintf(out, "(rolebounds %s %s)\n", bnds->parent_str, bnds->child_str); in cil_write_ast_node()
1040 fprintf(out, "(type %s)\n", datum_to_str(node->data)); in cil_write_ast_node()
1044 fprintf(out, "(typealias %s)\n", datum_to_str(node->data)); in cil_write_ast_node()
1049 fprintf(out, "(typealiasactual %s %s)\n", aliasactual->alias_str, aliasactual->actual_str); in cil_write_ast_node()
1053 fprintf(out, "(typeattribute %s)\n", datum_to_str(node->data)); in cil_write_ast_node()
1058 fprintf(out, "(typeattributeset %s ", attr->attr_str); in cil_write_ast_node()
1060 write_expr(out, attr->datum_expr); in cil_write_ast_node()
1062 write_expr(out, attr->str_expr); in cil_write_ast_node()
1063 fprintf(out, ")\n"); in cil_write_ast_node()
1068 fprintf(out, "(expandtypeattribute "); in cil_write_ast_node()
1070 write_expr(out, attr->attr_datums); in cil_write_ast_node()
1072 write_expr(out, attr->attr_strs); in cil_write_ast_node()
1073 fprintf(out, " %s)\n", attr->expand ? "true" : "false"); in cil_write_ast_node()
1078 fprintf(out, "(typepermissive "); in cil_write_ast_node()
1079 fprintf(out, "%s", datum_or_str(DATUM(tp->type), tp->type_str)); in cil_write_ast_node()
1080 fprintf(out, ")\n"); in cil_write_ast_node()
1085 fprintf(out, "(typebounds %s %s)\n", bounds->parent_str, bounds->child_str); in cil_write_ast_node()
1090 fprintf(out, "(roleallow "); in cil_write_ast_node()
1091 fprintf(out, "%s ", datum_or_str(DATUM(roleallow->src), roleallow->src_str)); in cil_write_ast_node()
1092 fprintf(out, "%s", datum_or_str(DATUM(roleallow->tgt), roleallow->tgt_str)); in cil_write_ast_node()
1093 fprintf(out, ")\n"); in cil_write_ast_node()
1098 fprintf(out, "(roletransition "); in cil_write_ast_node()
1099 fprintf(out, "%s ", datum_or_str(DATUM(roletrans->src), roletrans->src_str)); in cil_write_ast_node()
1100 fprintf(out, "%s ", datum_or_str(DATUM(roletrans->tgt), roletrans->tgt_str)); in cil_write_ast_node()
1101 fprintf(out, "%s ", datum_or_str(DATUM(roletrans->obj), roletrans->obj_str)); in cil_write_ast_node()
1102 fprintf(out, "%s", datum_or_str(DATUM(roletrans->result), roletrans->result_str)); in cil_write_ast_node()
1103 fprintf(out, ")\n"); in cil_write_ast_node()
1109 fprintf(out, "(allow "); in cil_write_ast_node()
1111 fprintf(out, "(auditallow "); in cil_write_ast_node()
1113 fprintf(out, "(dontaudit "); in cil_write_ast_node()
1115 fprintf(out, "(neverallow "); in cil_write_ast_node()
1117 fprintf(out, "(<?AVRULE> "); in cil_write_ast_node()
1119 fprintf(out, "%s ", datum_or_str(DATUM(rule->src), rule->src_str)); in cil_write_ast_node()
1120 fprintf(out, "%s ", datum_or_str(DATUM(rule->tgt), rule->tgt_str)); in cil_write_ast_node()
1121 write_classperms_list(out, rule->perms.classperms); in cil_write_ast_node()
1122 fprintf(out, ")\n"); in cil_write_ast_node()
1128 fprintf(out, "(allowx "); in cil_write_ast_node()
1130 fprintf(out, "(auditallowx "); in cil_write_ast_node()
1132 fprintf(out, "(dontauditx "); in cil_write_ast_node()
1134 fprintf(out, "(neverallowx "); in cil_write_ast_node()
1136 fprintf(out, "(<?AVRULEX> "); in cil_write_ast_node()
1137 fprintf(out, "%s ", datum_or_str(DATUM(rule->src), rule->src_str)); in cil_write_ast_node()
1138 fprintf(out, "%s ", datum_or_str(DATUM(rule->tgt), rule->tgt_str)); in cil_write_ast_node()
1140 fprintf(out, "%s",rule->perms.x.permx_str); in cil_write_ast_node()
1142 write_permx(out, rule->perms.x.permx); in cil_write_ast_node()
1144 fprintf(out, ")\n"); in cil_write_ast_node()
1150 fprintf(out, "(typetransition "); in cil_write_ast_node()
1152 fprintf(out, "(typemember "); in cil_write_ast_node()
1154 fprintf(out, "(typechange "); in cil_write_ast_node()
1156 fprintf(out, "(<?TYPERULE> "); in cil_write_ast_node()
1157 fprintf(out, "%s ", datum_or_str(DATUM(rule->src), rule->src_str)); in cil_write_ast_node()
1158 fprintf(out, "%s ", datum_or_str(DATUM(rule->tgt), rule->tgt_str)); in cil_write_ast_node()
1159 fprintf(out, "%s ", datum_or_str(DATUM(rule->obj), rule->obj_str)); in cil_write_ast_node()
1160 fprintf(out, "%s", datum_or_str(DATUM(rule->result), rule->result_str)); in cil_write_ast_node()
1161 fprintf(out, ")\n"); in cil_write_ast_node()
1166 fprintf(out, "(typetransition "); in cil_write_ast_node()
1167 fprintf(out, "%s ", datum_or_str(DATUM(rule->src), rule->src_str)); in cil_write_ast_node()
1168 fprintf(out, "%s ", datum_or_str(DATUM(rule->tgt), rule->tgt_str)); in cil_write_ast_node()
1169 fprintf(out, "%s ", datum_or_str(DATUM(rule->obj), rule->obj_str)); in cil_write_ast_node()
1170 fprintf(out, "\"%s\" ", datum_or_str(DATUM(rule->name), rule->name_str)); in cil_write_ast_node()
1171 fprintf(out, "%s", datum_or_str(DATUM(rule->result), rule->result_str)); in cil_write_ast_node()
1172 fprintf(out, ")\n"); in cil_write_ast_node()
1177 fprintf(out, "(rangetransition "); in cil_write_ast_node()
1178 fprintf(out, "%s ", datum_or_str(DATUM(rule->src), rule->src_str)); in cil_write_ast_node()
1179 fprintf(out, "%s ", datum_or_str(DATUM(rule->exec), rule->exec_str)); in cil_write_ast_node()
1180 fprintf(out, "%s ", datum_or_str(DATUM(rule->obj), rule->obj_str)); in cil_write_ast_node()
1182 write_range(out, rule->range, CIL_TRUE); in cil_write_ast_node()
1184 fprintf(out, "%s", rule->range_str); in cil_write_ast_node()
1185 fprintf(out, ")\n"); in cil_write_ast_node()
1190 fprintf(out, "(constrain "); in cil_write_ast_node()
1191 write_constrain(out, cons); in cil_write_ast_node()
1192 fprintf(out, ")\n"); in cil_write_ast_node()
1197 fprintf(out, "(mlsconstrain "); in cil_write_ast_node()
1198 write_constrain(out, cons); in cil_write_ast_node()
1199 fprintf(out, ")\n"); in cil_write_ast_node()
1204 fprintf(out, "(validatetrans "); in cil_write_ast_node()
1205 fprintf(out, "%s ", datum_or_str(DATUM(vt->class), vt->class_str)); in cil_write_ast_node()
1207 write_expr(out, vt->datum_expr); in cil_write_ast_node()
1209 write_expr(out, vt->str_expr); in cil_write_ast_node()
1210 fprintf(out, ")\n"); in cil_write_ast_node()
1215 fprintf(out, "(mlsvalidatetrans "); in cil_write_ast_node()
1216 fprintf(out, "%s ", datum_or_str(DATUM(vt->class), vt->class_str)); in cil_write_ast_node()
1218 write_expr(out, vt->datum_expr); in cil_write_ast_node()
1220 write_expr(out, vt->str_expr); in cil_write_ast_node()
1221 fprintf(out, ")\n"); in cil_write_ast_node()
1226 fprintf(out, "(context %s ", datum_to_str(DATUM(context))); in cil_write_ast_node()
1227 write_context(out, context, CIL_FALSE); in cil_write_ast_node()
1228 fprintf(out, ")\n"); in cil_write_ast_node()
1233 fprintf(out, "(filecon "); in cil_write_ast_node()
1234 fprintf(out, "\"%s\" ", filecon->path_str); in cil_write_ast_node()
1237 fprintf(out, "%s ", CIL_KEY_ANY); in cil_write_ast_node()
1240 fprintf(out, "%s ", CIL_KEY_FILE); in cil_write_ast_node()
1243 fprintf(out, "%s ", CIL_KEY_DIR); in cil_write_ast_node()
1246 fprintf(out, "%s ", CIL_KEY_CHAR); in cil_write_ast_node()
1249 fprintf(out, "%s ", CIL_KEY_BLOCK); in cil_write_ast_node()
1252 fprintf(out, "%s ", CIL_KEY_SOCKET); in cil_write_ast_node()
1255 fprintf(out, "%s ", CIL_KEY_PIPE); in cil_write_ast_node()
1258 fprintf(out, "%s ", CIL_KEY_SYMLINK); in cil_write_ast_node()
1261 fprintf(out, "<?FILETYPE> "); in cil_write_ast_node()
1264 write_context(out, filecon->context, CIL_TRUE); in cil_write_ast_node()
1266 fprintf(out, "%s", filecon->context_str); in cil_write_ast_node()
1268 fprintf(out, "()"); in cil_write_ast_node()
1269 fprintf(out, ")\n"); in cil_write_ast_node()
1274 fprintf(out, "(ibpkeycon %s ", ibpkeycon->subnet_prefix_str); in cil_write_ast_node()
1275 fprintf(out, "(%d %d) ", ibpkeycon->pkey_low, ibpkeycon->pkey_high); in cil_write_ast_node()
1277 write_context(out, ibpkeycon->context, CIL_TRUE); in cil_write_ast_node()
1279 fprintf(out, "%s", ibpkeycon->context_str); in cil_write_ast_node()
1280 fprintf(out, ")\n"); in cil_write_ast_node()
1285 fprintf(out, "(portcon "); in cil_write_ast_node()
1287 fprintf(out, " udp "); in cil_write_ast_node()
1289 fprintf(out, " tcp "); in cil_write_ast_node()
1291 fprintf(out, "dccp "); in cil_write_ast_node()
1293 fprintf(out, "sctp "); in cil_write_ast_node()
1295 fprintf(out, "<?PROTOCOL> "); in cil_write_ast_node()
1297 fprintf(out, "%d ", portcon->port_low); in cil_write_ast_node()
1299 fprintf(out, "(%d %d) ", portcon->port_low, portcon->port_high); in cil_write_ast_node()
1301 write_context(out, portcon->context, CIL_TRUE); in cil_write_ast_node()
1303 fprintf(out, "%s", portcon->context_str); in cil_write_ast_node()
1304 fprintf(out, ")\n"); in cil_write_ast_node()
1309 fprintf(out, "(nodecon "); in cil_write_ast_node()
1311 write_ipaddr(out, nodecon->addr); in cil_write_ast_node()
1313 fprintf(out, "%s ", nodecon->addr_str); in cil_write_ast_node()
1314 fprintf(out, " "); in cil_write_ast_node()
1316 write_ipaddr(out, nodecon->mask); in cil_write_ast_node()
1318 fprintf(out, "%s ", nodecon->mask_str); in cil_write_ast_node()
1319 fprintf(out, " "); in cil_write_ast_node()
1321 write_context(out, nodecon->context, CIL_TRUE); in cil_write_ast_node()
1323 fprintf(out, "%s", nodecon->context_str); in cil_write_ast_node()
1324 fprintf(out, ")\n"); in cil_write_ast_node()
1329 fprintf(out, "(genfscon "); in cil_write_ast_node()
1330 fprintf(out, "%s \"%s\" ", genfscon->fs_str, genfscon->path_str); in cil_write_ast_node()
1334 fprintf(out, "%s ", CIL_KEY_FILE); in cil_write_ast_node()
1337 fprintf(out, "%s ", CIL_KEY_DIR); in cil_write_ast_node()
1340 fprintf(out, "%s ", CIL_KEY_CHAR); in cil_write_ast_node()
1343 fprintf(out, "%s ", CIL_KEY_BLOCK); in cil_write_ast_node()
1346 fprintf(out, "%s ", CIL_KEY_SOCKET); in cil_write_ast_node()
1349 fprintf(out, "%s ", CIL_KEY_PIPE); in cil_write_ast_node()
1352 fprintf(out, "%s ", CIL_KEY_SYMLINK); in cil_write_ast_node()
1355 fprintf(out, "<?FILETYPE> "); in cil_write_ast_node()
1359 write_context(out, genfscon->context, CIL_TRUE); in cil_write_ast_node()
1361 fprintf(out, "%s", genfscon->context_str); in cil_write_ast_node()
1362 fprintf(out, ")\n"); in cil_write_ast_node()
1367 fprintf(out, "(netifcon %s ", netifcon->interface_str); in cil_write_ast_node()
1369 write_context(out, netifcon->if_context, CIL_TRUE); in cil_write_ast_node()
1371 fprintf(out, "%s", netifcon->if_context_str); in cil_write_ast_node()
1372 fprintf(out, " "); in cil_write_ast_node()
1374 write_context(out, netifcon->packet_context, CIL_TRUE); in cil_write_ast_node()
1376 fprintf(out, "%s", netifcon->packet_context_str); in cil_write_ast_node()
1377 fprintf(out, ")\n"); in cil_write_ast_node()
1382 fprintf(out, "(ibendportcon %s %u ", ibendportcon->dev_name_str, ibendportcon->port); in cil_write_ast_node()
1384 write_context(out, ibendportcon->context, CIL_TRUE); in cil_write_ast_node()
1386 fprintf(out, "%s", ibendportcon->context_str); in cil_write_ast_node()
1387 fprintf(out, ")\n"); in cil_write_ast_node()
1392 fprintf(out, "(pirqcon %d ", pirqcon->pirq); in cil_write_ast_node()
1394 write_context(out, pirqcon->context, CIL_TRUE); in cil_write_ast_node()
1396 fprintf(out, "%s", pirqcon->context_str); in cil_write_ast_node()
1397 fprintf(out, ")\n"); in cil_write_ast_node()
1402 fprintf(out, "(iomemcon (%"PRId64" %"PRId64") ", iomemcon->iomem_low, iomemcon->iomem_high); in cil_write_ast_node()
1404 write_context(out, iomemcon->context, CIL_TRUE); in cil_write_ast_node()
1406 fprintf(out, "%s", iomemcon->context_str); in cil_write_ast_node()
1407 fprintf(out, ")\n"); in cil_write_ast_node()
1412 fprintf(out, "(ioportcon "); in cil_write_ast_node()
1414 fprintf(out, "%d ", ioportcon->ioport_low); in cil_write_ast_node()
1416 fprintf(out, "(%d %d) ", ioportcon->ioport_low, ioportcon->ioport_high); in cil_write_ast_node()
1419 write_context(out, ioportcon->context, CIL_TRUE); in cil_write_ast_node()
1421 fprintf(out, "%s", ioportcon->context_str); in cil_write_ast_node()
1422 fprintf(out, ")\n"); in cil_write_ast_node()
1427 fprintf(out, "(pcidevicecon %d ", pcidevicecon->dev); in cil_write_ast_node()
1429 write_context(out, pcidevicecon->context, CIL_TRUE); in cil_write_ast_node()
1431 fprintf(out, "%s", pcidevicecon->context_str); in cil_write_ast_node()
1432 fprintf(out, ")\n"); in cil_write_ast_node()
1437 fprintf(out, "(devicetreecon \"%s\" ", devicetreecon->path); in cil_write_ast_node()
1439 write_context(out, devicetreecon->context, CIL_TRUE); in cil_write_ast_node()
1441 fprintf(out, "%s", devicetreecon->context_str); in cil_write_ast_node()
1442 fprintf(out, ")\n"); in cil_write_ast_node()
1447 fprintf(out, "(fsuse "); in cil_write_ast_node()
1449 fprintf(out, "xattr "); in cil_write_ast_node()
1451 fprintf(out, "task "); in cil_write_ast_node()
1453 fprintf(out, "trans "); in cil_write_ast_node()
1455 fprintf(out, "<?TYPE> "); in cil_write_ast_node()
1456 fprintf(out, "%s ", fsuse->fs_str); in cil_write_ast_node()
1458 write_context(out, fsuse->context, CIL_TRUE); in cil_write_ast_node()
1460 fprintf(out, "%s", fsuse->context_str); in cil_write_ast_node()
1461 fprintf(out, ")\n"); in cil_write_ast_node()
1466 fprintf(out, "(policycap %s)\n", polcap->datum.name); in cil_write_ast_node()
1474 fprintf(out, "(ipaddr %s %s)\n", datum_to_str(&ipaddr->datum), buf); in cil_write_ast_node()
1478 fprintf(out, "(<?RULE:%s>)\n", cil_node_to_string(node)); in cil_write_ast_node()
1488 FILE *out; member
1500 fprintf(args->out, "%*s", args->depth*4, ""); in __write_parse_ast_node_helper()
1503 fprintf(args->out, "(\n"); in __write_parse_ast_node_helper()
1505 fprintf(args->out, "()\n"); in __write_parse_ast_node_helper()
1513 fprintf(args->out, "\"%s\"\n", str); in __write_parse_ast_node_helper()
1518 fprintf(args->out, "%s\n", (char *)node->data); in __write_parse_ast_node_helper()
1546 fprintf(args->out, "%*s", args->depth*4, ""); in __write_parse_ast_last_child_helper()
1547 fprintf(args->out, ")\n"); in __write_parse_ast_last_child_helper()
1561 cil_write_src_info_node(args->out, node); in __write_cil_ast_node_helper()
1565 fprintf(args->out, "%*s", args->depth*4, ""); in __write_cil_ast_node_helper()
1567 cil_write_ast_node(args->out, node); in __write_cil_ast_node_helper()
1596 fprintf(args->out, ";;* lme\n"); in __write_cil_ast_last_child_helper()
1601 fprintf(args->out, "%*s", args->depth*4, ""); in __write_cil_ast_last_child_helper()
1602 fprintf(args->out, ")\n"); in __write_cil_ast_last_child_helper()
1607 int cil_write_ast(FILE *out, enum cil_write_ast_phase phase, struct cil_tree_node *node) in cil_write_ast() argument
1612 extra_args.out = out; in cil_write_ast()