Actually, you could implement a function that does not reference any
external symbols (eg, most common is printf() from libc) in user-space, then
send the address of the function to an RTLinux thread so that it can be called
from RTLinux space as well.  This is actually what we do in RTLinux for PSC
(our user-level real-time threads support).  Just note that you can't
(currently) make syscalls from kernel or RTLinux.  We are still looking at
this for PSC.  See the psc/ directory in RTLinux for more details.

On Mon, Jan 29, 2001 at 10:49:27AM -0500, Norm Dresner wrote:
> AFAIK the only way to access functions that exist in kernel space is via
> explicit calls to a "device driver" which could be read/write but are much
> more commonly done via the standard ioctl(2) mechanism.  There simply is no
> way to directly "call" such a function because the kernel is not in the
> address space of any user task.
>     Norm
> 
> ----- Original Message -----
> From: Raul <[EMAIL PROTECTED]>
> To: Real Time Linux <[EMAIL PROTECTED]>
> Sent: Monday, January 29, 2001 7:14 AM
> Subject: [rtl] shared memory for functions
> 
> 
> > Hi
> > I have some functions that get called by programs that
> > run both in user-space and rtl-space.
> > Would it be possible to declare these functions only
> > once and use shared memory so that the programs can
> > access them? If it is possible what happens with the
> > parameters sent to this funcitons? Is there any
> > example?
> > Thank you in advance,
> > Raul
-- [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/

Reply via email to