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