Lines Matching refs:p

170 static int roles_init(struct policydb *p)  in roles_init()  argument
182 role->value = ++p->p_roles.nprim; in roles_init()
191 rc = hashtab_insert(p->p_roles.table, key, role); in roles_init()
267 static int policydb_init(struct policydb *p) in policydb_init() argument
271 memset(p, 0, sizeof(*p)); in policydb_init()
274 rc = symtab_init(&p->symtab[i], symtab_sizes[i]); in policydb_init()
279 rc = avtab_init(&p->te_avtab); in policydb_init()
283 rc = roles_init(p); in policydb_init()
287 rc = cond_policydb_init(p); in policydb_init()
291 p->filename_trans = hashtab_create(filenametr_hash, filenametr_cmp, (1 << 10)); in policydb_init()
292 if (!p->filename_trans) { in policydb_init()
297 p->range_tr = hashtab_create(rangetr_hash, rangetr_cmp, 256); in policydb_init()
298 if (!p->range_tr) { in policydb_init()
303 ebitmap_init(&p->filename_trans_ttypes); in policydb_init()
304 ebitmap_init(&p->policycaps); in policydb_init()
305 ebitmap_init(&p->permissive_map); in policydb_init()
309 hashtab_destroy(p->filename_trans); in policydb_init()
310 hashtab_destroy(p->range_tr); in policydb_init()
312 hashtab_destroy(p->symtab[i].table); in policydb_init()
328 struct policydb *p; in common_index() local
333 p = datap; in common_index()
334 if (!comdatum->value || comdatum->value > p->p_commons.nprim) in common_index()
337 fa = p->sym_val_to_name[SYM_COMMONS]; in common_index()
346 struct policydb *p; in class_index() local
351 p = datap; in class_index()
352 if (!cladatum->value || cladatum->value > p->p_classes.nprim) in class_index()
354 fa = p->sym_val_to_name[SYM_CLASSES]; in class_index()
358 p->class_val_to_struct[cladatum->value - 1] = cladatum; in class_index()
364 struct policydb *p; in role_index() local
369 p = datap; in role_index()
371 || role->value > p->p_roles.nprim in role_index()
372 || role->bounds > p->p_roles.nprim) in role_index()
375 fa = p->sym_val_to_name[SYM_ROLES]; in role_index()
379 p->role_val_to_struct[role->value - 1] = role; in role_index()
385 struct policydb *p; in type_index() local
390 p = datap; in type_index()
394 || typdatum->value > p->p_types.nprim in type_index()
395 || typdatum->bounds > p->p_types.nprim) in type_index()
397 fa = p->sym_val_to_name[SYM_TYPES]; in type_index()
402 fa = p->type_val_to_struct_array; in type_index()
413 struct policydb *p; in user_index() local
418 p = datap; in user_index()
420 || usrdatum->value > p->p_users.nprim in user_index()
421 || usrdatum->bounds > p->p_users.nprim) in user_index()
424 fa = p->sym_val_to_name[SYM_USERS]; in user_index()
428 p->user_val_to_struct[usrdatum->value - 1] = usrdatum; in user_index()
434 struct policydb *p; in sens_index() local
439 p = datap; in sens_index()
443 levdatum->level->sens > p->p_levels.nprim) in sens_index()
445 fa = p->sym_val_to_name[SYM_LEVELS]; in sens_index()
456 struct policydb *p; in cat_index() local
461 p = datap; in cat_index()
464 if (!catdatum->value || catdatum->value > p->p_cats.nprim) in cat_index()
466 fa = p->sym_val_to_name[SYM_CATS]; in cat_index()
518 static int policydb_index(struct policydb *p) in policydb_index() argument
523 p->p_users.nprim, p->p_roles.nprim, p->p_types.nprim, p->p_bools.nprim); in policydb_index()
524 if (p->mls_enabled) in policydb_index()
525 printk(", %d sens, %d cats", p->p_levels.nprim, in policydb_index()
526 p->p_cats.nprim); in policydb_index()
530 p->p_classes.nprim, p->te_avtab.nel); in policydb_index()
533 avtab_hash_eval(&p->te_avtab, "rules"); in policydb_index()
534 symtab_hash_eval(p->symtab); in policydb_index()
538 p->class_val_to_struct = in policydb_index()
539 kmalloc(p->p_classes.nprim * sizeof(*(p->class_val_to_struct)), in policydb_index()
541 if (!p->class_val_to_struct) in policydb_index()
545 p->role_val_to_struct = in policydb_index()
546 kmalloc(p->p_roles.nprim * sizeof(*(p->role_val_to_struct)), in policydb_index()
548 if (!p->role_val_to_struct) in policydb_index()
552 p->user_val_to_struct = in policydb_index()
553 kmalloc(p->p_users.nprim * sizeof(*(p->user_val_to_struct)), in policydb_index()
555 if (!p->user_val_to_struct) in policydb_index()
560 p->type_val_to_struct_array = flex_array_alloc(sizeof(struct type_datum *), in policydb_index()
561 p->p_types.nprim, in policydb_index()
563 if (!p->type_val_to_struct_array) in policydb_index()
566 rc = flex_array_prealloc(p->type_val_to_struct_array, 0, in policydb_index()
567 p->p_types.nprim, GFP_KERNEL | __GFP_ZERO); in policydb_index()
571 rc = cond_init_bool_indexes(p); in policydb_index()
577 p->sym_val_to_name[i] = flex_array_alloc(sizeof(char *), in policydb_index()
578 p->symtab[i].nprim, in policydb_index()
580 if (!p->sym_val_to_name[i]) in policydb_index()
583 rc = flex_array_prealloc(p->sym_val_to_name[i], in policydb_index()
584 0, p->symtab[i].nprim, in policydb_index()
589 rc = hashtab_map(p->symtab[i].table, index_f[i], p); in policydb_index()
604 static int perm_destroy(void *key, void *datum, void *p) in perm_destroy() argument
611 static int common_destroy(void *key, void *datum, void *p) in common_destroy() argument
638 static int cls_destroy(void *key, void *datum, void *p) in cls_destroy() argument
680 static int role_destroy(void *key, void *datum, void *p) in role_destroy() argument
694 static int type_destroy(void *key, void *datum, void *p) in type_destroy() argument
701 static int user_destroy(void *key, void *datum, void *p) in user_destroy() argument
717 static int sens_destroy(void *key, void *datum, void *p) in sens_destroy() argument
731 static int cat_destroy(void *key, void *datum, void *p) in cat_destroy() argument
750 static int filenametr_destroy(void *key, void *datum, void *p) in filenametr_destroy() argument
760 static int range_tr_destroy(void *key, void *datum, void *p) in range_tr_destroy() argument
787 void policydb_destroy(struct policydb *p) in policydb_destroy() argument
797 hashtab_map(p->symtab[i].table, destroy_f[i], NULL); in policydb_destroy()
798 hashtab_destroy(p->symtab[i].table); in policydb_destroy()
802 if (p->sym_val_to_name[i]) in policydb_destroy()
803 flex_array_free(p->sym_val_to_name[i]); in policydb_destroy()
806 kfree(p->class_val_to_struct); in policydb_destroy()
807 kfree(p->role_val_to_struct); in policydb_destroy()
808 kfree(p->user_val_to_struct); in policydb_destroy()
809 if (p->type_val_to_struct_array) in policydb_destroy()
810 flex_array_free(p->type_val_to_struct_array); in policydb_destroy()
812 avtab_destroy(&p->te_avtab); in policydb_destroy()
816 c = p->ocontexts[i]; in policydb_destroy()
822 p->ocontexts[i] = NULL; in policydb_destroy()
825 g = p->genfs; in policydb_destroy()
839 p->genfs = NULL; in policydb_destroy()
841 cond_policydb_destroy(p); in policydb_destroy()
843 for (tr = p->role_tr; tr; tr = tr->next) { in policydb_destroy()
850 for (ra = p->role_allow; ra; ra = ra->next) { in policydb_destroy()
857 hashtab_map(p->filename_trans, filenametr_destroy, NULL); in policydb_destroy()
858 hashtab_destroy(p->filename_trans); in policydb_destroy()
860 hashtab_map(p->range_tr, range_tr_destroy, NULL); in policydb_destroy()
861 hashtab_destroy(p->range_tr); in policydb_destroy()
863 if (p->type_attr_map_array) { in policydb_destroy()
864 for (i = 0; i < p->p_types.nprim; i++) { in policydb_destroy()
867 e = flex_array_get(p->type_attr_map_array, i); in policydb_destroy()
872 flex_array_free(p->type_attr_map_array); in policydb_destroy()
875 ebitmap_destroy(&p->filename_trans_ttypes); in policydb_destroy()
876 ebitmap_destroy(&p->policycaps); in policydb_destroy()
877 ebitmap_destroy(&p->permissive_map); in policydb_destroy()
886 int policydb_load_isids(struct policydb *p, struct sidtab *s) in policydb_load_isids() argument
897 head = p->ocontexts[OCON_ISID]; in policydb_load_isids()
918 int policydb_class_isvalid(struct policydb *p, unsigned int class) in policydb_class_isvalid() argument
920 if (!class || class > p->p_classes.nprim) in policydb_class_isvalid()
925 int policydb_role_isvalid(struct policydb *p, unsigned int role) in policydb_role_isvalid() argument
927 if (!role || role > p->p_roles.nprim) in policydb_role_isvalid()
932 int policydb_type_isvalid(struct policydb *p, unsigned int type) in policydb_type_isvalid() argument
934 if (!type || type > p->p_types.nprim) in policydb_type_isvalid()
943 int policydb_context_isvalid(struct policydb *p, struct context *c) in policydb_context_isvalid() argument
948 if (!c->role || c->role > p->p_roles.nprim) in policydb_context_isvalid()
951 if (!c->user || c->user > p->p_users.nprim) in policydb_context_isvalid()
954 if (!c->type || c->type > p->p_types.nprim) in policydb_context_isvalid()
961 role = p->role_val_to_struct[c->role - 1]; in policydb_context_isvalid()
969 usrdatum = p->user_val_to_struct[c->user - 1]; in policydb_context_isvalid()
978 if (!mls_context_isvalid(p, c)) in policydb_context_isvalid()
1048 struct policydb *p, in context_read_and_validate() argument
1062 if (p->policyvers >= POLICYDB_VERSION_MLS) { in context_read_and_validate()
1071 if (!policydb_context_isvalid(p, c)) { in context_read_and_validate()
1107 static int perm_read(struct policydb *p, struct hashtab *h, void *fp) in perm_read() argument
1141 static int common_read(struct policydb *p, struct hashtab *h, void *fp) in common_read() argument
1172 rc = perm_read(p, comdatum->permissions.table, fp); in common_read()
1211 static int read_cons_helper(struct policydb *p, in read_cons_helper() argument
1281 if (p->policyvers >= in read_cons_helper()
1307 static int class_read(struct policydb *p, struct hashtab *h, void *fp) in class_read() argument
1346 cladatum->comdatum = hashtab_search(p->p_commons.table, cladatum->comkey); in class_read()
1353 rc = perm_read(p, cladatum->permissions.table, fp); in class_read()
1358 rc = read_cons_helper(p, &cladatum->constraints, ncons, 0, fp); in class_read()
1362 if (p->policyvers >= POLICYDB_VERSION_VALIDATETRANS) { in class_read()
1368 rc = read_cons_helper(p, &cladatum->validatetrans, in class_read()
1374 if (p->policyvers >= POLICYDB_VERSION_NEW_OBJECT_DEFAULTS) { in class_read()
1384 if (p->policyvers >= POLICYDB_VERSION_DEFAULT_TYPE) { in class_read()
1401 static int role_read(struct policydb *p, struct hashtab *h, void *fp) in role_read() argument
1414 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in role_read()
1423 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in role_read()
1458 static int type_read(struct policydb *p, struct hashtab *h, void *fp) in type_read() argument
1471 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in type_read()
1480 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) { in type_read()
1533 static int user_read(struct policydb *p, struct hashtab *h, void *fp) in user_read() argument
1546 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in user_read()
1555 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in user_read()
1566 if (p->policyvers >= POLICYDB_VERSION_MLS) { in user_read()
1584 static int sens_read(struct policydb *p, struct hashtab *h, void *fp) in sens_read() argument
1626 static int cat_read(struct policydb *p, struct hashtab *h, void *fp) in cat_read() argument
1660 static int (*read_f[SYM_NUM]) (struct policydb *p, struct hashtab *h, void *fp) =
1675 struct policydb *p = datap; in user_bounds_sanity_check() local
1690 upper = p->user_val_to_struct[upper->bounds - 1]; in user_bounds_sanity_check()
1698 sym_name(p, SYM_USERS, user->value - 1), in user_bounds_sanity_check()
1699 sym_name(p, SYM_ROLES, bit), in user_bounds_sanity_check()
1700 sym_name(p, SYM_USERS, upper->value - 1)); in user_bounds_sanity_check()
1712 struct policydb *p = datap; in role_bounds_sanity_check() local
1727 upper = p->role_val_to_struct[upper->bounds - 1]; in role_bounds_sanity_check()
1735 sym_name(p, SYM_ROLES, role->value - 1), in role_bounds_sanity_check()
1736 sym_name(p, SYM_TYPES, bit), in role_bounds_sanity_check()
1737 sym_name(p, SYM_ROLES, upper->value - 1)); in role_bounds_sanity_check()
1749 struct policydb *p = datap; in type_bounds_sanity_check() local
1761 upper = flex_array_get_ptr(p->type_val_to_struct_array, in type_bounds_sanity_check()
1769 sym_name(p, SYM_TYPES, upper->value - 1)); in type_bounds_sanity_check()
1777 static int policydb_bounds_sanity_check(struct policydb *p) in policydb_bounds_sanity_check() argument
1781 if (p->policyvers < POLICYDB_VERSION_BOUNDARY) in policydb_bounds_sanity_check()
1784 rc = hashtab_map(p->p_users.table, in policydb_bounds_sanity_check()
1785 user_bounds_sanity_check, p); in policydb_bounds_sanity_check()
1789 rc = hashtab_map(p->p_roles.table, in policydb_bounds_sanity_check()
1790 role_bounds_sanity_check, p); in policydb_bounds_sanity_check()
1794 rc = hashtab_map(p->p_types.table, in policydb_bounds_sanity_check()
1795 type_bounds_sanity_check, p); in policydb_bounds_sanity_check()
1802 u16 string_to_security_class(struct policydb *p, const char *name) in string_to_security_class() argument
1806 cladatum = hashtab_search(p->p_classes.table, name); in string_to_security_class()
1813 u32 string_to_av_perm(struct policydb *p, u16 tclass, const char *name) in string_to_av_perm() argument
1819 if (!tclass || tclass > p->p_classes.nprim) in string_to_av_perm()
1822 cladatum = p->class_val_to_struct[tclass-1]; in string_to_av_perm()
1836 static int range_read(struct policydb *p, void *fp) in range_read() argument
1844 if (p->policyvers < POLICYDB_VERSION_MLS) in range_read()
1864 if (p->policyvers >= POLICYDB_VERSION_RANGETRANS) { in range_read()
1870 rt->target_class = p->process_class; in range_read()
1873 if (!policydb_type_isvalid(p, rt->source_type) || in range_read()
1874 !policydb_type_isvalid(p, rt->target_type) || in range_read()
1875 !policydb_class_isvalid(p, rt->target_class)) in range_read()
1888 if (!mls_range_isvalid(p, r)) { in range_read()
1893 rc = hashtab_insert(p->range_tr, rt, r); in range_read()
1900 hash_eval(p->range_tr, "rangetr"); in range_read()
1908 static int filename_trans_read(struct policydb *p, void *fp) in filename_trans_read() argument
1917 if (p->policyvers < POLICYDB_VERSION_FILENAME_TRANS) in filename_trans_read()
1963 rc = ebitmap_set_bit(&p->filename_trans_ttypes, ft->ttype, 1); in filename_trans_read()
1967 rc = hashtab_insert(p->filename_trans, ft, otype); in filename_trans_read()
1981 hash_eval(p->filename_trans, "filenametr"); in filename_trans_read()
1991 static int genfs_read(struct policydb *p, void *fp) in genfs_read() argument
2021 for (genfs_p = NULL, genfs = p->genfs; genfs; in genfs_read()
2036 p->genfs = newgenfs; in genfs_read()
2065 rc = context_read_and_validate(&newc->context[0], p, fp); in genfs_read()
2103 static int ocontext_read(struct policydb *p, struct policydb_compat_info *info, in ocontext_read() argument
2127 p->ocontexts[i] = c; in ocontext_read()
2137 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2152 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2155 rc = context_read_and_validate(&c->context[1], p, fp); in ocontext_read()
2166 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2176 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2198 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2212 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2229 int policydb_read(struct policydb *p, void *fp) in policydb_read() argument
2240 rc = policydb_init(p); in policydb_read()
2299 p->policyvers = le32_to_cpu(buf[0]); in policydb_read()
2300 if (p->policyvers < POLICYDB_VERSION_MIN || in policydb_read()
2301 p->policyvers > POLICYDB_VERSION_MAX) { in policydb_read()
2309 p->mls_enabled = 1; in policydb_read()
2312 if (p->policyvers < POLICYDB_VERSION_MLS) { in policydb_read()
2315 p->policyvers); in policydb_read()
2319 p->reject_unknown = !!(le32_to_cpu(buf[1]) & REJECT_UNKNOWN); in policydb_read()
2320 p->allow_unknown = !!(le32_to_cpu(buf[1]) & ALLOW_UNKNOWN); in policydb_read()
2322 if (p->policyvers >= POLICYDB_VERSION_POLCAP) { in policydb_read()
2323 rc = ebitmap_read(&p->policycaps, fp); in policydb_read()
2328 if (p->policyvers >= POLICYDB_VERSION_PERMISSIVE) { in policydb_read()
2329 rc = ebitmap_read(&p->permissive_map, fp); in policydb_read()
2335 info = policydb_lookup_compat(p->policyvers); in policydb_read()
2338 "for version %d\n", p->policyvers); in policydb_read()
2359 rc = read_f[i](p, p->symtab[i].table, fp); in policydb_read()
2364 p->symtab[i].nprim = nprim; in policydb_read()
2368 p->process_class = string_to_security_class(p, "process"); in policydb_read()
2369 if (!p->process_class) in policydb_read()
2372 rc = avtab_read(&p->te_avtab, fp, p); in policydb_read()
2376 if (p->policyvers >= POLICYDB_VERSION_BOOL) { in policydb_read()
2377 rc = cond_read_list(p, fp); in policydb_read()
2395 p->role_tr = tr; in policydb_read()
2404 if (p->policyvers >= POLICYDB_VERSION_ROLETRANS) { in policydb_read()
2410 tr->tclass = p->process_class; in policydb_read()
2412 if (!policydb_role_isvalid(p, tr->role) || in policydb_read()
2413 !policydb_type_isvalid(p, tr->type) || in policydb_read()
2414 !policydb_class_isvalid(p, tr->tclass) || in policydb_read()
2415 !policydb_role_isvalid(p, tr->new_role)) in policydb_read()
2433 p->role_allow = ra; in policydb_read()
2441 if (!policydb_role_isvalid(p, ra->role) || in policydb_read()
2442 !policydb_role_isvalid(p, ra->new_role)) in policydb_read()
2447 rc = filename_trans_read(p, fp); in policydb_read()
2451 rc = policydb_index(p); in policydb_read()
2456 p->process_trans_perms = string_to_av_perm(p, p->process_class, "transition"); in policydb_read()
2457 p->process_trans_perms |= string_to_av_perm(p, p->process_class, "dyntransition"); in policydb_read()
2458 if (!p->process_trans_perms) in policydb_read()
2461 rc = ocontext_read(p, info, fp); in policydb_read()
2465 rc = genfs_read(p, fp); in policydb_read()
2469 rc = range_read(p, fp); in policydb_read()
2474 p->type_attr_map_array = flex_array_alloc(sizeof(struct ebitmap), in policydb_read()
2475 p->p_types.nprim, in policydb_read()
2477 if (!p->type_attr_map_array) in policydb_read()
2481 rc = flex_array_prealloc(p->type_attr_map_array, 0, p->p_types.nprim, in policydb_read()
2486 for (i = 0; i < p->p_types.nprim; i++) { in policydb_read()
2487 struct ebitmap *e = flex_array_get(p->type_attr_map_array, i); in policydb_read()
2491 if (p->policyvers >= POLICYDB_VERSION_AVTAB) { in policydb_read()
2502 rc = policydb_bounds_sanity_check(p); in policydb_read()
2510 policydb_destroy(p); in policydb_read()
2627 static int role_trans_write(struct policydb *p, void *fp) in role_trans_write() argument
2629 struct role_trans *r = p->role_tr; in role_trans_write()
2649 if (p->policyvers >= POLICYDB_VERSION_ROLETRANS) { in role_trans_write()
2688 static int context_write(struct policydb *p, struct context *c, in context_write() argument
2785 static int write_cons_helper(struct policydb *p, struct constraint_node *node, in write_cons_helper() argument
2816 if (p->policyvers >= in write_cons_helper()
2838 struct policydb *p = pd->p; in class_write() local
2882 rc = write_cons_helper(p, cladatum->constraints, fp); in class_write()
2896 rc = write_cons_helper(p, cladatum->validatetrans, fp); in class_write()
2900 if (p->policyvers >= POLICYDB_VERSION_NEW_OBJECT_DEFAULTS) { in class_write()
2910 if (p->policyvers >= POLICYDB_VERSION_DEFAULT_TYPE) { in class_write()
2926 struct policydb *p = pd->p; in role_write() local
2935 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in role_write()
2964 struct policydb *p = pd->p; in type_write() local
2974 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) { in type_write()
3005 struct policydb *p = pd->p; in user_write() local
3015 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in user_write()
3054 static int ocontext_write(struct policydb *p, struct policydb_compat_info *info, in ocontext_write() argument
3064 for (c = p->ocontexts[i]; c; c = c->next) in ocontext_write()
3070 for (c = p->ocontexts[i]; c; c = c->next) { in ocontext_write()
3077 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3091 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3094 rc = context_write(p, &c->context[1], fp); in ocontext_write()
3105 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3115 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3129 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3141 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3151 static int genfs_write(struct policydb *p, void *fp) in genfs_write() argument
3160 for (genfs = p->genfs; genfs; genfs = genfs->next) in genfs_write()
3166 for (genfs = p->genfs; genfs; genfs = genfs->next) { in genfs_write()
3195 rc = context_write(p, &c->context[0], fp); in genfs_write()
3218 struct policydb *p = pd->p; in range_write_helper() local
3226 if (p->policyvers >= POLICYDB_VERSION_RANGETRANS) { in range_write_helper()
3239 static int range_write(struct policydb *p, void *fp) in range_write() argument
3245 pd.p = p; in range_write()
3250 rc = hashtab_map(p->range_tr, hashtab_cnt, &nel); in range_write()
3260 rc = hashtab_map(p->range_tr, range_write_helper, &pd); in range_write()
3298 static int filename_trans_write(struct policydb *p, void *fp) in filename_trans_write() argument
3304 if (p->policyvers < POLICYDB_VERSION_FILENAME_TRANS) in filename_trans_write()
3308 rc = hashtab_map(p->filename_trans, hashtab_cnt, &nel); in filename_trans_write()
3317 rc = hashtab_map(p->filename_trans, filename_write_helper, fp); in filename_trans_write()
3329 int policydb_write(struct policydb *p, void *fp) in policydb_write() argument
3344 if (p->policyvers < POLICYDB_VERSION_AVTAB) { in policydb_write()
3346 " Because it is less than version %d\n", p->policyvers, in policydb_write()
3352 if (p->mls_enabled) in policydb_write()
3355 if (p->reject_unknown) in policydb_write()
3357 if (p->allow_unknown) in policydb_write()
3372 info = policydb_lookup_compat(p->policyvers); in policydb_write()
3375 "version %d", p->policyvers); in policydb_write()
3379 buf[0] = cpu_to_le32(p->policyvers); in policydb_write()
3388 if (p->policyvers >= POLICYDB_VERSION_POLCAP) { in policydb_write()
3389 rc = ebitmap_write(&p->policycaps, fp); in policydb_write()
3394 if (p->policyvers >= POLICYDB_VERSION_PERMISSIVE) { in policydb_write()
3395 rc = ebitmap_write(&p->permissive_map, fp); in policydb_write()
3405 pd.p = p; in policydb_write()
3407 buf[0] = cpu_to_le32(p->symtab[i].nprim); in policydb_write()
3408 buf[1] = cpu_to_le32(p->symtab[i].table->nel); in policydb_write()
3413 rc = hashtab_map(p->symtab[i].table, write_f[i], &pd); in policydb_write()
3418 rc = avtab_write(p, &p->te_avtab, fp); in policydb_write()
3422 rc = cond_write_list(p, p->cond_list, fp); in policydb_write()
3426 rc = role_trans_write(p, fp); in policydb_write()
3430 rc = role_allow_write(p->role_allow, fp); in policydb_write()
3434 rc = filename_trans_write(p, fp); in policydb_write()
3438 rc = ocontext_write(p, info, fp); in policydb_write()
3442 rc = genfs_write(p, fp); in policydb_write()
3446 rc = range_write(p, fp); in policydb_write()
3450 for (i = 0; i < p->p_types.nprim; i++) { in policydb_write()
3451 struct ebitmap *e = flex_array_get(p->type_attr_map_array, i); in policydb_write()