thesis/code/lkm.c
2025-03-25 16:53:36 +01:00

64 lines
1.3 KiB
C

#include <linux/fs.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/proc_fs.h>
#include <linux/uaccess.h>
#define DEVICE_NAME "lkm"
static int lkm_init(void);
static void 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 unsigned 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 unsigned 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);