xref: /aosp_15_r20/external/selinux/libsemanage/src/fcontexts_policy.c (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker /* Copyright (C) 2005 Red Hat, Inc. */
2*2d543d20SAndroid Build Coastguard Worker 
3*2d543d20SAndroid Build Coastguard Worker struct semanage_fcontext;
4*2d543d20SAndroid Build Coastguard Worker struct semanage_fcontext_key;
5*2d543d20SAndroid Build Coastguard Worker typedef struct semanage_fcontext_key record_key_t;
6*2d543d20SAndroid Build Coastguard Worker typedef struct semanage_fcontext record_t;
7*2d543d20SAndroid Build Coastguard Worker #define DBASE_RECORD_DEFINED
8*2d543d20SAndroid Build Coastguard Worker 
9*2d543d20SAndroid Build Coastguard Worker #include "fcontext_internal.h"
10*2d543d20SAndroid Build Coastguard Worker #include "handle.h"
11*2d543d20SAndroid Build Coastguard Worker #include "database.h"
12*2d543d20SAndroid Build Coastguard Worker 
semanage_fcontext_query(semanage_handle_t * handle,const semanage_fcontext_key_t * key,semanage_fcontext_t ** response)13*2d543d20SAndroid Build Coastguard Worker int semanage_fcontext_query(semanage_handle_t * handle,
14*2d543d20SAndroid Build Coastguard Worker 			    const semanage_fcontext_key_t * key,
15*2d543d20SAndroid Build Coastguard Worker 			    semanage_fcontext_t ** response)
16*2d543d20SAndroid Build Coastguard Worker {
17*2d543d20SAndroid Build Coastguard Worker 
18*2d543d20SAndroid Build Coastguard Worker 	dbase_config_t *dconfig = semanage_fcontext_dbase_policy(handle);
19*2d543d20SAndroid Build Coastguard Worker 	return dbase_query(handle, dconfig, key, response);
20*2d543d20SAndroid Build Coastguard Worker }
21*2d543d20SAndroid Build Coastguard Worker 
semanage_fcontext_exists(semanage_handle_t * handle,const semanage_fcontext_key_t * key,int * response)22*2d543d20SAndroid Build Coastguard Worker int semanage_fcontext_exists(semanage_handle_t * handle,
23*2d543d20SAndroid Build Coastguard Worker 			     const semanage_fcontext_key_t * key, int *response)
24*2d543d20SAndroid Build Coastguard Worker {
25*2d543d20SAndroid Build Coastguard Worker 
26*2d543d20SAndroid Build Coastguard Worker 	dbase_config_t *dconfig = semanage_fcontext_dbase_policy(handle);
27*2d543d20SAndroid Build Coastguard Worker 	return dbase_exists(handle, dconfig, key, response);
28*2d543d20SAndroid Build Coastguard Worker }
29*2d543d20SAndroid Build Coastguard Worker 
semanage_fcontext_count(semanage_handle_t * handle,unsigned int * response)30*2d543d20SAndroid Build Coastguard Worker int semanage_fcontext_count(semanage_handle_t * handle, unsigned int *response)
31*2d543d20SAndroid Build Coastguard Worker {
32*2d543d20SAndroid Build Coastguard Worker 
33*2d543d20SAndroid Build Coastguard Worker 	dbase_config_t *dconfig = semanage_fcontext_dbase_policy(handle);
34*2d543d20SAndroid Build Coastguard Worker 	return dbase_count(handle, dconfig, response);
35*2d543d20SAndroid Build Coastguard Worker }
36*2d543d20SAndroid Build Coastguard Worker 
semanage_fcontext_iterate(semanage_handle_t * handle,int (* handler)(const semanage_fcontext_t * record,void * varg),void * handler_arg)37*2d543d20SAndroid Build Coastguard Worker int semanage_fcontext_iterate(semanage_handle_t * handle,
38*2d543d20SAndroid Build Coastguard Worker 			      int (*handler) (const semanage_fcontext_t *
39*2d543d20SAndroid Build Coastguard Worker 					      record, void *varg),
40*2d543d20SAndroid Build Coastguard Worker 			      void *handler_arg)
41*2d543d20SAndroid Build Coastguard Worker {
42*2d543d20SAndroid Build Coastguard Worker 
43*2d543d20SAndroid Build Coastguard Worker 	dbase_config_t *dconfig = semanage_fcontext_dbase_policy(handle);
44*2d543d20SAndroid Build Coastguard Worker 	return dbase_iterate(handle, dconfig, handler, handler_arg);
45*2d543d20SAndroid Build Coastguard Worker }
46*2d543d20SAndroid Build Coastguard Worker 
semanage_fcontext_list(semanage_handle_t * handle,semanage_fcontext_t *** records,unsigned int * count)47*2d543d20SAndroid Build Coastguard Worker int semanage_fcontext_list(semanage_handle_t * handle,
48*2d543d20SAndroid Build Coastguard Worker 			   semanage_fcontext_t *** records, unsigned int *count)
49*2d543d20SAndroid Build Coastguard Worker {
50*2d543d20SAndroid Build Coastguard Worker 
51*2d543d20SAndroid Build Coastguard Worker 	dbase_config_t *dconfig = semanage_fcontext_dbase_policy(handle);
52*2d543d20SAndroid Build Coastguard Worker 	return dbase_list(handle, dconfig, records, count);
53*2d543d20SAndroid Build Coastguard Worker }
54*2d543d20SAndroid Build Coastguard Worker 
semanage_fcontext_list_homedirs(semanage_handle_t * handle,semanage_fcontext_t *** records,unsigned int * count)55*2d543d20SAndroid Build Coastguard Worker int semanage_fcontext_list_homedirs(semanage_handle_t * handle,
56*2d543d20SAndroid Build Coastguard Worker 			   semanage_fcontext_t *** records, unsigned int *count)
57*2d543d20SAndroid Build Coastguard Worker {
58*2d543d20SAndroid Build Coastguard Worker 
59*2d543d20SAndroid Build Coastguard Worker 	dbase_config_t *dconfig = semanage_fcontext_dbase_homedirs(handle);
60*2d543d20SAndroid Build Coastguard Worker 	return dbase_list(handle, dconfig, records, count);
61*2d543d20SAndroid Build Coastguard Worker }
62