1*2d543d20SAndroid Build Coastguard Worker /* Author: Dan Walsh 2*2d543d20SAndroid Build Coastguard Worker Based on selinuxswig_python.i by James Athey 3*2d543d20SAndroid Build Coastguard Worker */ 4*2d543d20SAndroid Build Coastguard Worker 5*2d543d20SAndroid Build Coastguard Worker /* Never build rpm_execcon interface */ 6*2d543d20SAndroid Build Coastguard Worker #ifndef DISABLE_RPM 7*2d543d20SAndroid Build Coastguard Worker #define DISABLE_RPM 8*2d543d20SAndroid Build Coastguard Worker #endif 9*2d543d20SAndroid Build Coastguard Worker 10*2d543d20SAndroid Build Coastguard Worker %module selinux 11*2d543d20SAndroid Build Coastguard Worker %{ 12*2d543d20SAndroid Build Coastguard Worker #include "selinux/selinux.h" 13*2d543d20SAndroid Build Coastguard Worker %} 14*2d543d20SAndroid Build Coastguard Worker 15*2d543d20SAndroid Build Coastguard Worker /* return a sid along with the result */ 16*2d543d20SAndroid Build Coastguard Worker %typemap(argout) (security_id_t * sid) { 17*2d543d20SAndroid Build Coastguard Worker if (*$1) { 18*2d543d20SAndroid Build Coastguard Worker %append_output(SWIG_NewPointerObj(*$1, $descriptor(security_id_t), 0)); 19*2d543d20SAndroid Build Coastguard Worker } 20*2d543d20SAndroid Build Coastguard Worker } 21*2d543d20SAndroid Build Coastguard Worker 22*2d543d20SAndroid Build Coastguard Worker %typemap(in,numinputs=0) security_id_t *(security_id_t temp) { 23*2d543d20SAndroid Build Coastguard Worker $1 = &temp; 24*2d543d20SAndroid Build Coastguard Worker } 25*2d543d20SAndroid Build Coastguard Worker 26*2d543d20SAndroid Build Coastguard Worker %typemap(in,noblock=1,numinputs=0) char ** (char * temp = 0) { 27*2d543d20SAndroid Build Coastguard Worker $1 = &temp; 28*2d543d20SAndroid Build Coastguard Worker } 29*2d543d20SAndroid Build Coastguard Worker %typemap(freearg,match="in") char ** ""; 30*2d543d20SAndroid Build Coastguard Worker %typemap(argout,noblock=1) char ** { 31*2d543d20SAndroid Build Coastguard Worker if (*$1) { 32*2d543d20SAndroid Build Coastguard Worker %append_output(SWIG_FromCharPtr(*$1)); 33*2d543d20SAndroid Build Coastguard Worker freecon(*$1); 34*2d543d20SAndroid Build Coastguard Worker } 35*2d543d20SAndroid Build Coastguard Worker } 36*2d543d20SAndroid Build Coastguard Worker 37*2d543d20SAndroid Build Coastguard Worker %typemap(in,noblock=1,numinputs=0) char ** (char * temp = 0) { 38*2d543d20SAndroid Build Coastguard Worker $1 = &temp; 39*2d543d20SAndroid Build Coastguard Worker } 40*2d543d20SAndroid Build Coastguard Worker %typemap(freearg,match="in") char ** ""; 41*2d543d20SAndroid Build Coastguard Worker %typemap(argout,noblock=1) char ** { 42*2d543d20SAndroid Build Coastguard Worker if (*$1) { 43*2d543d20SAndroid Build Coastguard Worker %append_output(SWIG_FromCharPtr(*$1)); 44*2d543d20SAndroid Build Coastguard Worker free(*$1); 45*2d543d20SAndroid Build Coastguard Worker } 46*2d543d20SAndroid Build Coastguard Worker } 47*2d543d20SAndroid Build Coastguard Worker 48*2d543d20SAndroid Build Coastguard Worker %include "selinuxswig.i" 49