1*2d543d20SAndroid Build Coastguard Worker #ifndef _SEPOL_MODULE_H_ 2*2d543d20SAndroid Build Coastguard Worker #define _SEPOL_MODULE_H_ 3*2d543d20SAndroid Build Coastguard Worker 4*2d543d20SAndroid Build Coastguard Worker #include <stddef.h> 5*2d543d20SAndroid Build Coastguard Worker #include <stdio.h> 6*2d543d20SAndroid Build Coastguard Worker #include <stdint.h> 7*2d543d20SAndroid Build Coastguard Worker 8*2d543d20SAndroid Build Coastguard Worker #include <sepol/handle.h> 9*2d543d20SAndroid Build Coastguard Worker #include <sepol/policydb.h> 10*2d543d20SAndroid Build Coastguard Worker 11*2d543d20SAndroid Build Coastguard Worker #ifdef __cplusplus 12*2d543d20SAndroid Build Coastguard Worker extern "C" { 13*2d543d20SAndroid Build Coastguard Worker #endif 14*2d543d20SAndroid Build Coastguard Worker 15*2d543d20SAndroid Build Coastguard Worker struct sepol_module_package; 16*2d543d20SAndroid Build Coastguard Worker typedef struct sepol_module_package sepol_module_package_t; 17*2d543d20SAndroid Build Coastguard Worker 18*2d543d20SAndroid Build Coastguard Worker /* Module package public interfaces. */ 19*2d543d20SAndroid Build Coastguard Worker 20*2d543d20SAndroid Build Coastguard Worker extern int sepol_module_package_create(sepol_module_package_t ** p); 21*2d543d20SAndroid Build Coastguard Worker 22*2d543d20SAndroid Build Coastguard Worker extern void sepol_module_package_free(sepol_module_package_t * p); 23*2d543d20SAndroid Build Coastguard Worker 24*2d543d20SAndroid Build Coastguard Worker extern char *sepol_module_package_get_file_contexts(sepol_module_package_t * p); 25*2d543d20SAndroid Build Coastguard Worker 26*2d543d20SAndroid Build Coastguard Worker extern size_t sepol_module_package_get_file_contexts_len(sepol_module_package_t 27*2d543d20SAndroid Build Coastguard Worker * p); 28*2d543d20SAndroid Build Coastguard Worker 29*2d543d20SAndroid Build Coastguard Worker extern int sepol_module_package_set_file_contexts(sepol_module_package_t * p, 30*2d543d20SAndroid Build Coastguard Worker char *data, size_t len); 31*2d543d20SAndroid Build Coastguard Worker 32*2d543d20SAndroid Build Coastguard Worker extern char *sepol_module_package_get_seusers(sepol_module_package_t * p); 33*2d543d20SAndroid Build Coastguard Worker 34*2d543d20SAndroid Build Coastguard Worker extern size_t sepol_module_package_get_seusers_len(sepol_module_package_t * p); 35*2d543d20SAndroid Build Coastguard Worker 36*2d543d20SAndroid Build Coastguard Worker extern int sepol_module_package_set_seusers(sepol_module_package_t * p, 37*2d543d20SAndroid Build Coastguard Worker char *data, size_t len); 38*2d543d20SAndroid Build Coastguard Worker 39*2d543d20SAndroid Build Coastguard Worker extern char *sepol_module_package_get_user_extra(sepol_module_package_t * p); 40*2d543d20SAndroid Build Coastguard Worker 41*2d543d20SAndroid Build Coastguard Worker extern size_t sepol_module_package_get_user_extra_len(sepol_module_package_t * 42*2d543d20SAndroid Build Coastguard Worker p); 43*2d543d20SAndroid Build Coastguard Worker 44*2d543d20SAndroid Build Coastguard Worker extern int sepol_module_package_set_user_extra(sepol_module_package_t * p, 45*2d543d20SAndroid Build Coastguard Worker char *data, size_t len); 46*2d543d20SAndroid Build Coastguard Worker 47*2d543d20SAndroid Build Coastguard Worker extern char *sepol_module_package_get_netfilter_contexts(sepol_module_package_t 48*2d543d20SAndroid Build Coastguard Worker * p); 49*2d543d20SAndroid Build Coastguard Worker 50*2d543d20SAndroid Build Coastguard Worker extern size_t 51*2d543d20SAndroid Build Coastguard Worker sepol_module_package_get_netfilter_contexts_len(sepol_module_package_t * p); 52*2d543d20SAndroid Build Coastguard Worker 53*2d543d20SAndroid Build Coastguard Worker extern int sepol_module_package_set_netfilter_contexts(sepol_module_package_t * 54*2d543d20SAndroid Build Coastguard Worker p, char *data, 55*2d543d20SAndroid Build Coastguard Worker size_t len); 56*2d543d20SAndroid Build Coastguard Worker 57*2d543d20SAndroid Build Coastguard Worker extern sepol_policydb_t *sepol_module_package_get_policy(sepol_module_package_t 58*2d543d20SAndroid Build Coastguard Worker * p); 59*2d543d20SAndroid Build Coastguard Worker 60*2d543d20SAndroid Build Coastguard Worker extern int sepol_link_packages(sepol_handle_t * handle, 61*2d543d20SAndroid Build Coastguard Worker sepol_module_package_t * base, 62*2d543d20SAndroid Build Coastguard Worker sepol_module_package_t ** modules, 63*2d543d20SAndroid Build Coastguard Worker int num_modules, int verbose); 64*2d543d20SAndroid Build Coastguard Worker 65*2d543d20SAndroid Build Coastguard Worker extern int sepol_module_package_read(sepol_module_package_t * mod, 66*2d543d20SAndroid Build Coastguard Worker struct sepol_policy_file *file, 67*2d543d20SAndroid Build Coastguard Worker int verbose); 68*2d543d20SAndroid Build Coastguard Worker 69*2d543d20SAndroid Build Coastguard Worker extern int sepol_module_package_info(struct sepol_policy_file *file, 70*2d543d20SAndroid Build Coastguard Worker int *type, char **name, char **version); 71*2d543d20SAndroid Build Coastguard Worker 72*2d543d20SAndroid Build Coastguard Worker extern int sepol_module_package_write(sepol_module_package_t * p, 73*2d543d20SAndroid Build Coastguard Worker struct sepol_policy_file *file); 74*2d543d20SAndroid Build Coastguard Worker 75*2d543d20SAndroid Build Coastguard Worker /* Module linking/expanding public interfaces. */ 76*2d543d20SAndroid Build Coastguard Worker 77*2d543d20SAndroid Build Coastguard Worker extern int sepol_link_modules(sepol_handle_t * handle, 78*2d543d20SAndroid Build Coastguard Worker sepol_policydb_t * base, 79*2d543d20SAndroid Build Coastguard Worker sepol_policydb_t ** modules, 80*2d543d20SAndroid Build Coastguard Worker size_t len, int verbose); 81*2d543d20SAndroid Build Coastguard Worker 82*2d543d20SAndroid Build Coastguard Worker extern int sepol_expand_module(sepol_handle_t * handle, 83*2d543d20SAndroid Build Coastguard Worker sepol_policydb_t * base, 84*2d543d20SAndroid Build Coastguard Worker sepol_policydb_t * out, int verbose, int check); 85*2d543d20SAndroid Build Coastguard Worker 86*2d543d20SAndroid Build Coastguard Worker #ifdef __cplusplus 87*2d543d20SAndroid Build Coastguard Worker } 88*2d543d20SAndroid Build Coastguard Worker #endif 89*2d543d20SAndroid Build Coastguard Worker 90*2d543d20SAndroid Build Coastguard Worker #endif 91