Martin Shepherd wrote:
> 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?

Maybe you want to study ksrc/drivers/serial16550A.c a bit. It comes with
some (IOCTL) use cases that should be similar to yours.

Jan

-- 
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to