1 #include <asm/uaccess.h>
4 #include "p2pkp_file.h"
5 #include "p2pkp_debug.h"
7 struct file* p2pkp_open_file_read(const char *filename)
10 file = filp_open(filename, O_RDONLY, 0);
11 return IS_ERR_OR_NULL(file) ? NULL : file;
14 void p2pkp_close_file(struct file *file)
16 filp_close(file,NULL);
19 int p2pkp_read_from_file(struct file *file, char *buffer, int len)
22 int read_bytes, offset;
25 // To see in /var/log/messages that the module is operating
27 ERROR("filp_open error!!");
30 DEBUG("Changinig segment descriptor");
31 // Get current segment descriptor
33 // Set segment descriptor associated to kernel space
35 DEBUG("Changed segment descriptor - buffer is %p", buffer);
39 read_bytes = file->f_op->read(file, buffer + offset, len, &file->f_pos);
44 } while (/*(read_bytes < 0 && errno == EINVAL)||*/(read_bytes > 0 && len > 0));
49 ERROR("error while reading from file!");