Lines Matching refs:out

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