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