xref: /aosp_15_r20/external/selinux/libsepol/include/sepol/module.h (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
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