Lines Matching defs:out
22 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
186 static void cil_simple_rules_to_policy(FILE *out, struct cil_list *rules, const char *kind)
191 fprintf(out, "%s %s;\n", kind, DATUM(i1->data)->fqn);
195 static void cil_cats_to_policy(FILE *out, struct cil_cats *cats)
209 fprintf(out, "%s%s", lead, DATUM(first)->fqn);
216 fprintf(out, "%s%s", lead, DATUM(first)->fqn);
219 fprintf(out, ".");
221 fprintf(out, ",");
223 fprintf(out, "%s", DATUM(last)->fqn);
229 fprintf(out, "%s%s", lead, DATUM(first)->fqn);
232 fprintf(out, ".");
234 fprintf(out, ",");
236 fprintf(out, "%s", DATUM(last)->fqn);
241 static void cil_level_to_policy(FILE *out, struct cil_level *level)
243 fprintf(out, "%s", DATUM(level->sens)->fqn);
245 fprintf(out, ":");
246 cil_cats_to_policy(out, level->cats);
262 static void cil_levelrange_to_policy(FILE *out, struct cil_levelrange *lvlrange)
264 cil_level_to_policy(out, lvlrange->low);
266 fprintf(out, " - ");
267 cil_level_to_policy(out, lvlrange->high);
271 static void cil_context_to_policy(FILE *out, struct cil_context *context, int mls)
273 fprintf(out, "%s:", DATUM(context->user)->fqn);
274 fprintf(out, "%s:", DATUM(context->role)->fqn);
275 fprintf(out, "%s", DATUM(context->type)->fqn);
277 fprintf(out, ":");
278 cil_levelrange_to_policy(out, context->range);
282 static void cil_cond_expr_to_policy(FILE *out, struct cil_list *expr, int first)
288 fprintf(out, "(");
291 fprintf(out, "! ");
292 cil_cond_expr_to_policy(out, i1->next->data, CIL_FALSE);
295 cil_cond_expr_to_policy(out, i1->next->data, CIL_FALSE);
296 fprintf(out, " || ");
297 cil_cond_expr_to_policy(out, i1->next->next->data, CIL_FALSE);
300 cil_cond_expr_to_policy(out, i1->next->data, CIL_FALSE);
301 fprintf(out, " && ");
302 cil_cond_expr_to_policy(out, i1->next->next->data, CIL_FALSE);
305 cil_cond_expr_to_policy(out, i1->next->data, CIL_FALSE);
306 fprintf(out, " ^ ");
307 cil_cond_expr_to_policy(out, i1->next->next->data, CIL_FALSE);
310 cil_cond_expr_to_policy(out, i1->next->data, CIL_FALSE);
311 fprintf(out, " == ");
312 cil_cond_expr_to_policy(out, i1->next->next->data, CIL_FALSE);
315 cil_cond_expr_to_policy(out, i1->next->data, CIL_FALSE);
316 fprintf(out, " != ");
317 cil_cond_expr_to_policy(out, i1->next->next->data, CIL_FALSE);
320 fprintf(out, "???");
323 fprintf(out, ")");
326 fprintf(out, "(");
328 fprintf(out, "%s", DATUM(i1->data)->fqn);
330 fprintf(out, ")");
333 cil_cond_expr_to_policy(out, i1->data, CIL_FALSE);
335 fprintf(out, "???");
712 static void cil_class_decls_to_policy(FILE *out, struct cil_list *classorder)
717 fprintf(out, "class %s\n", DATUM(i1->data)->fqn);
721 static void cil_sid_decls_to_policy(FILE *out, struct cil_list *sidorder)
726 fprintf(out, "sid %s\n", DATUM(i1->data)->fqn);
730 static void cil_commons_to_policy(FILE *out, struct cil_list *commons)
742 fprintf(out, "common %s {", common->datum.fqn);
744 fprintf(out, "%s ", DATUM(perm->data)->fqn);
747 fprintf(out, "}\n");
751 static void cil_classes_to_policy(FILE *out, struct cil_list *classorder)
761 fprintf(out, "class %s", class->datum.fqn);
763 fprintf(out, " inherits %s", class->common->datum.fqn);
767 fprintf(out, " {");
769 fprintf(out, " %s", DATUM(perm->data)->fqn);
772 fprintf(out, " }");
774 fprintf(out, "\n");
778 static void cil_defaults_to_policy(FILE *out, struct cil_list *defaults, char *kind)
786 fprintf(out, "%s {",kind);
790 fprintf(out, " %s", DATUM(i3->data)->fqn);
794 fprintf(out, " }");
796 fprintf(out," %s",CIL_KEY_SOURCE);
798 fprintf(out," %s",CIL_KEY_TARGET);
800 fprintf(out,";\n");
804 static void cil_default_ranges_to_policy(FILE *out, struct cil_list *defaults)
812 fprintf(out, "default_range {");
816 fprintf(out, " %s", DATUM(i3->data)->fqn);
820 fprintf(out, " }");
824 fprintf(out," %s %s", CIL_KEY_SOURCE, CIL_KEY_LOW);
827 fprintf(out," %s %s", CIL_KEY_SOURCE, CIL_KEY_HIGH);
830 fprintf(out," %s %s", CIL_KEY_SOURCE, CIL_KEY_LOW_HIGH);
833 fprintf(out," %s %s", CIL_KEY_TARGET, CIL_KEY_LOW);
836 fprintf(out," %s %s", CIL_KEY_TARGET, CIL_KEY_HIGH);
839 fprintf(out," %s %s", CIL_KEY_TARGET, CIL_KEY_LOW_HIGH);
844 fprintf(out,";\n");
848 static void cil_sensitivities_to_policy(FILE *out, struct cil_list *sensorder, struct cil_list *all_aliases)
871 fprintf(out, "sensitivity %s", sens->datum.fqn);
873 fprintf(out, " alias");
875 fprintf(out, " {");
879 fprintf(out, " %s", alias->datum.fqn);
882 fprintf(out, " }");
886 fprintf(out, ";\n");
890 static void cil_dominance_to_policy(FILE *out, struct cil_list *sensorder)
895 fprintf(out, "dominance {");
898 fprintf(out, " %s", sens->datum.fqn);
900 fprintf(out, " }\n");
903 static void cil_categories_to_policy(FILE *out, struct cil_list *catorder, struct cil_list *all_aliases)
926 fprintf(out, "category %s",cat->datum.fqn);
928 fprintf(out, " alias");
930 fprintf(out, " { ");
934 fprintf(out, " %s", alias->datum.fqn);
937 fprintf(out, " }");
941 fprintf(out, ";\n");
945 static void cil_levels_to_policy(FILE *out, struct cil_list *sensorder)
954 fprintf(out, "level %s:",sens->datum.fqn);
955 cil_cats_to_policy(out, i2->data);
956 fprintf(out,";\n");
959 fprintf(out, "level %s;\n",sens->datum.fqn);
964 static void cil_mlsconstrains_to_policy(FILE *out, struct cil_db *db, struct cil_list *mlsconstrains)
979 fprintf(out, "mlsconstrain %s %s;\n", cp_str, expr_str);
987 static void cil_validatetrans_to_policy(FILE *out, struct cil_db *db, struct cil_list *validatetrans, char *kind)
1001 fprintf(out, "%s %s %s;\n", kind, class->datum.fqn, expr_str);
1008 static void cil_bools_to_policy(FILE *out, struct cil_list *bools)
1017 fprintf(out, "bool %s %s;\n", bool->datum.fqn, value);
1021 static void cil_typealiases_to_policy(FILE *out, struct cil_list *types, struct cil_list *all_aliases)
1045 fprintf(out, "typealias %s alias", type->datum.fqn);
1047 fprintf(out, " {");
1051 fprintf(out, " %s", alias->datum.fqn);
1054 fprintf(out, " }");
1056 fprintf(out, ";\n");
1062 static void cil_typebounds_to_policy(FILE *out, struct cil_list *types)
1072 fprintf(out, "typebounds %s %s\n", parent->datum.fqn, child->datum.fqn);
1077 static void cil_typeattributes_to_policy(FILE *out, struct cil_list *types, struct cil_list *attributes)
1092 fprintf(out, "typeattribute %s %s", type->datum.fqn, attribute->datum.fqn);
1095 fprintf(out, ", %s", attribute->datum.fqn);
1100 fprintf(out, ";\n");
1106 static void cil_xperms_to_policy(FILE *out, struct cil_permissionx *permx)
1119 fprintf(out, "%s %s {", DATUM(permx->obj)->fqn, kind);
1132 fprintf(out, " 0x%x", first);
1139 fprintf(out, " 0x%x-0x%x", first, last);
1141 fprintf(out, " 0x%x 0x%x", first, last);
1149 fprintf(out, " 0x%x-0x%x", first, last);
1151 fprintf(out, " 0x%x", first);
1154 fprintf(out," }");
1157 static void cil_av_rulex_to_policy(FILE *out, struct cil_avrule *rule)
1183 fprintf(out, "%s %s %s : ", kind, src->fqn, tgt->fqn);
1184 cil_xperms_to_policy(out, rule->perms.x.permx);
1185 fprintf(out, ";\n");
1188 static void cil_av_rule_to_policy(FILE *out, struct cil_avrule *rule)
1220 fprintf(out, "%s %s %s : %s;\n", kind, src->fqn, tgt->fqn, cp_str);
1226 static void cil_type_rule_to_policy(FILE *out, struct cil_type_rule *rule)
1254 fprintf(out, "%s %s %s : %s %s;\n", kind, src->fqn, tgt->fqn, DATUM(i1->data)->fqn, res->fqn);
1259 static void cil_nametypetransition_to_policy(FILE *out, struct cil_nametypetransition *trans)
1273 fprintf(out, "type_transition %s %s : %s %s \"%s\";\n", src->fqn, tgt->fqn, DATUM(i1->data)->fqn, res->fqn, name->datum.fqn);
1278 static void cil_rangetransition_to_policy(FILE *out, struct cil_rangetransition *trans)
1289 fprintf(out, "range_transition %s %s : %s ", src->fqn, exec->fqn, DATUM(i1->data)->fqn);
1290 cil_levelrange_to_policy(out, trans->range);
1291 fprintf(out, ";\n");
1296 static void cil_typepermissive_to_policy(FILE *out, struct cil_typepermissive *rule)
1298 fprintf(out, "permissive %s;\n", DATUM(rule->type)->fqn);
1302 FILE *out;
1331 cil_av_rulex_to_policy(args->out, rule);
1333 cil_av_rule_to_policy(args->out, rule);
1342 cil_type_rule_to_policy(args->out, rule);
1349 cil_nametypetransition_to_policy(args->out, node->data);
1354 cil_rangetransition_to_policy(args->out, node->data);
1360 cil_typepermissive_to_policy(args->out, node->data);
1370 static void cil_block_te_rules_to_policy(FILE *out, struct cil_tree_node *start, int mls)
1374 args.out = out;
1422 FILE *out;
1446 fprintf(args->out, "if ");
1447 cil_cond_expr_to_policy(args->out, bool->datum_expr, CIL_TRUE);
1448 fprintf(args->out," {\n");
1452 cil_block_te_rules_to_policy(args->out, n, args->mls);
1457 fprintf(args->out,"} else {\n");
1458 cil_block_te_rules_to_policy(args->out, n, args->mls);
1460 fprintf(args->out,"}\n");
1471 static void cil_te_rules_to_policy(FILE *out, struct cil_tree_node *head, int mls)
1475 args.out = out;
1478 cil_block_te_rules_to_policy(out, head, mls);
1482 static void cil_roles_to_policy(FILE *out, struct cil_list *rules)
1491 fprintf(out, "role %s;\n", role->datum.fqn);
1495 static void cil_role_types_to_policy(FILE *out, struct cil_list *roles, struct cil_list *types)
1511 fprintf(out, "role %s types { %s", role->datum.fqn, type->datum.fqn);
1514 fprintf(out, " %s", type->datum.fqn);
1519 fprintf(out, " }");
1522 fprintf(out, ";\n");
1527 static void cil_roleattributes_to_policy(FILE *out, struct cil_list *roles, struct cil_list *attributes)
1542 fprintf(out, "roleattribute %s %s", role->datum.fqn, attribute->datum.fqn);
1545 fprintf(out, ", %s", attribute->datum.fqn);
1550 fprintf(out, ";\n");
1556 static void cil_roleallows_to_policy(FILE *out, struct cil_list *roleallows)
1563 fprintf(out, "allow %s %s;\n", DATUM(allow->src)->fqn, DATUM(allow->tgt)->fqn);
1567 static void cil_roletransitions_to_policy(FILE *out, struct cil_list *roletransitions)
1578 fprintf(out, "role_transition %s %s : %s %s;\n", DATUM(trans->src)->fqn, DATUM(trans->tgt)->fqn, DATUM(i2->data)->fqn, DATUM(trans->result)->fqn);
1584 static void cil_users_to_policy(FILE *out, int mls, struct cil_list *users, struct cil_list *all_roles)
1595 fprintf(out, "user %s",user->datum.fqn);
1607 fprintf(out, " roles");
1609 fprintf(out, " {");
1613 fprintf(out, " %s", role->datum.fqn);
1616 fprintf(out, " }");
1622 fprintf(out, " level ");
1623 cil_level_to_policy(out, user->dftlevel);
1627 fprintf(out, " range ");
1628 cil_levelrange_to_policy(out, user->range);
1631 fprintf(out,";\n");
1635 static void cil_constrains_to_policy(FILE *out, struct cil_db *db, struct cil_list *constrains)
1650 fprintf(out, "constrain %s %s;\n",cp_str, expr_str);
1658 static void cil_sid_contexts_to_policy(FILE *out, struct cil_list *sids, int mls)
1665 fprintf(out, "sid %s ", sid->datum.fqn);
1666 cil_context_to_policy(out, sid->context, mls);
1667 fprintf(out,"\n");
1671 static void cil_fsuses_to_policy(FILE *out, struct cil_sort *fsuses, int mls)
1679 fprintf(out, "fs_use_xattr %s ", fsuse->fs_str);
1680 cil_context_to_policy(out, fsuse->context, mls);
1681 fprintf(out,";\n");
1688 fprintf(out, "fs_use_task %s ", fsuse->fs_str);
1689 cil_context_to_policy(out, fsuse->context, mls);
1690 fprintf(out,";\n");
1697 fprintf(out, "fs_use_trans %s ", fsuse->fs_str);
1698 cil_context_to_policy(out, fsuse->context, mls);
1699 fprintf(out,";\n");
1704 static void cil_genfscons_to_policy(FILE *out, struct cil_sort *genfscons, int mls)
1711 fprintf(out, "genfscon %s %s ", genfscon->fs_str, genfscon->path_str);
1712 cil_context_to_policy(out, genfscon->context, mls);
1713 fprintf(out, "\n");
1717 static void cil_portcons_to_policy(FILE *out, struct cil_sort *portcons, int mls)
1724 fprintf(out, "portcon ");
1726 fprintf(out, "udp ");
1728 fprintf(out, "tcp ");
1730 fprintf(out, "dccp ");
1733 fprintf(out, "%d ", portcon->port_low);
1735 fprintf(out, "%d-%d ", portcon->port_low, portcon->port_high);
1737 cil_context_to_policy(out, portcon->context, mls);
1738 fprintf(out, "\n");
1742 static void cil_netifcons_to_policy(FILE *out, struct cil_sort *netifcons, int mls)
1749 fprintf(out, "netifcon %s ", netifcon->interface_str);
1750 cil_context_to_policy(out, netifcon->if_context, mls);
1751 fprintf(out, " ");
1752 cil_context_to_policy(out, netifcon->packet_context, mls);
1753 fprintf(out, ";\n");
1757 static void cil_nodecons_to_policy(FILE *out, struct cil_sort *nodecons, int mls)
1765 fprintf(out, "nodecon ");
1772 fprintf(out, "%s ",addr);
1774 fprintf(out, "[INVALID] ");
1782 fprintf(out, "%s ",mask);
1784 fprintf(out, "[INVALID] ");
1792 fprintf(out, "%s ",addr);
1794 fprintf(out, "[INVALID] ");
1802 fprintf(out, "%s ",mask);
1804 fprintf(out, "[INVALID] ");
1809 cil_context_to_policy(out, nodecon->context, mls);
1810 fprintf(out, ";\n");
1814 static void cil_pirqcons_to_policy(FILE *out, struct cil_sort *pirqcons, int mls)
1821 fprintf(out, "pirqcon %d ", pirqcon->pirq);
1822 cil_context_to_policy(out, pirqcon->context, mls);
1823 fprintf(out, ";\n");
1827 static void cil_iomemcons_to_policy(FILE *out, struct cil_sort *iomemcons, int mls)
1835 fprintf(out, "iomemcon %"PRIx64" ", iomemcon->iomem_low);
1837 fprintf(out, "iomemcon %"PRIx64"-%"PRIx64" ", iomemcon->iomem_low, iomemcon->iomem_high);
1839 cil_context_to_policy(out, iomemcon->context, mls);
1840 fprintf(out, ";\n");
1844 static void cil_ioportcons_to_policy(FILE *out, struct cil_sort *ioportcons, int mls)
1851 fprintf(out, "ioportcon 0x%x-0x%x ", ioportcon->ioport_low, ioportcon->ioport_high);
1852 cil_context_to_policy(out, ioportcon->context, mls);
1853 fprintf(out, ";\n");
1857 static void cil_pcidevicecons_to_policy(FILE *out, struct cil_sort *pcidevicecons, int mls)
1864 fprintf(out, "pcidevicecon 0x%x ", pcidevicecon->dev);
1865 cil_context_to_policy(out, pcidevicecon->context, mls);
1866 fprintf(out, ";\n");
1870 static void cil_devicetreecons_to_policy(FILE *out, struct cil_sort *devicetreecons, int mls)
1877 fprintf(out, "devicetreecon %s ", devicetreecon->path);
1878 cil_context_to_policy(out, devicetreecon->context, mls);
1879 fprintf(out, ";\n");
1883 void cil_gen_policy(FILE *out, struct cil_db *db)
1895 cil_class_decls_to_policy(out, db->classorder);
1897 cil_sid_decls_to_policy(out, db->sidorder);
1899 cil_commons_to_policy(out, lists[CIL_LIST_COMMON]);
1900 cil_classes_to_policy(out, db->classorder);
1902 cil_defaults_to_policy(out, lists[CIL_LIST_DEFAULT_USER], CIL_KEY_DEFAULTUSER);
1903 cil_defaults_to_policy(out, lists[CIL_LIST_DEFAULT_ROLE], CIL_KEY_DEFAULTROLE);
1904 cil_defaults_to_policy(out, lists[CIL_LIST_DEFAULT_TYPE], CIL_KEY_DEFAULTTYPE);
1907 cil_default_ranges_to_policy(out, lists[CIL_LIST_DEFAULT_RANGE]);
1908 cil_sensitivities_to_policy(out, db->sensitivityorder, lists[CIL_LIST_SENSALIAS]);
1909 cil_dominance_to_policy(out, db->sensitivityorder);
1910 cil_categories_to_policy(out, db->catorder, lists[CIL_LIST_CATALIAS]);
1911 cil_levels_to_policy(out, db->sensitivityorder);
1912 cil_mlsconstrains_to_policy(out, db, lists[CIL_LIST_MLSCONSTRAIN]);
1913 cil_validatetrans_to_policy(out, db, lists[CIL_LIST_MLSVALIDATETRANS], CIL_KEY_MLSVALIDATETRANS);
1916 cil_simple_rules_to_policy(out, lists[CIL_LIST_POLICYCAP], CIL_KEY_POLICYCAP);
1918 cil_simple_rules_to_policy(out, lists[CIL_LIST_TYPEATTRIBUTE], "attribute");
1919 cil_simple_rules_to_policy(out, lists[CIL_LIST_ROLEATTRIBUTE], "attribute_role");
1921 cil_bools_to_policy(out, lists[CIL_LIST_BOOL]);
1923 cil_simple_rules_to_policy(out, lists[CIL_LIST_TYPE], "type");
1924 cil_typealiases_to_policy(out, lists[CIL_LIST_TYPE], lists[CIL_LIST_TYPEALIAS]);
1925 cil_typebounds_to_policy(out, lists[CIL_LIST_TYPE]);
1926 cil_typeattributes_to_policy(out, lists[CIL_LIST_TYPE], lists[CIL_LIST_TYPEATTRIBUTE]);
1927 cil_te_rules_to_policy(out, head, db->mls);
1929 cil_roles_to_policy(out, lists[CIL_LIST_ROLE]);
1930 cil_role_types_to_policy(out, lists[CIL_LIST_ROLE], lists[CIL_LIST_TYPE]);
1931 cil_roleattributes_to_policy(out, lists[CIL_LIST_ROLE], lists[CIL_LIST_ROLEATTRIBUTE]);
1932 cil_roleallows_to_policy(out, lists[CIL_LIST_ROLEALLOW]);
1933 cil_roletransitions_to_policy(out, lists[CIL_LIST_ROLETRANSITION]);
1935 out, db->mls, lists[CIL_LIST_USER], lists[CIL_LIST_ROLE]);
1937 cil_constrains_to_policy(out, db, lists[CIL_LIST_CONSTRAINT]);
1938 cil_validatetrans_to_policy(out, db, lists[CIL_LIST_VALIDATETRANS], CIL_KEY_VALIDATETRANS);
1940 cil_sid_contexts_to_policy(out, db->sidorder, db->mls);
1941 cil_fsuses_to_policy(out, db->fsuse, db->mls);
1942 cil_genfscons_to_policy(out, db->genfscon, db->mls);
1943 cil_portcons_to_policy(out, db->portcon, db->mls);
1944 cil_netifcons_to_policy(out, db->netifcon, db->mls);
1945 cil_nodecons_to_policy(out, db->nodecon, db->mls);
1946 cil_pirqcons_to_policy(out, db->pirqcon, db->mls);
1947 cil_iomemcons_to_policy(out, db->iomemcon, db->mls);
1948 cil_ioportcons_to_policy(out, db->ioportcon, db->mls);
1949 cil_pcidevicecons_to_policy(out, db->pcidevicecon, db->mls);
1950 cil_devicetreecons_to_policy(out, db->devicetreecon, db->mls);