Module: xenomai-rpm
Branch: for-upstream
Commit: 13bfdd477ab880499d2e8f3b82c49ef4d2cccff0
URL:
http://git.xenomai.org/?p=xenomai-rpm.git;a=commit;h=13bfdd477ab880499d2e8f3b82c49ef4d2cccff0
Author: Philippe Gerum r...@xenomai.org
Date: Tue Mar 16 11:14:36 2010 +0100
rtdm: tag syscalls as conforming
Most RTDM syscalls should be tagged as both adaptive and conforming,
instead of bearing the __xn_exec_current bit. Actually, we do want
the current domain to change when it is not the most appropriate,
which __xn_exec_current prevents so far.
__xn_exec_current allows application code to infer/assume that the
RTDM driver might behave differently depending on the current runtime
mode of the calling thread, which is wrong.
A conforming syscall makes the Xenomai threads migrate to primary mode
automatically, before RTDM entry points are invoked, since this is the
preferred mode of operation for them.
sys_rtdm_open, sys_rtdm_socket and sys_rtdm_close are not made
conforming though, since real-time resource allocation of RTDM drivers
is already deprecated, and the related open_rt/close_rt callbacks are
scheduled for removal in Xenomai v3.
---
ksrc/skins/rtdm/syscall.c | 10 +-
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/ksrc/skins/rtdm/syscall.c b/ksrc/skins/rtdm/syscall.c
index 80785ab..d869887 100644
--- a/ksrc/skins/rtdm/syscall.c
+++ b/ksrc/skins/rtdm/syscall.c
@@ -154,14 +154,14 @@ static xnsysent_t __systab[] = {
[__rtdm_close] =
{sys_rtdm_close, __xn_exec_current | __xn_exec_adaptive},
[__rtdm_ioctl] =
- {sys_rtdm_ioctl, __xn_exec_current | __xn_exec_adaptive},
- [__rtdm_read] = {sys_rtdm_read, __xn_exec_current | __xn_exec_adaptive},
+ {sys_rtdm_ioctl, __xn_exec_conforming | __xn_exec_adaptive},
+ [__rtdm_read] = {sys_rtdm_read, __xn_exec_conforming |
__xn_exec_adaptive},
[__rtdm_write] =
- {sys_rtdm_write, __xn_exec_current | __xn_exec_adaptive},
+ {sys_rtdm_write, __xn_exec_conforming | __xn_exec_adaptive},
[__rtdm_recvmsg] =
- {sys_rtdm_recvmsg, __xn_exec_current | __xn_exec_adaptive},
+ {sys_rtdm_recvmsg, __xn_exec_conforming | __xn_exec_adaptive},
[__rtdm_sendmsg] =
- {sys_rtdm_sendmsg, __xn_exec_current | __xn_exec_adaptive},
+ {sys_rtdm_sendmsg, __xn_exec_conforming | __xn_exec_adaptive},
};
static struct xnskin_props __props = {
___
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git