xref: /aosp_15_r20/external/selinux/libselinux/src/selinuxswig.i (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker /* Authors: Dan Walsh
2*2d543d20SAndroid Build Coastguard Worker  *          James Athey
3*2d543d20SAndroid Build Coastguard Worker  */
4*2d543d20SAndroid Build Coastguard Worker 
5*2d543d20SAndroid Build Coastguard Worker %module selinux
6*2d543d20SAndroid Build Coastguard Worker %{
7*2d543d20SAndroid Build Coastguard Worker 	#include "../include/selinux/avc.h"
8*2d543d20SAndroid Build Coastguard Worker 	#include "../include/selinux/context.h"
9*2d543d20SAndroid Build Coastguard Worker 	#include "../include/selinux/get_context_list.h"
10*2d543d20SAndroid Build Coastguard Worker 	#include "../include/selinux/get_default_type.h"
11*2d543d20SAndroid Build Coastguard Worker 	#include "../include/selinux/label.h"
12*2d543d20SAndroid Build Coastguard Worker 	#include "../include/selinux/restorecon.h"
13*2d543d20SAndroid Build Coastguard Worker 	#include "../include/selinux/selinux.h"
14*2d543d20SAndroid Build Coastguard Worker %}
15*2d543d20SAndroid Build Coastguard Worker %apply int *OUTPUT { int *enforce };
16*2d543d20SAndroid Build Coastguard Worker %apply int *OUTPUT { size_t * };
17*2d543d20SAndroid Build Coastguard Worker 
18*2d543d20SAndroid Build Coastguard Worker %typedef unsigned mode_t;
19*2d543d20SAndroid Build Coastguard Worker %typedef unsigned pid_t;
20*2d543d20SAndroid Build Coastguard Worker 
21*2d543d20SAndroid Build Coastguard Worker %typemap(in, numinputs=0) (char ***names, int *len) (char **temp1=NULL, int temp2) {
22*2d543d20SAndroid Build Coastguard Worker 	$1 = &temp1;
23*2d543d20SAndroid Build Coastguard Worker 	$2 = &temp2;
24*2d543d20SAndroid Build Coastguard Worker }
25*2d543d20SAndroid Build Coastguard Worker 
26*2d543d20SAndroid Build Coastguard Worker %typemap(freearg) (char ***names, int *len) {
27*2d543d20SAndroid Build Coastguard Worker 	int i;
28*2d543d20SAndroid Build Coastguard Worker 	if (*$1) {
29*2d543d20SAndroid Build Coastguard Worker 		for (i = 0; i < *$2; i++) {
30*2d543d20SAndroid Build Coastguard Worker 			free((*$1)[i]);
31*2d543d20SAndroid Build Coastguard Worker 		}
32*2d543d20SAndroid Build Coastguard Worker 		free(*$1);
33*2d543d20SAndroid Build Coastguard Worker 	}
34*2d543d20SAndroid Build Coastguard Worker }
35*2d543d20SAndroid Build Coastguard Worker 
36*2d543d20SAndroid Build Coastguard Worker %typemap(in, numinputs=0) (char ***) (char **temp=NULL) {
37*2d543d20SAndroid Build Coastguard Worker 	$1 = &temp;
38*2d543d20SAndroid Build Coastguard Worker }
39*2d543d20SAndroid Build Coastguard Worker 
40*2d543d20SAndroid Build Coastguard Worker %typemap(freearg) (char ***) {
41*2d543d20SAndroid Build Coastguard Worker 	if (*$1) freeconary(*$1);
42*2d543d20SAndroid Build Coastguard Worker }
43*2d543d20SAndroid Build Coastguard Worker 
44*2d543d20SAndroid Build Coastguard Worker /* Ignore functions that don't make sense when wrapped */
45*2d543d20SAndroid Build Coastguard Worker %ignore freecon;
46*2d543d20SAndroid Build Coastguard Worker %ignore freeconary;
47*2d543d20SAndroid Build Coastguard Worker 
48*2d543d20SAndroid Build Coastguard Worker /* Ignore functions that take a function pointer as an argument */
49*2d543d20SAndroid Build Coastguard Worker %ignore set_matchpathcon_printf;
50*2d543d20SAndroid Build Coastguard Worker %ignore set_matchpathcon_invalidcon;
51*2d543d20SAndroid Build Coastguard Worker %ignore set_matchpathcon_canoncon;
52*2d543d20SAndroid Build Coastguard Worker 
53*2d543d20SAndroid Build Coastguard Worker %ignore avc_add_callback;
54*2d543d20SAndroid Build Coastguard Worker 
55*2d543d20SAndroid Build Coastguard Worker /* Ignore netlink stuff for now */
56*2d543d20SAndroid Build Coastguard Worker %ignore avc_netlink_acquire_fd;
57*2d543d20SAndroid Build Coastguard Worker %ignore avc_netlink_release_fd;
58*2d543d20SAndroid Build Coastguard Worker %ignore avc_netlink_check_nb;
59*2d543d20SAndroid Build Coastguard Worker 
60*2d543d20SAndroid Build Coastguard Worker %include "../include/selinux/avc.h"
61*2d543d20SAndroid Build Coastguard Worker %include "../include/selinux/context.h"
62*2d543d20SAndroid Build Coastguard Worker %include "../include/selinux/get_context_list.h"
63*2d543d20SAndroid Build Coastguard Worker %include "../include/selinux/get_default_type.h"
64*2d543d20SAndroid Build Coastguard Worker %include "../include/selinux/label.h"
65*2d543d20SAndroid Build Coastguard Worker %include "../include/selinux/restorecon.h"
66*2d543d20SAndroid Build Coastguard Worker %include "../include/selinux/selinux.h"
67