/* 网络模块初始化 */ void sock_init(void) { struct socket *sock; int i; /* Set up our SOCKET VFS major device. */ /* 注册网络设备读写函数,在Linux系统当中所有的设备操作都被 * 当成对文件系统的操作 */ if (register_chrdev(SOCKET_MAJOR, "socket", &net_fops) < 0) { printk("NET: cannot register major device %d!\n", SOCKET_MAJOR); return; } /* Release all sockets. */ for (sock = sockets; sock <= last_socket; ++sock) sock->state = SS_FREE; /* Initialize all address (protocol) families. */ for (i = 0; i < NPROTO; ++i) pops[i] = NULL; /* Initialize the DDI module. */ /* 设备驱动接口模块 */ ddi_init(); /* Initialize the ARP module. */ #if 0 arp_init(); #endif }
void init_so_ddi_test(void) { adbi_init(); ddi_init(); counter = 1; hook(&eph, getpid(), "libc.", "epoll_wait", my_epoll_wait_arm, my_epoll_wait); }
void init_so_send_raw_pdu(void) { adbi_init(); ddi_init(); hook_counter = 1; hook(&eph, getpid(), "libc.", "epoll_wait", my_epoll_wait_arm, my_epoll_wait); }