Module: xenomai-2.5
Branch: master
Commit: 13bfdd477ab880499d2e8f3b82c49ef4d2cccff0
URL:    
http://git.xenomai.org/?p=xenomai-2.5.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

Reply via email to