All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] Questions porting existing rtai-24.1.12 app to xenomai
@ 2006-03-31 19:39 Randy Smith
  2006-03-31 20:15 ` Philippe Gerum
  0 siblings, 1 reply; 2+ messages in thread
From: Randy Smith @ 2006-03-31 19:39 UTC (permalink / raw)
  To: xenomai

Hello list,

I'm confused and I hope someone can illuminate a path to enlightenment.  
Please be gentle. :-)

I have inherited some linux 2.4.25 kernel module code for a powerpc that 
uses rtai-24.1.12.  In my xenomai enabled kernel, I have disabled native 
support and enabled the RTAI emulator.  This works as far as I know.  I 
can insmod it at least but to test it, I need some user mode code and 
that is where I am running into problems.

The kernel module runs as a periodic task and uses kernel mode shared 
memory to communicate with the user mode application.  The user mode 
application uses rtai_malloc to allocate the shared memory that the 
kernel module created with rtai_kmalloc.  My application fails to link 
since librtai.so cannot resolve the call to rtai_malloc.  What should I 
migrate the rtai_malloc call to in order to use the rtai skin with xenomai??

Can I not communicate kernel to user via shared memory in that skin?

I get the feeling that this is an old api that xenomai doesn't support, 
is this the case?

Any help would be appreciated.

Thanks,

-Randy Smith
Software Engineer
ImageMap, Inc.


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Xenomai-help] Questions porting existing rtai-24.1.12 app to xenomai
  2006-03-31 19:39 [Xenomai-help] Questions porting existing rtai-24.1.12 app to xenomai Randy Smith
@ 2006-03-31 20:15 ` Philippe Gerum
  0 siblings, 0 replies; 2+ messages in thread
From: Philippe Gerum @ 2006-03-31 20:15 UTC (permalink / raw)
  To: Randy Smith; +Cc: xenomai

Randy Smith wrote:
> Hello list,
> 
> I'm confused and I hope someone can illuminate a path to enlightenment.  
> Please be gentle. :-)
> 
> I have inherited some linux 2.4.25 kernel module code for a powerpc that 
> uses rtai-24.1.12.  In my xenomai enabled kernel, I have disabled native 
> support and enabled the RTAI emulator.  This works as far as I know.  I 
> can insmod it at least but to test it, I need some user mode code and 
> that is where I am running into problems.
> 
> The kernel module runs as a periodic task and uses kernel mode shared 
> memory to communicate with the user mode application.  The user mode 
> application uses rtai_malloc to allocate the shared memory that the 
> kernel module created with rtai_kmalloc.  My application fails to link 
> since librtai.so cannot resolve the call to rtai_malloc.  What should I 
> migrate the rtai_malloc call to in order to use the rtai skin with 
> xenomai??

The thing is that the RTAI emulator provided currently covers a minimal 
set of kernel-space only RTAI services, and does not provide any 
user-space interface to these calls. The librtai.so library that would 
contain the user-space interface mimicking LXRT is actually empty, and 
basically a placeholder, waiting for someone to be motivated enough to 
extend the existing support and flesh it. (hint, hint...).

> 
> Can I not communicate kernel to user via shared memory in that skin?
> 

No, but you could use a combo with the POSIX skin which provides a 
complete shm support to create the shared segment, and make your 
kernel-based RTAI tasks tap into this memory. The user-space side would 
just need to bind to this segment using the regular Xenomai support the 
POSIX skin provides to user-space. This still would not bring you the 
LXRT support, but it would allow you to access the shared memory block 
from user-space.

I.e.

- A kernel module using the POSIX skin creates a shared memory segment 
in kernel space, and exports it as a global variable;
- A kernel module implementing your RTAI application taps into this 
segment by importing its address from the variable.
- A user-space process linking with the POSIX skin real-time services in 
user-space (libpthread_rt.so) binds itself to this segment and peeks at 
the shared memory.

Not pretty, but still a bit simpler than creating your own memory mapped 
pseudo-device.

> I get the feeling that this is an old api that xenomai doesn't support, 
> is this the case?
> 

In fact, it's just that the RTAI emulator over Xenomai currently 
provides only a small subset of the > 300 routines the original RTAI API 
exports, and solely in kernel space. The reason for that is likely that 
people porting from the RTAI API to Xeno usually switch to Xeno's native 
API directly.

> Any help would be appreciated.
> 
> Thanks,
> 
> -Randy Smith
> Software Engineer
> ImageMap, Inc.
> 
> _______________________________________________
> Xenomai-help mailing list
> Xenomai-help@domain.hid
> https://mail.gna.org/listinfo/xenomai-help
> 


-- 

Philippe.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-03-31 20:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-31 19:39 [Xenomai-help] Questions porting existing rtai-24.1.12 app to xenomai Randy Smith
2006-03-31 20:15 ` Philippe Gerum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.