/* * cn_recv.c */ #include #include #include #include #include #include static struct cb_id cn_recv_id = { 0x3, 0x1 }; static char cn_recv_name[] = "cn_recv"; void cn_recv_callback(void *data) { struct cn_msg *msg = (struct cn_msg *)data; printk("%s: %lu: idx=%x, val=%x, seq=%u, ack=%u, len=%d: %s\n", __func__, jiffies, msg->id.idx, msg->id.val, msg->seq, msg->ack, msg->len, (char *)msg->data); } static int cn_recv_init(void) { int err; err = cn_add_callback(&cn_recv_id, cn_recv_name, cn_recv_callback); printk(KERN_INFO "cn_recv loaded, cn_add_callback retval: %i\n", err); return 0; } static void cn_recv_fini(void) { cn_del_callback(&cn_recv_id); printk(KERN_INFO "cn_recv unloaded\n"); } module_init(cn_recv_init); module_exit(cn_recv_fini); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Libor Vanek "); MODULE_DESCRIPTION("Connector's test recieve module");