My rtmodule consists of the following:
One rtf_handler which listens on /dev/rtf1 for commands from Linux and
creates objects depending on the command-number. The objects are then put
in a global array.
Another rtf_handler which listens on /dev/rtf2 for commands from Linux and
sends these through /dev/rtf3 to the thread (like in the
examples/frank-module to start it).
Finally the thread which takes the objects from the global array and calls
the member-functions.
This seems to work.
Until now, one memberfunction gives output via printk, but now I wanted
to pipe the values back to Linux through /dev/rtf4.
So I included <rtl_fifo.h> in the objects' cpp-file, replaced the printk
with an rtf_put an created the fifo in my init_module. Compiling works,
but when I insert the module, I get:
rtmod.o: unresolved symbol rtf_put__FUiPvi
If I instead put the rtf_put command in the thread_code (which is C), it
works.
Why can't I rtf_put from a memberfunction?
I basically understand the unresolved symbol error message: For every
function I use, there has to be a definition somewhere (like in rtl.o,
rtl_fifo.o). I also know that I can view the symbols with ksyms -m (even
if I don't know what I can do with that :-) )and then I see that rtl_fifo
exports (I think thats how it is called) rtf_put. What does this __FUiPvi
after rtf_put tell me? Did I get the basics right?
Dirk Pohl
University of Kaiserslautern
-- [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/rtlinux/