Commit 7f7f7c846345550634e1d4b91c9c5f475edfd9ed
1 parent
fe8f096b
Sigio fd passing, by Alexander Graf.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3077 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
4 additions
and
0 deletions
linux-user/signal.c
| @@ -207,6 +207,8 @@ static inline void host_to_target_siginfo_noswap(target_siginfo_t *tinfo, | @@ -207,6 +207,8 @@ static inline void host_to_target_siginfo_noswap(target_siginfo_t *tinfo, | ||
| 207 | /* should never come here, but who knows. The information for | 207 | /* should never come here, but who knows. The information for |
| 208 | the target is irrelevant */ | 208 | the target is irrelevant */ |
| 209 | tinfo->_sifields._sigfault._addr = 0; | 209 | tinfo->_sifields._sigfault._addr = 0; |
| 210 | + } else if (sig == SIGIO) { | ||
| 211 | + tinfo->_sifields._sigpoll._fd = info->si_fd; | ||
| 210 | } else if (sig >= TARGET_SIGRTMIN) { | 212 | } else if (sig >= TARGET_SIGRTMIN) { |
| 211 | tinfo->_sifields._rt._pid = info->si_pid; | 213 | tinfo->_sifields._rt._pid = info->si_pid; |
| 212 | tinfo->_sifields._rt._uid = info->si_uid; | 214 | tinfo->_sifields._rt._uid = info->si_uid; |
| @@ -228,6 +230,8 @@ static void tswap_siginfo(target_siginfo_t *tinfo, | @@ -228,6 +230,8 @@ static void tswap_siginfo(target_siginfo_t *tinfo, | ||
| 228 | sig == SIGBUS || sig == SIGTRAP) { | 230 | sig == SIGBUS || sig == SIGTRAP) { |
| 229 | tinfo->_sifields._sigfault._addr = | 231 | tinfo->_sifields._sigfault._addr = |
| 230 | tswapl(info->_sifields._sigfault._addr); | 232 | tswapl(info->_sifields._sigfault._addr); |
| 233 | + } else if (sig == SIGIO) { | ||
| 234 | + tinfo->_sifields._sigpoll._fd = tswap32(info->_sifields._sigpoll._fd); | ||
| 231 | } else if (sig >= TARGET_SIGRTMIN) { | 235 | } else if (sig >= TARGET_SIGRTMIN) { |
| 232 | tinfo->_sifields._rt._pid = tswap32(info->_sifields._rt._pid); | 236 | tinfo->_sifields._rt._pid = tswap32(info->_sifields._rt._pid); |
| 233 | tinfo->_sifields._rt._uid = tswap32(info->_sifields._rt._uid); | 237 | tinfo->_sifields._rt._uid = tswap32(info->_sifields._rt._uid); |