Re: Creating a file in kernel Module -- working fine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



HI LIN LOVER
I THINK YOUR KERNEL IS NOT EXPORTING THOSE SYMBOLS . HOW DID YOU COMPILE THE FILE.
SHYAM


shyamjithe.c.s
Networking & Communications Group
Tata Elxsi Ltd.
(Ph)   +91-471-2527214
(Fax) +91-471-2527215
____________________________________

----- Original Message ----- From: "linux lover" <linux_lover2004@xxxxxxxxx>
To: "Srinivas G." <srinivasg@xxxxxxxxxxxxxxxxxxxxx>; <shyamjithe@xxxxxxxxxxxxxxx>; <bulb@xxxxxx>; <amith@xxxxxxxxxxxxxxx>; <karthik301176@xxxxxxxxx>; <gauravd_linux@xxxxxxxxx>; <godepankaj@xxxxxxxxxxxxxx>; <J.A.K.Mouw@xxxxxxxxxxxxxxxxx>
Cc: <kernelnewbies@xxxxxxxxxxxx>
Sent: Tuesday, February 22, 2005 10:44 AM
Subject: Re: Creating a file in kernel Module -- working fine



Hello Srinivas,
          I am using RedHat 9 with its kernel
2.4.20-8 . When i make your program it compiled
successfully but i am getting following errors while i
insmod
insmod cf.o
cf.o: unresolved symbol sys_open
cf.o: unresolved symbol sys_write

regards,
linux_lover.

--- "Srinivas G." <srinivasg@xxxxxxxxxxxxxxxxxxxxx>
wrote:

Dear All,

I have gone through your mails. Based on those mail
messages I have
created a test module in the kernel to create a
file. It was compiled
fine with out any error messages and working fine.

I am using Red Hat 7.3 with 2.4.18-3 kernel version.
Please fine the
code below.

cre_fil.c

------------------------------------------------------------------
#include <linux/kernel.h>
#include <linux/module.h>
#include <asm/fcntl.h> /* for O_WRONLY */
#include <linux/syscall.h> /* for sys_ functions */
#include <asm/uaccess.h> /* for set_fs(), get_fs()
etc. */
#include <linux/string.h> /* for string length */
#include <linux/slab.h> /* for kmalloc */

MODULE_LICENSE("GPL");

typedef struct tagWRITE_TEST
{
unsigned long fd;
unsigned long x;

}WRITE_TEST, *PWRITE_TEST;

PWRITE_TEST ptest;

void SysPrint(char * pString, ...)
{
static char buff[1024];
va_list ap;

va_start(ap,pString);
vsprintf((char *)buff, pString, ap);
va_end(ap);

sys_write(ptest->fd,(char *)buff,strlen(buff));
}

int init_module(void)
{

printk("<%s> invoked!\n",__FUNCTION__);
printk("File Creation Testing in Kernel
Module!\n");

set_fs(get_ds());

/* allocate the memory for structre */
ptest =
(PWRITE_TEST)kmalloc(sizeof(WRITE_TEST),GFP_KERNEL);
if(ptest == NULL)
{
printk("Structure Memory Allocation Fails!\n");
return -ENOMEM;
}

ptest->fd = sys_open("srcdebug.txt", O_CREAT |
O_WRONLY, 644);
if (ptest->fd == 0)
{
printk("File Creation Error!!!\n");
return 1;
}

SysPrint("File Creation Testing in Kernel
Module!\n");
SysPrint("Srinivas Testing the File Creation\n");

/* close the file here */
sys_close(ptest->fd);

return 0;
}

void cleanup_module(void)
{
printk("Good bye!\n");

/* free the allocated memory */
kfree(ptest);

}

Makefile
------------------------------------------------
INCDIR=/usr/src/linux-2.4/include

CFLAGS=-DMODULE -D__KERNEL__ -I$(INCDIR) -O2 -Wall

OBJS=cre_fil.o
TARGET=cf.o

$(TARGET): $(OBJS)
$(LD) -r -o $(TARGET) $(OBJS)

clean:
$(RM) -f $(TARGET) $(OBJS)


------------------------------------------------------------------------
--

I need some information. Where can I get the
information for sys_create,
sys_write, sys_read, set_fs, get_fs, get_ds etc
calls?

Please provide any links which are related to that
calls or any books.

Thanks and regards,
Srinivas G





__________________________________
Do you Yahoo!?
All your favorites on one personal page - Try My Yahoo!
http://my.yahoo.com


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux