#include #include #include #include #include #define DEVICE_NAME "lkm" static int lkm_init(void); static int lkm_exit(void); int lkm_open(struct inode *, struct file *); int lkm_release(struct inode *, struct file *); long lkm_ioctl(struct file *, unsigned int, long int); static struct file_operations lkm_fops = { .owner = THIS_MODULE, .open = lkm_open, .release = lkm_release, .unlocked_ioctl = lkm_ioctl, }; static int lkm_init(void) { int ret; printk(KERN_INFO "lkm: init: start"); ret = register_chrdev(0, DEVICE_NAME, &lkm_fops); if (ret < 0) { printk(KERN_ERR "lkm: init: register chrdev failed"); return ret; } return 0; } static void lkm_exit(void) { printk(KERN_INFO "lkm: exit: start"); } int lkm_open(struct inode *inode, struct file *fp) { printk(KERN_INFO "lkm: open: start") } int lkm_release(struct inode *inode, struct file *fp) { printk(KERN_INFO "lkm: release: start") } long lkm_ioctl(struct file *fp, unsigned num, long int param) { printk(KERN_INFO "lkm: release: start") } MODULE_AUTHOR("Mira Chacku Purakal"); MODULE_DESCRIPTION("Generic Module"); MODULE_VERSION("0.1"); MODULE_LICENSE("GPL"); module_init(lkm_init); module_exit(lkm_exit);