Sigio fd passing, by Alexander Graf.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 12 Jul 2007 11:02:46 +0000 (11:02 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 12 Jul 2007 11:02:46 +0000 (11:02 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3077 c046a42c-6fe2-441c-8c8c-71466251a162

linux-user/signal.c

index 6dcb9dc530f02ff147fe707e6b14e720dd4221a6..eea73470faef2d18e96b6054e64e4a02476e3d68 100644 (file)
@@ -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);