Lines Matching refs:p

175 static int roles_init(struct policydb *p)  in roles_init()  argument
187 role->value = ++p->p_roles.nprim; in roles_init()
196 rc = hashtab_insert(p->p_roles.table, key, role); in roles_init()
272 static int policydb_init(struct policydb *p) in policydb_init() argument
276 memset(p, 0, sizeof(*p)); in policydb_init()
279 rc = symtab_init(&p->symtab[i], symtab_sizes[i]); in policydb_init()
284 rc = avtab_init(&p->te_avtab); in policydb_init()
288 rc = roles_init(p); in policydb_init()
292 rc = cond_policydb_init(p); in policydb_init()
296 p->filename_trans = hashtab_create(filenametr_hash, filenametr_cmp, (1 << 10)); in policydb_init()
297 if (!p->filename_trans) { in policydb_init()
302 p->range_tr = hashtab_create(rangetr_hash, rangetr_cmp, 256); in policydb_init()
303 if (!p->range_tr) { in policydb_init()
308 ebitmap_init(&p->filename_trans_ttypes); in policydb_init()
309 ebitmap_init(&p->policycaps); in policydb_init()
310 ebitmap_init(&p->permissive_map); in policydb_init()
314 hashtab_destroy(p->filename_trans); in policydb_init()
315 hashtab_destroy(p->range_tr); in policydb_init()
317 hashtab_destroy(p->symtab[i].table); in policydb_init()
333 struct policydb *p; in common_index() local
338 p = datap; in common_index()
339 if (!comdatum->value || comdatum->value > p->p_commons.nprim) in common_index()
342 fa = p->sym_val_to_name[SYM_COMMONS]; in common_index()
351 struct policydb *p; in class_index() local
356 p = datap; in class_index()
357 if (!cladatum->value || cladatum->value > p->p_classes.nprim) in class_index()
359 fa = p->sym_val_to_name[SYM_CLASSES]; in class_index()
363 p->class_val_to_struct[cladatum->value - 1] = cladatum; in class_index()
369 struct policydb *p; in role_index() local
374 p = datap; in role_index()
376 || role->value > p->p_roles.nprim in role_index()
377 || role->bounds > p->p_roles.nprim) in role_index()
380 fa = p->sym_val_to_name[SYM_ROLES]; in role_index()
384 p->role_val_to_struct[role->value - 1] = role; in role_index()
390 struct policydb *p; in type_index() local
395 p = datap; in type_index()
399 || typdatum->value > p->p_types.nprim in type_index()
400 || typdatum->bounds > p->p_types.nprim) in type_index()
402 fa = p->sym_val_to_name[SYM_TYPES]; in type_index()
407 fa = p->type_val_to_struct_array; in type_index()
418 struct policydb *p; in user_index() local
423 p = datap; in user_index()
425 || usrdatum->value > p->p_users.nprim in user_index()
426 || usrdatum->bounds > p->p_users.nprim) in user_index()
429 fa = p->sym_val_to_name[SYM_USERS]; in user_index()
433 p->user_val_to_struct[usrdatum->value - 1] = usrdatum; in user_index()
439 struct policydb *p; in sens_index() local
444 p = datap; in sens_index()
448 levdatum->level->sens > p->p_levels.nprim) in sens_index()
450 fa = p->sym_val_to_name[SYM_LEVELS]; in sens_index()
461 struct policydb *p; in cat_index() local
466 p = datap; in cat_index()
469 if (!catdatum->value || catdatum->value > p->p_cats.nprim) in cat_index()
471 fa = p->sym_val_to_name[SYM_CATS]; in cat_index()
523 static int policydb_index(struct policydb *p) in policydb_index() argument
528 p->p_users.nprim, p->p_roles.nprim, p->p_types.nprim, p->p_bools.nprim); in policydb_index()
529 if (p->mls_enabled) in policydb_index()
530 printk(", %d sens, %d cats", p->p_levels.nprim, in policydb_index()
531 p->p_cats.nprim); in policydb_index()
535 p->p_classes.nprim, p->te_avtab.nel); in policydb_index()
538 avtab_hash_eval(&p->te_avtab, "rules"); in policydb_index()
539 symtab_hash_eval(p->symtab); in policydb_index()
543 p->class_val_to_struct = in policydb_index()
544 kmalloc(p->p_classes.nprim * sizeof(*(p->class_val_to_struct)), in policydb_index()
546 if (!p->class_val_to_struct) in policydb_index()
550 p->role_val_to_struct = in policydb_index()
551 kmalloc(p->p_roles.nprim * sizeof(*(p->role_val_to_struct)), in policydb_index()
553 if (!p->role_val_to_struct) in policydb_index()
557 p->user_val_to_struct = in policydb_index()
558 kmalloc(p->p_users.nprim * sizeof(*(p->user_val_to_struct)), in policydb_index()
560 if (!p->user_val_to_struct) in policydb_index()
565 p->type_val_to_struct_array = flex_array_alloc(sizeof(struct type_datum *), in policydb_index()
566 p->p_types.nprim, in policydb_index()
568 if (!p->type_val_to_struct_array) in policydb_index()
571 rc = flex_array_prealloc(p->type_val_to_struct_array, 0, in policydb_index()
572 p->p_types.nprim, GFP_KERNEL | __GFP_ZERO); in policydb_index()
576 rc = cond_init_bool_indexes(p); in policydb_index()
582 p->sym_val_to_name[i] = flex_array_alloc(sizeof(char *), in policydb_index()
583 p->symtab[i].nprim, in policydb_index()
585 if (!p->sym_val_to_name[i]) in policydb_index()
588 rc = flex_array_prealloc(p->sym_val_to_name[i], in policydb_index()
589 0, p->symtab[i].nprim, in policydb_index()
594 rc = hashtab_map(p->symtab[i].table, index_f[i], p); in policydb_index()
609 static int perm_destroy(void *key, void *datum, void *p) in perm_destroy() argument
616 static int common_destroy(void *key, void *datum, void *p) in common_destroy() argument
643 static int cls_destroy(void *key, void *datum, void *p) in cls_destroy() argument
685 static int role_destroy(void *key, void *datum, void *p) in role_destroy() argument
699 static int type_destroy(void *key, void *datum, void *p) in type_destroy() argument
706 static int user_destroy(void *key, void *datum, void *p) in user_destroy() argument
722 static int sens_destroy(void *key, void *datum, void *p) in sens_destroy() argument
736 static int cat_destroy(void *key, void *datum, void *p) in cat_destroy() argument
755 static int filenametr_destroy(void *key, void *datum, void *p) in filenametr_destroy() argument
765 static int range_tr_destroy(void *key, void *datum, void *p) in range_tr_destroy() argument
792 void policydb_destroy(struct policydb *p) in policydb_destroy() argument
802 hashtab_map(p->symtab[i].table, destroy_f[i], NULL); in policydb_destroy()
803 hashtab_destroy(p->symtab[i].table); in policydb_destroy()
807 if (p->sym_val_to_name[i]) in policydb_destroy()
808 flex_array_free(p->sym_val_to_name[i]); in policydb_destroy()
811 kfree(p->class_val_to_struct); in policydb_destroy()
812 kfree(p->role_val_to_struct); in policydb_destroy()
813 kfree(p->user_val_to_struct); in policydb_destroy()
814 if (p->type_val_to_struct_array) in policydb_destroy()
815 flex_array_free(p->type_val_to_struct_array); in policydb_destroy()
817 avtab_destroy(&p->te_avtab); in policydb_destroy()
821 c = p->ocontexts[i]; in policydb_destroy()
827 p->ocontexts[i] = NULL; in policydb_destroy()
830 g = p->genfs; in policydb_destroy()
844 p->genfs = NULL; in policydb_destroy()
846 cond_policydb_destroy(p); in policydb_destroy()
848 for (tr = p->role_tr; tr; tr = tr->next) { in policydb_destroy()
855 for (ra = p->role_allow; ra; ra = ra->next) { in policydb_destroy()
862 hashtab_map(p->filename_trans, filenametr_destroy, NULL); in policydb_destroy()
863 hashtab_destroy(p->filename_trans); in policydb_destroy()
865 hashtab_map(p->range_tr, range_tr_destroy, NULL); in policydb_destroy()
866 hashtab_destroy(p->range_tr); in policydb_destroy()
868 if (p->type_attr_map_array) { in policydb_destroy()
869 for (i = 0; i < p->p_types.nprim; i++) { in policydb_destroy()
872 e = flex_array_get(p->type_attr_map_array, i); in policydb_destroy()
877 flex_array_free(p->type_attr_map_array); in policydb_destroy()
880 ebitmap_destroy(&p->filename_trans_ttypes); in policydb_destroy()
881 ebitmap_destroy(&p->policycaps); in policydb_destroy()
882 ebitmap_destroy(&p->permissive_map); in policydb_destroy()
891 int policydb_load_isids(struct policydb *p, struct sidtab *s) in policydb_load_isids() argument
902 head = p->ocontexts[OCON_ISID]; in policydb_load_isids()
923 int policydb_class_isvalid(struct policydb *p, unsigned int class) in policydb_class_isvalid() argument
925 if (!class || class > p->p_classes.nprim) in policydb_class_isvalid()
930 int policydb_role_isvalid(struct policydb *p, unsigned int role) in policydb_role_isvalid() argument
932 if (!role || role > p->p_roles.nprim) in policydb_role_isvalid()
937 int policydb_type_isvalid(struct policydb *p, unsigned int type) in policydb_type_isvalid() argument
939 if (!type || type > p->p_types.nprim) in policydb_type_isvalid()
948 int policydb_context_isvalid(struct policydb *p, struct context *c) in policydb_context_isvalid() argument
953 if (!c->role || c->role > p->p_roles.nprim) in policydb_context_isvalid()
956 if (!c->user || c->user > p->p_users.nprim) in policydb_context_isvalid()
959 if (!c->type || c->type > p->p_types.nprim) in policydb_context_isvalid()
966 role = p->role_val_to_struct[c->role - 1]; in policydb_context_isvalid()
974 usrdatum = p->user_val_to_struct[c->user - 1]; in policydb_context_isvalid()
983 if (!mls_context_isvalid(p, c)) in policydb_context_isvalid()
1053 struct policydb *p, in context_read_and_validate() argument
1067 if (p->policyvers >= POLICYDB_VERSION_MLS) { in context_read_and_validate()
1076 if (!policydb_context_isvalid(p, c)) { in context_read_and_validate()
1112 static int perm_read(struct policydb *p, struct hashtab *h, void *fp) in perm_read() argument
1146 static int common_read(struct policydb *p, struct hashtab *h, void *fp) in common_read() argument
1177 rc = perm_read(p, comdatum->permissions.table, fp); in common_read()
1216 static int read_cons_helper(struct policydb *p, in read_cons_helper() argument
1286 if (p->policyvers >= in read_cons_helper()
1312 static int class_read(struct policydb *p, struct hashtab *h, void *fp) in class_read() argument
1351 cladatum->comdatum = hashtab_search(p->p_commons.table, cladatum->comkey); in class_read()
1358 rc = perm_read(p, cladatum->permissions.table, fp); in class_read()
1363 rc = read_cons_helper(p, &cladatum->constraints, ncons, 0, fp); in class_read()
1367 if (p->policyvers >= POLICYDB_VERSION_VALIDATETRANS) { in class_read()
1373 rc = read_cons_helper(p, &cladatum->validatetrans, in class_read()
1379 if (p->policyvers >= POLICYDB_VERSION_NEW_OBJECT_DEFAULTS) { in class_read()
1389 if (p->policyvers >= POLICYDB_VERSION_DEFAULT_TYPE) { in class_read()
1406 static int role_read(struct policydb *p, struct hashtab *h, void *fp) in role_read() argument
1419 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in role_read()
1428 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in role_read()
1463 static int type_read(struct policydb *p, struct hashtab *h, void *fp) in type_read() argument
1476 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in type_read()
1485 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) { in type_read()
1538 static int user_read(struct policydb *p, struct hashtab *h, void *fp) in user_read() argument
1551 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in user_read()
1560 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in user_read()
1571 if (p->policyvers >= POLICYDB_VERSION_MLS) { in user_read()
1589 static int sens_read(struct policydb *p, struct hashtab *h, void *fp) in sens_read() argument
1631 static int cat_read(struct policydb *p, struct hashtab *h, void *fp) in cat_read() argument
1665 static int (*read_f[SYM_NUM]) (struct policydb *p, struct hashtab *h, void *fp) =
1680 struct policydb *p = datap; in user_bounds_sanity_check() local
1695 upper = p->user_val_to_struct[upper->bounds - 1]; in user_bounds_sanity_check()
1703 sym_name(p, SYM_USERS, user->value - 1), in user_bounds_sanity_check()
1704 sym_name(p, SYM_ROLES, bit), in user_bounds_sanity_check()
1705 sym_name(p, SYM_USERS, upper->value - 1)); in user_bounds_sanity_check()
1717 struct policydb *p = datap; in role_bounds_sanity_check() local
1732 upper = p->role_val_to_struct[upper->bounds - 1]; in role_bounds_sanity_check()
1740 sym_name(p, SYM_ROLES, role->value - 1), in role_bounds_sanity_check()
1741 sym_name(p, SYM_TYPES, bit), in role_bounds_sanity_check()
1742 sym_name(p, SYM_ROLES, upper->value - 1)); in role_bounds_sanity_check()
1754 struct policydb *p = datap; in type_bounds_sanity_check() local
1766 upper = flex_array_get_ptr(p->type_val_to_struct_array, in type_bounds_sanity_check()
1774 sym_name(p, SYM_TYPES, upper->value - 1)); in type_bounds_sanity_check()
1782 static int policydb_bounds_sanity_check(struct policydb *p) in policydb_bounds_sanity_check() argument
1786 if (p->policyvers < POLICYDB_VERSION_BOUNDARY) in policydb_bounds_sanity_check()
1789 rc = hashtab_map(p->p_users.table, in policydb_bounds_sanity_check()
1790 user_bounds_sanity_check, p); in policydb_bounds_sanity_check()
1794 rc = hashtab_map(p->p_roles.table, in policydb_bounds_sanity_check()
1795 role_bounds_sanity_check, p); in policydb_bounds_sanity_check()
1799 rc = hashtab_map(p->p_types.table, in policydb_bounds_sanity_check()
1800 type_bounds_sanity_check, p); in policydb_bounds_sanity_check()
1807 u16 string_to_security_class(struct policydb *p, const char *name) in string_to_security_class() argument
1811 cladatum = hashtab_search(p->p_classes.table, name); in string_to_security_class()
1818 u32 string_to_av_perm(struct policydb *p, u16 tclass, const char *name) in string_to_av_perm() argument
1824 if (!tclass || tclass > p->p_classes.nprim) in string_to_av_perm()
1827 cladatum = p->class_val_to_struct[tclass-1]; in string_to_av_perm()
1841 static int range_read(struct policydb *p, void *fp) in range_read() argument
1849 if (p->policyvers < POLICYDB_VERSION_MLS) in range_read()
1869 if (p->policyvers >= POLICYDB_VERSION_RANGETRANS) { in range_read()
1875 rt->target_class = p->process_class; in range_read()
1878 if (!policydb_type_isvalid(p, rt->source_type) || in range_read()
1879 !policydb_type_isvalid(p, rt->target_type) || in range_read()
1880 !policydb_class_isvalid(p, rt->target_class)) in range_read()
1893 if (!mls_range_isvalid(p, r)) { in range_read()
1898 rc = hashtab_insert(p->range_tr, rt, r); in range_read()
1905 hash_eval(p->range_tr, "rangetr"); in range_read()
1913 static int filename_trans_read(struct policydb *p, void *fp) in filename_trans_read() argument
1922 if (p->policyvers < POLICYDB_VERSION_FILENAME_TRANS) in filename_trans_read()
1968 rc = ebitmap_set_bit(&p->filename_trans_ttypes, ft->ttype, 1); in filename_trans_read()
1972 rc = hashtab_insert(p->filename_trans, ft, otype); in filename_trans_read()
1986 hash_eval(p->filename_trans, "filenametr"); in filename_trans_read()
1996 static int genfs_read(struct policydb *p, void *fp) in genfs_read() argument
2026 for (genfs_p = NULL, genfs = p->genfs; genfs; in genfs_read()
2041 p->genfs = newgenfs; in genfs_read()
2070 rc = context_read_and_validate(&newc->context[0], p, fp); in genfs_read()
2108 static int ocontext_read(struct policydb *p, struct policydb_compat_info *info, in ocontext_read() argument
2132 p->ocontexts[i] = c; in ocontext_read()
2142 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2157 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2160 rc = context_read_and_validate(&c->context[1], p, fp); in ocontext_read()
2171 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2181 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2203 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2217 rc = context_read_and_validate(&c->context[0], p, fp); in ocontext_read()
2234 int policydb_read(struct policydb *p, void *fp) in policydb_read() argument
2245 rc = policydb_init(p); in policydb_read()
2304 p->policyvers = le32_to_cpu(buf[0]); in policydb_read()
2305 if (p->policyvers < POLICYDB_VERSION_MIN || in policydb_read()
2306 p->policyvers > POLICYDB_VERSION_MAX) { in policydb_read()
2314 p->mls_enabled = 1; in policydb_read()
2317 if (p->policyvers < POLICYDB_VERSION_MLS) { in policydb_read()
2320 p->policyvers); in policydb_read()
2324 p->reject_unknown = !!(le32_to_cpu(buf[1]) & REJECT_UNKNOWN); in policydb_read()
2325 p->allow_unknown = !!(le32_to_cpu(buf[1]) & ALLOW_UNKNOWN); in policydb_read()
2327 if (p->policyvers >= POLICYDB_VERSION_POLCAP) { in policydb_read()
2328 rc = ebitmap_read(&p->policycaps, fp); in policydb_read()
2333 if (p->policyvers >= POLICYDB_VERSION_PERMISSIVE) { in policydb_read()
2334 rc = ebitmap_read(&p->permissive_map, fp); in policydb_read()
2340 info = policydb_lookup_compat(p->policyvers); in policydb_read()
2343 "for version %d\n", p->policyvers); in policydb_read()
2364 rc = read_f[i](p, p->symtab[i].table, fp); in policydb_read()
2369 p->symtab[i].nprim = nprim; in policydb_read()
2373 p->process_class = string_to_security_class(p, "process"); in policydb_read()
2374 if (!p->process_class) in policydb_read()
2377 rc = avtab_read(&p->te_avtab, fp, p); in policydb_read()
2381 if (p->policyvers >= POLICYDB_VERSION_BOOL) { in policydb_read()
2382 rc = cond_read_list(p, fp); in policydb_read()
2400 p->role_tr = tr; in policydb_read()
2409 if (p->policyvers >= POLICYDB_VERSION_ROLETRANS) { in policydb_read()
2415 tr->tclass = p->process_class; in policydb_read()
2417 if (!policydb_role_isvalid(p, tr->role) || in policydb_read()
2418 !policydb_type_isvalid(p, tr->type) || in policydb_read()
2419 !policydb_class_isvalid(p, tr->tclass) || in policydb_read()
2420 !policydb_role_isvalid(p, tr->new_role)) in policydb_read()
2438 p->role_allow = ra; in policydb_read()
2446 if (!policydb_role_isvalid(p, ra->role) || in policydb_read()
2447 !policydb_role_isvalid(p, ra->new_role)) in policydb_read()
2452 rc = filename_trans_read(p, fp); in policydb_read()
2456 rc = policydb_index(p); in policydb_read()
2461 p->process_trans_perms = string_to_av_perm(p, p->process_class, "transition"); in policydb_read()
2462 p->process_trans_perms |= string_to_av_perm(p, p->process_class, "dyntransition"); in policydb_read()
2463 if (!p->process_trans_perms) in policydb_read()
2466 rc = ocontext_read(p, info, fp); in policydb_read()
2470 rc = genfs_read(p, fp); in policydb_read()
2474 rc = range_read(p, fp); in policydb_read()
2479 p->type_attr_map_array = flex_array_alloc(sizeof(struct ebitmap), in policydb_read()
2480 p->p_types.nprim, in policydb_read()
2482 if (!p->type_attr_map_array) in policydb_read()
2486 rc = flex_array_prealloc(p->type_attr_map_array, 0, p->p_types.nprim, in policydb_read()
2491 for (i = 0; i < p->p_types.nprim; i++) { in policydb_read()
2492 struct ebitmap *e = flex_array_get(p->type_attr_map_array, i); in policydb_read()
2496 if (p->policyvers >= POLICYDB_VERSION_AVTAB) { in policydb_read()
2507 rc = policydb_bounds_sanity_check(p); in policydb_read()
2515 policydb_destroy(p); in policydb_read()
2632 static int role_trans_write(struct policydb *p, void *fp) in role_trans_write() argument
2634 struct role_trans *r = p->role_tr; in role_trans_write()
2654 if (p->policyvers >= POLICYDB_VERSION_ROLETRANS) { in role_trans_write()
2693 static int context_write(struct policydb *p, struct context *c, in context_write() argument
2790 static int write_cons_helper(struct policydb *p, struct constraint_node *node, in write_cons_helper() argument
2821 if (p->policyvers >= in write_cons_helper()
2843 struct policydb *p = pd->p; in class_write() local
2887 rc = write_cons_helper(p, cladatum->constraints, fp); in class_write()
2901 rc = write_cons_helper(p, cladatum->validatetrans, fp); in class_write()
2905 if (p->policyvers >= POLICYDB_VERSION_NEW_OBJECT_DEFAULTS) { in class_write()
2915 if (p->policyvers >= POLICYDB_VERSION_DEFAULT_TYPE) { in class_write()
2931 struct policydb *p = pd->p; in role_write() local
2940 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in role_write()
2969 struct policydb *p = pd->p; in type_write() local
2979 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) { in type_write()
3010 struct policydb *p = pd->p; in user_write() local
3020 if (p->policyvers >= POLICYDB_VERSION_BOUNDARY) in user_write()
3059 static int ocontext_write(struct policydb *p, struct policydb_compat_info *info, in ocontext_write() argument
3069 for (c = p->ocontexts[i]; c; c = c->next) in ocontext_write()
3075 for (c = p->ocontexts[i]; c; c = c->next) { in ocontext_write()
3082 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3096 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3099 rc = context_write(p, &c->context[1], fp); in ocontext_write()
3110 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3120 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3134 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3146 rc = context_write(p, &c->context[0], fp); in ocontext_write()
3156 static int genfs_write(struct policydb *p, void *fp) in genfs_write() argument
3165 for (genfs = p->genfs; genfs; genfs = genfs->next) in genfs_write()
3171 for (genfs = p->genfs; genfs; genfs = genfs->next) { in genfs_write()
3200 rc = context_write(p, &c->context[0], fp); in genfs_write()
3223 struct policydb *p = pd->p; in range_write_helper() local
3231 if (p->policyvers >= POLICYDB_VERSION_RANGETRANS) { in range_write_helper()
3244 static int range_write(struct policydb *p, void *fp) in range_write() argument
3250 pd.p = p; in range_write()
3255 rc = hashtab_map(p->range_tr, hashtab_cnt, &nel); in range_write()
3265 rc = hashtab_map(p->range_tr, range_write_helper, &pd); in range_write()
3303 static int filename_trans_write(struct policydb *p, void *fp) in filename_trans_write() argument
3309 if (p->policyvers < POLICYDB_VERSION_FILENAME_TRANS) in filename_trans_write()
3313 rc = hashtab_map(p->filename_trans, hashtab_cnt, &nel); in filename_trans_write()
3322 rc = hashtab_map(p->filename_trans, filename_write_helper, fp); in filename_trans_write()
3334 int policydb_write(struct policydb *p, void *fp) in policydb_write() argument
3349 if (p->policyvers < POLICYDB_VERSION_AVTAB) { in policydb_write()
3351 " Because it is less than version %d\n", p->policyvers, in policydb_write()
3357 if (p->mls_enabled) in policydb_write()
3360 if (p->reject_unknown) in policydb_write()
3362 if (p->allow_unknown) in policydb_write()
3377 info = policydb_lookup_compat(p->policyvers); in policydb_write()
3380 "version %d", p->policyvers); in policydb_write()
3384 buf[0] = cpu_to_le32(p->policyvers); in policydb_write()
3393 if (p->policyvers >= POLICYDB_VERSION_POLCAP) { in policydb_write()
3394 rc = ebitmap_write(&p->policycaps, fp); in policydb_write()
3399 if (p->policyvers >= POLICYDB_VERSION_PERMISSIVE) { in policydb_write()
3400 rc = ebitmap_write(&p->permissive_map, fp); in policydb_write()
3410 pd.p = p; in policydb_write()
3412 buf[0] = cpu_to_le32(p->symtab[i].nprim); in policydb_write()
3413 buf[1] = cpu_to_le32(p->symtab[i].table->nel); in policydb_write()
3418 rc = hashtab_map(p->symtab[i].table, write_f[i], &pd); in policydb_write()
3423 rc = avtab_write(p, &p->te_avtab, fp); in policydb_write()
3427 rc = cond_write_list(p, p->cond_list, fp); in policydb_write()
3431 rc = role_trans_write(p, fp); in policydb_write()
3435 rc = role_allow_write(p->role_allow, fp); in policydb_write()
3439 rc = filename_trans_write(p, fp); in policydb_write()
3443 rc = ocontext_write(p, info, fp); in policydb_write()
3447 rc = genfs_write(p, fp); in policydb_write()
3451 rc = range_write(p, fp); in policydb_write()
3455 for (i = 0; i < p->p_types.nprim; i++) { in policydb_write()
3456 struct ebitmap *e = flex_array_get(p->type_attr_map_array, i); in policydb_write()