Linux has a system call that causes execution of a kernel callback function provided by a network device driver, ioctl( sock_fd, cmd, ifr ) where sock_fd is a socket file descriptor, cmd is passed as a parameter to the driver's callback, ifr is a pointer to struct ifrequest (you gotta fill in the name of interface, eg "eth0" ). You may pass a 32bit value with this call - this may be a pointer in the caller process' address space. Mail me for a sample code. |