Revision 4cb05961

b/linux-user/qemu.h
187 187
int queue_signal(int sig, target_siginfo_t *info);
188 188
void host_to_target_siginfo(target_siginfo_t *tinfo, const siginfo_t *info);
189 189
void target_to_host_siginfo(siginfo_t *info, const target_siginfo_t *tinfo);
190
int target_to_host_signal(int sig);
190 191
long do_sigreturn(CPUState *env);
191 192
long do_rt_sigreturn(CPUState *env);
192 193
abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, abi_ulong sp);
b/linux-user/signal.c
113 113

  
114 114
static inline int host_to_target_signal(int sig)
115 115
{
116
    if (sig > 64)
117
        return sig;
116 118
    return host_to_target_signal_table[sig];
117 119
}
118 120

  
119
static inline int target_to_host_signal(int sig)
121
int target_to_host_signal(int sig)
120 122
{
123
    if (sig > 64)
124
        return sig;
121 125
    return target_to_host_signal_table[sig];
122 126
}
123 127

  
b/linux-user/syscall.c
3488 3488
        ret = 0;
3489 3489
        break;
3490 3490
    case TARGET_NR_kill:
3491
        ret = get_errno(kill(arg1, arg2));
3491
        ret = get_errno(kill(arg1, target_to_host_signal(arg2)));
3492 3492
        break;
3493 3493
    case TARGET_NR_rename:
3494 3494
        {
......
5583 5583

  
5584 5584
#if defined(TARGET_NR_tkill) && defined(__NR_tkill)
5585 5585
    case TARGET_NR_tkill:
5586
        ret = get_errno(sys_tkill((int)arg1, (int)arg2));
5586
        ret = get_errno(sys_tkill((int)arg1, target_to_host_signal(arg2)));
5587 5587
        break;
5588 5588
#endif
5589 5589

  
5590 5590
#if defined(TARGET_NR_tgkill) && defined(__NR_tgkill)
5591 5591
    case TARGET_NR_tgkill:
5592
	ret = get_errno(sys_tgkill((int)arg1, (int)arg2, (int)arg3));
5592
	ret = get_errno(sys_tgkill((int)arg1, (int)arg2,
5593
                        target_to_host_signal(arg3)));
5593 5594
	break;
5594 5595
#endif
5595 5596

  

Also available in: Unified diff