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