Yes really it is nice information. But in my case though i am calling system call query_module i am getting same problem. I hope we can use system calls in realtime programs. I am getting same error wherever the query_module systems call is ( i.e in init_module as well as real time thread).
Can u please clarify my doubt.. Advanced Thanks Venkat --- "Calin A. Culianu" <[EMAIL PROTECTED]> wrote: > > Time and again, someone on this mailing list asks a > question like this. > I call it the fundamental kernel attribution error. > :) > > Ok.. here's a brief explanation as to why you are > having this trouble: > > The kernel != user space. period. For a more > complete explanation on why > this is, please start with the OS book by > Tannenbaum, and work your way up > from there. fopen() is a user space library > function that ultimately > talks to the kernel via more 'primitive' system > calls such as read() and > write(). > > When you are writing a module, you ARE the kernel. > As such, you cannot > ever ever ever EVER use any libraries. You can't > even use system calls! > (At least not easily and/or really elegantly). No > libraries... at least > not user libraries. The kernel has it's own UNIQUE > and DISTINCT set of > 'library' functions that are sort of compiled into > it. Things for > managing memory, working with strings, abusing its > own data structures, > dealing with user space, fennagling interrupts, > etc... Some of these > library routines have the same name as the > conventional c library > routines.. (strncpy() is one example that comes to > mind, there are > others). However, that's where the similarities end. > The kernel is it's > own programming environment. Apart from the fact > that you are using C, > forget everything you ever knew about using C and > the C library when you > are solving programmatic problems in the kernel > (ok.. that's a bit > strong.. a lot of the kernel library resembles the > user-space library > stuff so yeah, it helps to have the background just > so you can quickly > learn the way the kernel does things). But the main > reason for the above > rant is this: Open yourself up to learning the > kernel's library. > > Since the above paragraph is true, whenever you > create modules, you need > to use KERNEL header files. You used user header > files which explains > how you were able to create the unlinked .o kernel > modules, but upon > linking it into the kernel (loading the module has > the all-too-important > side-effect of linking to the kernel, too) you got > that undefined symbol > error. > > The kernel header files are found most likely either > in your > /usr/src/linux/include directory or maybe in > /usr/include/linux (but the > latter isn't as reliable for many reasons). Also, to > use these header > files effectively, you need to define some > preprocessor symbols like > __KERNEL__ and MODULE. > > > > On Tue, 30 Oct 2001, [iso-8859-1] Peter Gr�ssinger > wrote: > > > hello, > > > > i am running rtlinux 2.3 on a PC104. i was trying > to use the > > function fopen() within the init_module of my > kernel module. when > > inserting the module i unfortunately get the error > "unresolved symbol > > fopen". > > > > would sombody know how to upgrade the c lib in > order so be able to load > > my module ? > > > > thank you very much in advance ! > > > > > > kindest regards, > > peter > > > > > _____________________________________________________ > > > > Peter Groessinger > > Software Development > > TTTech Computertechnik AG > > Schoenbrunner Strasse 7, A-1040 Vienna, Austria > > http://www.tttech.com > > > > Phone: +43(1)585 34 34-42, Fax: +43(1)585 34 34-90 > > mailto: [EMAIL PROTECTED] > > > _____________________________________________________ > > > > > > -- [rtl] --- > > To unsubscribe: > > echo "unsubscribe rtl" | mail > [EMAIL PROTECTED] OR > > echo "unsubscribe rtl <Your_email>" | mail > [EMAIL PROTECTED] > > -- > > For more information on Real-Time Linux see: > > http://www.rtlinux.org/ > > > > -- [rtl] --- > To unsubscribe: > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] > OR > echo "unsubscribe rtl <Your_email>" | mail > [EMAIL PROTECTED] > -- > For more information on Real-Time Linux see: > http://www.rtlinux.org/ > __________________________________________________ Do You Yahoo!? Make a great connection at Yahoo! Personals. http://personals.yahoo.com -- [rtl] --- To unsubscribe: echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED] -- For more information on Real-Time Linux see: http://www.rtlinux.org/
