Help compiling & running these two kernel module that share a variable between them
From: linux.lover (linux.lover2004_at_gmail.com)
Date: 02/21/05
- Next message: bluekarthik_at_yahoo.com: "VxWorks-to-Linux migration kits available but y not the reverse ?"
- Previous message: linux.lover: "require explanation about /proc/ksyms"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 20 Feb 2005 21:20:44 -0800
Hello,
I created my proc file kernel module as
#define MODULE
#define __KERNEL__
#define EXPORT_SYMTAB
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/proc_fs.h>
#include <asm/uaccess.h>
#define STRING_LEN 8
char mysec[STRING_LEN+1];
struct proc_dir_entry *myfile_file;
EXPORT_SYMBOL(mysec);
int proc_read_myfile(char *page, char **start, off_t
off, int count, int *eof, void *data)
{
int len;
len = sprintf(page, "%s", mysec);
printk(KERN_INFO "You Requested for Writing
File\n");
return len;
}
int proc_write_myfile(struct file *file, const char
*page,unsigned long count, void *data)
{
int len=(count>STRING_LEN ? STRING_LEN : count);
if(copy_from_user(mysec, page, len)){
return -EFAULT;
}
mysec[len] = '\0';
printk(KERN_INFO "You Requested for Reading File
with val=%s\n",mysec);
return len;
}
static int __init init_myfile(void)
{
myfile_file = create_proc_entry("myfile", 0666, NULL);
if(myfile_file == NULL) {
return -ENOMEM;
}
strcpy(mysec,"mymodule");
myfile_file->data = &mysec;
myfile_file->read_proc = &proc_read_myfile;
myfile_file->write_proc = &proc_write_myfile;
myfile_file->owner = THIS_MODULE;
printk(KERN_INFO "PROC FILE IS initialized\n");
return 0;
}
static void __exit cleanup_myfile(void)
{
remove_proc_entry("myfile", NULL);
printk(KERN_INFO "MODULE PROC FILE removed\n");
}
module_init(init_myfile);
module_exit(cleanup_myfile);
MODULE_LICENSE("GPL");
And my readfile.c which is another kernel module as
#define MODULE
#define __KERNEL__
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
extern char mysec[];
void readfile(void)
{
printk(KERN_INFO "FILE CONTAINS string=%s\n",mysec);
}
static int __init init_myrfile(void)
{
printk(KERN_INFO "MODULE PROC READ FILE
initialized\n");
readfile();
return 0;
}
static void __exit cleanup_myrfile(void)
{
printk(KERN_INFO "MODULE PROC READ FILE removed\n");
}
module_init(init_myrfile);
module_exit(cleanup_myrfile);
MODULE_LICENSE("GPL");
But i am getting error for readfile while i give insmod readfile.o.
I require your help to have mysec variable be shared between 2 kernel modules?
Whats wrong in above programs?
regrds,
linux_lover.
- Next message: bluekarthik_at_yahoo.com: "VxWorks-to-Linux migration kits available but y not the reverse ?"
- Previous message: linux.lover: "require explanation about /proc/ksyms"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|