From 8616f6009b217ac5e13f87ed1bd94acc4323c08f Mon Sep 17 00:00:00 2001 From: Ciro Santilli Date: Fri, 12 May 2017 18:09:32 +0100 Subject: [PATCH] Improve fops a bit more --- kernel_module/fops.c | 7 ++++++- rootfs_overlay/fops.sh | 11 +++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/kernel_module/fops.c b/kernel_module/fops.c index 95cd2e1..1f7588a 100644 --- a/kernel_module/fops.c +++ b/kernel_module/fops.c @@ -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) { printk(KERN_INFO "read\n"); + printk(KERN_INFO "len = %zu\n", len); + /* TODO. */ + /*copy_to_user(arg, &msg, size);*/ return 0; } ssize_t fop_write(struct file *file, const char __user *buf, size_t len, loff_t *off) { 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; } /* diff --git a/rootfs_overlay/fops.sh b/rootfs_overlay/fops.sh index 7a7836d..e394d0e 100755 --- a/rootfs_overlay/fops.sh +++ b/rootfs_overlay/fops.sh @@ -4,9 +4,16 @@ insmod /fops.ko mkdir -p /fops mount -t debugfs none /fops cd /fops/kernel_module_cheat + cat fops # => open # => read +# => len = [0-9]+ +# => close + +printf a >fops +# => open +# => write +# => len = a +# => len = 1 # => close -# TODO. -#echo a >fops