1*f3ac6781SToomas Soome #include "ipf.h" 2*f3ac6781SToomas Soome 3*f3ac6781SToomas Soome #include <fcntl.h> 4*f3ac6781SToomas Soome #include <sys/ioctl.h> 5*f3ac6781SToomas Soome kvatoname(func,iocfunc)6*f3ac6781SToomas Soomechar *kvatoname(func, iocfunc) 7*f3ac6781SToomas Soome ipfunc_t func; 8*f3ac6781SToomas Soome ioctlfunc_t iocfunc; 9*f3ac6781SToomas Soome { 10*f3ac6781SToomas Soome static char funcname[40]; 11*f3ac6781SToomas Soome ipfunc_resolve_t res; 12*f3ac6781SToomas Soome int fd; 13*f3ac6781SToomas Soome 14*f3ac6781SToomas Soome res.ipfu_addr = func; 15*f3ac6781SToomas Soome res.ipfu_name[0] = '\0'; 16*f3ac6781SToomas Soome fd = -1; 17*f3ac6781SToomas Soome 18*f3ac6781SToomas Soome if ((opts & OPT_DONOTHING) == 0) { 19*f3ac6781SToomas Soome fd = open(IPL_NAME, O_RDONLY); 20*f3ac6781SToomas Soome if (fd == -1) 21*f3ac6781SToomas Soome return NULL; 22*f3ac6781SToomas Soome } 23*f3ac6781SToomas Soome (void) (*iocfunc)(fd, SIOCFUNCL, &res); 24*f3ac6781SToomas Soome if (fd >= 0) 25*f3ac6781SToomas Soome close(fd); 26*f3ac6781SToomas Soome strncpy(funcname, res.ipfu_name, sizeof(funcname)); 27*f3ac6781SToomas Soome funcname[sizeof(funcname) - 1] = '\0'; 28*f3ac6781SToomas Soome return funcname; 29*f3ac6781SToomas Soome } 30