From 7f7f7c846345550634e1d4b91c9c5f475edfd9ed Mon Sep 17 00:00:00 2001 From: ths Date: Thu, 12 Jul 2007 11:02:46 +0000 Subject: Sigio fd passing, by Alexander Graf. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3077 c046a42c-6fe2-441c-8c8c-71466251a162 --- linux-user/signal.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux-user/signal.c b/linux-user/signal.c index 6dcb9dc530..eea73470fa 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -207,6 +207,8 @@ static inline void host_to_target_siginfo_noswap(target_siginfo_t *tinfo, /* should never come here, but who knows. The information for the target is irrelevant */ tinfo->_sifields._sigfault._addr = 0; + } else if (sig == SIGIO) { + tinfo->_sifields._sigpoll._fd = info->si_fd; } else if (sig >= TARGET_SIGRTMIN) { tinfo->_sifields._rt._pid = info->si_pid; tinfo->_sifields._rt._uid = info->si_uid; @@ -228,6 +230,8 @@ static void tswap_siginfo(target_siginfo_t *tinfo, sig == SIGBUS || sig == SIGTRAP) { tinfo->_sifields._sigfault._addr = tswapl(info->_sifields._sigfault._addr); + } else if (sig == SIGIO) { + tinfo->_sifields._sigpoll._fd = tswap32(info->_sifields._sigpoll._fd); } else if (sig >= TARGET_SIGRTMIN) { tinfo->_sifields._rt._pid = tswap32(info->_sifields._rt._pid); tinfo->_sifields._rt._uid = tswap32(info->_sifields._rt._uid); -- cgit v1.2.1