.read
function should also correctly process its len
and off
arguments. The simplest way to implement reading from memory-buffered file is to use simple_read_from_buffer
helper:
static ssize_t dev_read(struct file *filp, char *buff, size_t len, loff_t *off)
{
return simple_read_from_buffer(buff, len, off, msg, 100);
}
You can inspect code of that helper (defined in fs/libfs.c
) for educational purposes.
BTW, for your .write
method you could use simple_write_to_buffer
helper.