I write a device drive for linux and export some of its functions to
kernel's symbol table. May I call these functions from my C application
in user space? how to do?
Sorry, no can do.Quote:> how to do?
Programmer in Chief, Free Computer Shop <http://www.free-comp-shop.com>
--- Food, Shelter, Source code. ---
Perhaps you can access your desired functionality via the ioctl() call?
The ioctl interface allows you to specify 'internal' command codes that
may be sent to your driver and interpreted as you like. Note there are
times/functions for which this is appropriate, and other for which it is
| Mark McDougall |
| Engineer |
| Virtual Logic Pty Ltd |
| http://www.vl.com.au |
Hope this helps.
Casilla 9G, Vi?a del Mar, Chile +56 32 672616
I am having a problem writing a "meta-driver", ie one that is sandwiched
between the kernel and a real device driver. The platform I am using
consists of a Sun IPC, running SunOS 4.1.1.
My problem is that in attempting to use the OPEN(2V) system call from within
the "xxopen" routine of my metadriver (to open another device-driver (which
then opens the device)); OPEN(2V) "fails".
It appears that calling OPEN(2V) from within the kernel requires a different
calling sequence and argument list. Viz-a-viz: instead of a file descriptor
being returned by OPEN(2V), it seems a pointer is returned (which itself is
a pointer to something else).
Is this true? Is the OPEN(2V) syscall different for a process executing in
user address space, compared to the OPEN call executed by a process running
in kernel mode/address space?
If this is true for OPEN, what about CLOSE, READ, WRITE, etc? Unfortunately,
I don't have (easy) access to any Unix (source) code, to verify this.
Thanks in advance for help/advice.