mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-23 02:05:57 +01:00
Improve fops a bit more
This commit is contained in:
@@ -30,13 +30,18 @@ int fop_open(struct inode *inode, struct file *file)
|
|||||||
ssize_t fop_read(struct file *file, char __user *buf, size_t len, loff_t *off)
|
ssize_t fop_read(struct file *file, char __user *buf, size_t len, loff_t *off)
|
||||||
{
|
{
|
||||||
printk(KERN_INFO "read\n");
|
printk(KERN_INFO "read\n");
|
||||||
|
printk(KERN_INFO "len = %zu\n", len);
|
||||||
|
/* TODO. */
|
||||||
|
/*copy_to_user(arg, &msg, size);*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t fop_write(struct file *file, const char __user *buf, size_t len, loff_t *off)
|
ssize_t fop_write(struct file *file, const char __user *buf, size_t len, loff_t *off)
|
||||||
{
|
{
|
||||||
printk(KERN_INFO "write\n");
|
printk(KERN_INFO "write\n");
|
||||||
return 0;
|
printk(KERN_INFO "buf = %.*s\n", (int)len, buf);
|
||||||
|
printk(KERN_INFO "len = %zu\n", len);
|
||||||
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -4,9 +4,16 @@ insmod /fops.ko
|
|||||||
mkdir -p /fops
|
mkdir -p /fops
|
||||||
mount -t debugfs none /fops
|
mount -t debugfs none /fops
|
||||||
cd /fops/kernel_module_cheat
|
cd /fops/kernel_module_cheat
|
||||||
|
|
||||||
cat fops
|
cat fops
|
||||||
# => open
|
# => open
|
||||||
# => read
|
# => read
|
||||||
|
# => len = [0-9]+
|
||||||
|
# => close
|
||||||
|
|
||||||
|
printf a >fops
|
||||||
|
# => open
|
||||||
|
# => write
|
||||||
|
# => len = a
|
||||||
|
# => len = 1
|
||||||
# => close
|
# => close
|
||||||
# TODO.
|
|
||||||
#echo a >fops
|
|
||||||
|
|||||||
Reference in New Issue
Block a user