All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] Selecting the appropriate RTDM _rt/_nrt ioctl at run-time.
@ 2009-05-06 23:12 Martin Shepherd
  2009-05-07  8:14 ` Sebastian Smolorz
  2009-05-07  8:30 ` Jan Kiszka
  0 siblings, 2 replies; 5+ messages in thread
From: Martin Shepherd @ 2009-05-06 23:12 UTC (permalink / raw)
  To: xenomai

I'm in the process of writing an RTDM device driver. Some of the ioctl
requests that it implements can only be executed from non-realtime
context, due to the need for them to call Linux kernel functions,
while other ioctl requests are context-agnostic, but are intended to
be used from realtime context.

At first glance the RTDM documentation appears to indicate that I
should implement the ioctl requests that require non-realtime context
in the ioctl_nrt() handler of the driver, and implement the remaining
context-agnostic requests in both the ioctl_nrt() and ioctl_rt()
handlers. However for this to work transparently, RTDM would have to
know which request codes were implemented by ioctl_nrt() and which by
ioctl_rt(), then automatically switch context, if needed, before
calling them.  I don't see anything implemented along these lines.

In principle I could tell application writers that they have to
explicitly switch to the secondary linux domain before calling
rt_dev_ioctl() for a request that requires this. However I don't see
any RTDM or Xenomai user-API call for switching contexts (other than
xnshadown_relax(), which is marked as for internal use only). I
imagine that one could do the equivalent by calling something like
sleep(0) to force a switch to the Linux domain. But this seems like a
kludge.

Am I missing something obvious?

Thanks,

Martin


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

end of thread, other threads:[~2009-05-07 23:36 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-06 23:12 [Xenomai-help] Selecting the appropriate RTDM _rt/_nrt ioctl at run-time Martin Shepherd
2009-05-07  8:14 ` Sebastian Smolorz
2009-05-07  8:30 ` Jan Kiszka
2009-05-07 23:23   ` Martin Shepherd
2009-05-07 23:36     ` Jan Kiszka

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.