Question
Please help rectify the error in my code: studentid.c #include #include #include #include #include #define BUFFER_SIZE 128 #define PROC_NAME idNumber static ssize_t proc_read(struct file *file,
Please help rectify the error in my code:
studentid.c
#include
#define BUFFER_SIZE 128 #define PROC_NAME "idNumber"
static ssize_t proc_read(struct file *file, char __user *usr_buf, size_t count, loff_t *pos);
static struct file_operations proc_ops = { .owner = THIS_MODULE, .read = proc_read, };
/* This function is called when the module is loaded. */ int proc_init(void) { /* creates the /proc/idNumber entry */ proc_create(PROC_NAME, 0666, NULL, &proc_ops);
return 0; }
/* This function is called when the module is removed. */ void proc_exit(void) { /* removes the /proc/idNumber entry */ remove_proc_entry(PROC_NAME, NULL); }
/* This function is called each time /proc/idNumber is read */ ssize_t proc_read(struct file *file, char __user *usr_buf, size_t count, loff_t *pos) { int rv = 0; char buffer[BUFFER_SIZE]; static int completed = 0;
if (completed) { completed = 0; return 0; } completed = 1; rv = sprintf(buffer, "Hello 50008477 ");
/* copies kernel space buffer to user space usr buf */ copy_to_user(usr_buf, buffer, rv);
return rv; }
module_init(proc_init); module_exit(proc_exit);
MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Hello 50008477"); MODULE_AUTHOR("SGG");
Makefile
obj-m += studentid.o
all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started