3、 (SOCKET_OPS_BASE + 1)#define KMSG "a message from kernel"#define KMSG_LEN sizeof("a message from kernel")MODULE_LICENSE("GPL");static int recv_msg(struct sock *sk, int cmd, void __user *user, unsigned int len){ int ret = 0; printk(KERN_INFO "sockopt: recv
4、_msg()"); if (cmd == SOCKET_OPS_SET) { char umsg[64]; int len = sizeof(char)*64; memset(umsg, 0, len); ret = copy_from_user(umsg, user, len); printk("recv_msg: umsg = %s. ret = %d", umsg, ret); } return 0;} static int
5、send_msg(struct sock *sk, int cmd, void __user *user, int *len){ int ret = 0; printk(KERN_INFO "sockopt: send_msg()"); if (cmd == SOCKET_OPS_GET) { ret = copy_to_user(user, KMSG, KMSG_LEN); printk("send_msg: umsg = %s. ret = %d. success", KMSG, ret);