Revision 992f48a0 linux-user/signal.c

b/linux-user/signal.c
26 26
#include <errno.h>
27 27
#include <sys/ucontext.h>
28 28

  
29
#include "target_signal.h"
30 29
#include "qemu.h"
30
#include "target_signal.h"
31 31

  
32 32
//#define DEBUG_SIGNAL
33 33

  
......
134 134
        if (sigmask & (1 << i))
135 135
            target_sigmask |= 1 << (host_to_target_signal(i + 1) - 1);
136 136
    }
137
#if TARGET_LONG_BITS == 32 && HOST_LONG_BITS == 32
137
#if TARGET_ABI_BITS == 32 && HOST_LONG_BITS == 32
138 138
    d->sig[0] = target_sigmask;
139 139
    for(i = 1;i < TARGET_NSIG_WORDS; i++) {
140 140
        d->sig[i] = ((unsigned long *)s)[i];
141 141
    }
142
#elif TARGET_LONG_BITS == 32 && HOST_LONG_BITS == 64 && TARGET_NSIG_WORDS == 2
142
#elif TARGET_ABI_BITS == 32 && HOST_LONG_BITS == 64 && TARGET_NSIG_WORDS == 2
143 143
    d->sig[0] = target_sigmask;
144 144
    d->sig[1] = sigmask >> 32;
145 145
#else
......
161 161
{
162 162
    int i;
163 163
    unsigned long sigmask;
164
    target_ulong target_sigmask;
164
    abi_ulong target_sigmask;
165 165

  
166 166
    target_sigmask = s->sig[0];
167 167
    sigmask = 0;
......
169 169
        if (target_sigmask & (1 << i))
170 170
            sigmask |= 1 << (target_to_host_signal(i + 1) - 1);
171 171
    }
172
#if TARGET_LONG_BITS == 32 && HOST_LONG_BITS == 32
172
#if TARGET_ABI_BITS == 32 && HOST_LONG_BITS == 32
173 173
    ((unsigned long *)d)[0] = sigmask;
174 174
    for(i = 1;i < TARGET_NSIG_WORDS; i++) {
175 175
        ((unsigned long *)d)[i] = s->sig[i];
176 176
    }
177
#elif TARGET_LONG_BITS == 32 && HOST_LONG_BITS == 64 && TARGET_NSIG_WORDS == 2
177
#elif TARGET_ABI_BITS == 32 && HOST_LONG_BITS == 64 && TARGET_NSIG_WORDS == 2
178 178
    ((unsigned long *)d)[0] = sigmask | ((unsigned long)(s->sig[1]) << 32);
179 179
#else
180 180
#warning target_to_host_sigset
181
#endif /* TARGET_LONG_BITS */
181
#endif /* TARGET_ABI_BITS */
182 182
}
183 183

  
184 184
void target_to_host_sigset(sigset_t *d, const target_sigset_t *s)
......
191 191
    target_to_host_sigset_internal(d, &s1);
192 192
}
193 193

  
194
void host_to_target_old_sigset(target_ulong *old_sigset,
194
void host_to_target_old_sigset(abi_ulong *old_sigset,
195 195
                               const sigset_t *sigset)
196 196
{
197 197
    target_sigset_t d;
......
200 200
}
201 201

  
202 202
void target_to_host_old_sigset(sigset_t *sigset,
203
                               const target_ulong *old_sigset)
203
                               const abi_ulong *old_sigset)
204 204
{
205 205
    target_sigset_t d;
206 206
    int i;
......
233 233
        tinfo->_sifields._rt._uid = info->si_uid;
234 234
        /* XXX: potential problem if 64 bit */
235 235
        tinfo->_sifields._rt._sigval.sival_ptr =
236
            (target_ulong)info->si_value.sival_ptr;
236
            (abi_ulong)info->si_value.sival_ptr;
237 237
    }
238 238
}
239 239

  
......
355 355
{
356 356
    struct emulated_sigaction *k;
357 357
    struct sigqueue *q, **pq;
358
    target_ulong handler;
358
    abi_ulong handler;
359 359

  
360 360
#if defined(DEBUG_SIGNAL)
361 361
    fprintf(stderr, "queue_signal: sig=%d\n",
......
440 440

  
441 441
int do_sigaltstack(const struct target_sigaltstack *uss,
442 442
                   struct target_sigaltstack *uoss,
443
                   target_ulong sp)
443
                   abi_ulong sp)
444 444
{
445 445
    int ret;
446 446
    struct target_sigaltstack oss;
......
579 579
};
580 580

  
581 581
struct target_xmmreg {
582
	target_ulong element[4];
582
	abi_ulong element[4];
583 583
};
584 584

  
585 585
struct target_fpstate {
586 586
	/* Regular FPU environment */
587
	target_ulong 	cw;
588
	target_ulong	sw;
589
	target_ulong	tag;
590
	target_ulong	ipoff;
591
	target_ulong	cssel;
592
	target_ulong	dataoff;
593
	target_ulong	datasel;
587
        abi_ulong       cw;
588
        abi_ulong       sw;
589
        abi_ulong       tag;
590
        abi_ulong       ipoff;
591
        abi_ulong       cssel;
592
        abi_ulong       dataoff;
593
        abi_ulong       datasel;
594 594
	struct target_fpreg	_st[8];
595 595
	uint16_t	status;
596 596
	uint16_t	magic;		/* 0xffff = regular FPU data only */
597 597

  
598 598
	/* FXSR FPU environment */
599
	target_ulong	_fxsr_env[6];	/* FXSR FPU env is ignored */
600
	target_ulong	mxcsr;
601
	target_ulong	reserved;
599
        abi_ulong       _fxsr_env[6];   /* FXSR FPU env is ignored */
600
        abi_ulong       mxcsr;
601
        abi_ulong       reserved;
602 602
	struct target_fpxreg	_fxsr_st[8];	/* FXSR FPU reg data is ignored */
603 603
	struct target_xmmreg	_xmm[8];
604
	target_ulong	padding[56];
604
        abi_ulong       padding[56];
605 605
};
606 606

  
607 607
#define X86_FXSR_MAGIC		0x0000
......
611 611
	uint16_t fs, __fsh;
612 612
	uint16_t es, __esh;
613 613
	uint16_t ds, __dsh;
614
	target_ulong edi;
615
	target_ulong esi;
616
	target_ulong ebp;
617
	target_ulong esp;
618
	target_ulong ebx;
619
	target_ulong edx;
620
	target_ulong ecx;
621
	target_ulong eax;
622
	target_ulong trapno;
623
	target_ulong err;
624
	target_ulong eip;
614
        abi_ulong edi;
615
        abi_ulong esi;
616
        abi_ulong ebp;
617
        abi_ulong esp;
618
        abi_ulong ebx;
619
        abi_ulong edx;
620
        abi_ulong ecx;
621
        abi_ulong eax;
622
        abi_ulong trapno;
623
        abi_ulong err;
624
        abi_ulong eip;
625 625
	uint16_t cs, __csh;
626
	target_ulong eflags;
627
	target_ulong esp_at_signal;
626
        abi_ulong eflags;
627
        abi_ulong esp_at_signal;
628 628
	uint16_t ss, __ssh;
629
        target_ulong fpstate; /* pointer */
630
	target_ulong oldmask;
631
	target_ulong cr2;
629
        abi_ulong fpstate; /* pointer */
630
        abi_ulong oldmask;
631
        abi_ulong cr2;
632 632
};
633 633

  
634 634
struct target_ucontext {
635
        target_ulong	  tuc_flags;
636
	target_ulong      tuc_link;
635
        abi_ulong         tuc_flags;
636
        abi_ulong         tuc_link;
637 637
	target_stack_t	  tuc_stack;
638 638
	struct target_sigcontext tuc_mcontext;
639 639
	target_sigset_t	  tuc_sigmask;	/* mask last for extensibility */
......
641 641

  
642 642
struct sigframe
643 643
{
644
    target_ulong pretcode;
644
    abi_ulong pretcode;
645 645
    int sig;
646 646
    struct target_sigcontext sc;
647 647
    struct target_fpstate fpstate;
648
    target_ulong extramask[TARGET_NSIG_WORDS-1];
648
    abi_ulong extramask[TARGET_NSIG_WORDS-1];
649 649
    char retcode[8];
650 650
};
651 651

  
652 652
struct rt_sigframe
653 653
{
654
    target_ulong pretcode;
654
    abi_ulong pretcode;
655 655
    int sig;
656
    target_ulong pinfo;
657
    target_ulong puc;
656
    abi_ulong pinfo;
657
    abi_ulong puc;
658 658
    struct target_siginfo info;
659 659
    struct target_ucontext uc;
660 660
    struct target_fpstate fpstate;
......
813 813
		    	   ? current->exec_domain->signal_invmap[sig]
814 814
			   : */sig),
815 815
			  &frame->sig);
816
	err |= __put_user((target_ulong)&frame->info, &frame->pinfo);
817
	err |= __put_user((target_ulong)&frame->uc, &frame->puc);
816
	err |= __put_user((abi_ulong)&frame->info, &frame->pinfo);
817
	err |= __put_user((abi_ulong)&frame->uc, &frame->puc);
818 818
	err |= copy_siginfo_to_user(&frame->info, info);
819 819
	if (err)
820 820
		goto give_sigsegv;
......
977 977
#elif defined(TARGET_ARM)
978 978

  
979 979
struct target_sigcontext {
980
	target_ulong trap_no;
981
	target_ulong error_code;
982
	target_ulong oldmask;
983
	target_ulong arm_r0;
984
	target_ulong arm_r1;
985
	target_ulong arm_r2;
986
	target_ulong arm_r3;
987
	target_ulong arm_r4;
988
	target_ulong arm_r5;
989
	target_ulong arm_r6;
990
	target_ulong arm_r7;
991
	target_ulong arm_r8;
992
	target_ulong arm_r9;
993
	target_ulong arm_r10;
994
	target_ulong arm_fp;
995
	target_ulong arm_ip;
996
	target_ulong arm_sp;
997
	target_ulong arm_lr;
998
	target_ulong arm_pc;
999
	target_ulong arm_cpsr;
1000
	target_ulong fault_address;
980
	abi_ulong trap_no;
981
	abi_ulong error_code;
982
	abi_ulong oldmask;
983
	abi_ulong arm_r0;
984
	abi_ulong arm_r1;
985
	abi_ulong arm_r2;
986
	abi_ulong arm_r3;
987
	abi_ulong arm_r4;
988
	abi_ulong arm_r5;
989
	abi_ulong arm_r6;
990
	abi_ulong arm_r7;
991
	abi_ulong arm_r8;
992
	abi_ulong arm_r9;
993
	abi_ulong arm_r10;
994
	abi_ulong arm_fp;
995
	abi_ulong arm_ip;
996
	abi_ulong arm_sp;
997
	abi_ulong arm_lr;
998
	abi_ulong arm_pc;
999
	abi_ulong arm_cpsr;
1000
	abi_ulong fault_address;
1001 1001
};
1002 1002

  
1003 1003
struct target_ucontext {
1004
    target_ulong tuc_flags;
1005
    target_ulong tuc_link;
1004
    abi_ulong tuc_flags;
1005
    abi_ulong tuc_link;
1006 1006
    target_stack_t tuc_stack;
1007 1007
    struct target_sigcontext tuc_mcontext;
1008 1008
    target_sigset_t  tuc_sigmask;	/* mask last for extensibility */
......
1011 1011
struct sigframe
1012 1012
{
1013 1013
    struct target_sigcontext sc;
1014
    target_ulong extramask[TARGET_NSIG_WORDS-1];
1015
    target_ulong retcode;
1014
    abi_ulong extramask[TARGET_NSIG_WORDS-1];
1015
    abi_ulong retcode;
1016 1016
};
1017 1017

  
1018 1018
struct rt_sigframe
......
1021 1021
    void *puc;
1022 1022
    struct target_siginfo info;
1023 1023
    struct target_ucontext uc;
1024
    target_ulong retcode;
1024
    abi_ulong retcode;
1025 1025
};
1026 1026

  
1027 1027
#define TARGET_CONFIG_CPU_32 1
......
1039 1039
#define SWI_THUMB_SIGRETURN	(0xdf00 << 16 | 0x2700 | (TARGET_NR_sigreturn))
1040 1040
#define SWI_THUMB_RT_SIGRETURN	(0xdf00 << 16 | 0x2700 | (TARGET_NR_rt_sigreturn))
1041 1041

  
1042
static const target_ulong retcodes[4] = {
1042
static const abi_ulong retcodes[4] = {
1043 1043
	SWI_SYS_SIGRETURN,	SWI_THUMB_SIGRETURN,
1044 1044
	SWI_SYS_RT_SIGRETURN,	SWI_THUMB_RT_SIGRETURN
1045 1045
};
......
1105 1105

  
1106 1106
static int
1107 1107
setup_return(CPUState *env, struct emulated_sigaction *ka,
1108
	     target_ulong *rc, void *frame, int usig)
1108
	     abi_ulong *rc, void *frame, int usig)
1109 1109
{
1110
	target_ulong handler = (target_ulong)ka->sa._sa_handler;
1111
	target_ulong retcode;
1110
	abi_ulong handler = (abi_ulong)ka->sa._sa_handler;
1111
	abi_ulong retcode;
1112 1112
	int thumb = 0;
1113 1113
#if defined(TARGET_CONFIG_CPU_32)
1114 1114
#if 0
1115
	target_ulong cpsr = env->cpsr;
1115
	abi_ulong cpsr = env->cpsr;
1116 1116

  
1117 1117
	/*
1118 1118
	 * Maybe we need to deliver a 32-bit signal to a 26-bit task.
......
1138 1138
#endif /* TARGET_CONFIG_CPU_32 */
1139 1139

  
1140 1140
	if (ka->sa.sa_flags & TARGET_SA_RESTORER) {
1141
		retcode = (target_ulong)ka->sa.sa_restorer;
1141
		retcode = (abi_ulong)ka->sa.sa_restorer;
1142 1142
	} else {
1143 1143
		unsigned int idx = thumb;
1144 1144

  
......
1148 1148
		if (__put_user(retcodes[idx], rc))
1149 1149
			return 1;
1150 1150
#if 0
1151
		flush_icache_range((target_ulong)rc,
1152
				   (target_ulong)(rc + 1));
1151
		flush_icache_range((abi_ulong)rc,
1152
				   (abi_ulong)(rc + 1));
1153 1153
#endif
1154
		retcode = ((target_ulong)rc) + thumb;
1154
		retcode = ((abi_ulong)rc) + thumb;
1155 1155
	}
1156 1156

  
1157 1157
	env->regs[0] = usig;
......
1197 1197
	if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
1198 1198
            return /* 1 */;
1199 1199

  
1200
	__put_user_error(&frame->info, (target_ulong *)&frame->pinfo, err);
1201
	__put_user_error(&frame->uc, (target_ulong *)&frame->puc, err);
1200
	__put_user_error(&frame->info, (abi_ulong *)&frame->pinfo, err);
1201
	__put_user_error(&frame->uc, (abi_ulong *)&frame->puc, err);
1202 1202
	err |= copy_siginfo_to_user(&frame->info, info);
1203 1203

  
1204 1204
	/* Clear all the bits of the ucontext we don't use.  */
......
1229 1229
		 * arguments for the signal handler.
1230 1230
		 *   -- Peter Maydell <pmaydell@chiark.greenend.org.uk> 2000-12-06
1231 1231
		 */
1232
            env->regs[1] = (target_ulong)frame->pinfo;
1233
            env->regs[2] = (target_ulong)frame->puc;
1232
            env->regs[1] = (abi_ulong)frame->pinfo;
1233
            env->regs[2] = (abi_ulong)frame->puc;
1234 1234
	}
1235 1235

  
1236 1236
        //	return err;
......
1360 1360

  
1361 1361
/* This is what SunOS does, so shall I. */
1362 1362
struct target_sigcontext {
1363
        target_ulong sigc_onstack;      /* state to restore */
1363
        abi_ulong sigc_onstack;      /* state to restore */
1364 1364

  
1365
        target_ulong sigc_mask;         /* sigmask to restore */
1366
        target_ulong sigc_sp;           /* stack pointer */
1367
        target_ulong sigc_pc;           /* program counter */
1368
        target_ulong sigc_npc;          /* next program counter */
1369
        target_ulong sigc_psr;          /* for condition codes etc */
1370
        target_ulong sigc_g1;           /* User uses these two registers */
1371
        target_ulong sigc_o0;           /* within the trampoline code. */
1365
        abi_ulong sigc_mask;         /* sigmask to restore */
1366
        abi_ulong sigc_sp;           /* stack pointer */
1367
        abi_ulong sigc_pc;           /* program counter */
1368
        abi_ulong sigc_npc;          /* next program counter */
1369
        abi_ulong sigc_psr;          /* for condition codes etc */
1370
        abi_ulong sigc_g1;           /* User uses these two registers */
1371
        abi_ulong sigc_o0;           /* within the trampoline code. */
1372 1372

  
1373 1373
        /* Now comes information regarding the users window set
1374 1374
         * at the time of the signal.
1375 1375
         */
1376
        target_ulong sigc_oswins;       /* outstanding windows */
1376
        abi_ulong sigc_oswins;       /* outstanding windows */
1377 1377

  
1378 1378
        /* stack ptrs for each regwin buf */
1379 1379
        char *sigc_spbuf[__SUNOS_MAXWIN];
1380 1380

  
1381 1381
        /* Windows to restore after signal */
1382 1382
        struct {
1383
                target_ulong locals[8];
1384
                target_ulong ins[8];
1383
                abi_ulong locals[8];
1384
                abi_ulong ins[8];
1385 1385
        } sigc_wbuf[__SUNOS_MAXWIN];
1386 1386
};
1387 1387
/* A Sparc stack frame */
1388 1388
struct sparc_stackf {
1389
        target_ulong locals[8];
1390
        target_ulong ins[6];
1389
        abi_ulong locals[8];
1390
        abi_ulong ins[6];
1391 1391
        struct sparc_stackf *fp;
1392
        target_ulong callers_pc;
1392
        abi_ulong callers_pc;
1393 1393
        char *structptr;
1394
        target_ulong xargs[6];
1395
        target_ulong xxargs[1];
1394
        abi_ulong xargs[6];
1395
        abi_ulong xxargs[1];
1396 1396
};
1397 1397

  
1398 1398
typedef struct {
1399 1399
        struct {
1400
                target_ulong psr;
1401
                target_ulong pc;
1402
                target_ulong npc;
1403
                target_ulong y;
1404
                target_ulong u_regs[16]; /* globals and ins */
1400
                abi_ulong psr;
1401
                abi_ulong pc;
1402
                abi_ulong npc;
1403
                abi_ulong y;
1404
                abi_ulong u_regs[16]; /* globals and ins */
1405 1405
        }               si_regs;
1406 1406
        int             si_mask;
1407 1407
} __siginfo_t;
......
1421 1421
	struct sparc_stackf	ss;
1422 1422
	__siginfo_t		info;
1423 1423
	qemu_siginfo_fpu_t 	*fpu_save;
1424
	target_ulong		insns[2] __attribute__ ((aligned (8)));
1425
	target_ulong		extramask[TARGET_NSIG_WORDS - 1];
1426
	target_ulong		extra_size; /* Should be 0 */
1424
	abi_ulong		insns[2] __attribute__ ((aligned (8)));
1425
	abi_ulong		extramask[TARGET_NSIG_WORDS - 1];
1426
	abi_ulong		extra_size; /* Should be 0 */
1427 1427
	qemu_siginfo_fpu_t	fpu_state;
1428 1428
};
1429 1429
struct target_rt_signal_frame {
1430 1430
	struct sparc_stackf	ss;
1431 1431
	siginfo_t		info;
1432
	target_ulong		regs[20];
1432
	abi_ulong		regs[20];
1433 1433
	sigset_t		mask;
1434 1434
	qemu_siginfo_fpu_t 	*fpu_save;
1435 1435
	unsigned int		insns[2];
......
1468 1468
}
1469 1469

  
1470 1470
static int
1471
setup___siginfo(__siginfo_t *si, CPUState *env, target_ulong mask)
1471
setup___siginfo(__siginfo_t *si, CPUState *env, abi_ulong mask)
1472 1472
{
1473 1473
	int err = 0, i;
1474 1474

  
......
1634 1634
        uint32_t up_psr, pc, npc;
1635 1635
        target_sigset_t set;
1636 1636
        sigset_t host_set;
1637
        target_ulong fpu_save;
1637
        abi_ulong fpu_save;
1638 1638
        int err, i;
1639 1639

  
1640 1640
        sf = (struct target_signal_frame *)g2h(env->regwptr[UREG_FP]);
......
1676 1676
		err |= __get_user(env->regwptr[i + UREG_I0], &sf->info.si_regs.u_regs[i+8]);
1677 1677
	}
1678 1678

  
1679
        err |= __get_user(fpu_save, (target_ulong *)&sf->fpu_save);
1679
        err |= __get_user(fpu_save, (abi_ulong *)&sf->fpu_save);
1680 1680

  
1681 1681
        //if (fpu_save)
1682 1682
        //        err |= restore_fpu_state(env, fpu_save);
......
1729 1729
#define MC_O7 18
1730 1730
#define MC_NGREG 19
1731 1731

  
1732
typedef target_ulong target_mc_greg_t;
1732
typedef abi_ulong target_mc_greg_t;
1733 1733
typedef target_mc_greg_t target_mc_gregset_t[MC_NGREG];
1734 1734

  
1735 1735
struct target_mc_fq {
1736
    target_ulong *mcfq_addr;
1736
    abi_ulong *mcfq_addr;
1737 1737
    uint32_t mcfq_insn;
1738 1738
};
1739 1739

  
......
1743 1743
        uint64_t dregs[32];
1744 1744
        //uint128_t qregs[16];
1745 1745
    } mcfpu_fregs;
1746
    target_ulong mcfpu_fsr;
1747
    target_ulong mcfpu_fprs;
1748
    target_ulong mcfpu_gsr;
1746
    abi_ulong mcfpu_fsr;
1747
    abi_ulong mcfpu_fprs;
1748
    abi_ulong mcfpu_gsr;
1749 1749
    struct target_mc_fq *mcfpu_fq;
1750 1750
    unsigned char mcfpu_qcnt;
1751 1751
    unsigned char mcfpu_qentsz;
......
1762 1762

  
1763 1763
struct target_ucontext {
1764 1764
    struct target_ucontext *uc_link;
1765
    target_ulong uc_flags;
1765
    abi_ulong uc_flags;
1766 1766
    target_sigset_t uc_sigmask;
1767 1767
    target_mcontext_t uc_mcontext;
1768 1768
};
1769 1769

  
1770 1770
/* A V9 register window */
1771 1771
struct target_reg_window {
1772
    target_ulong locals[8];
1773
    target_ulong ins[8];
1772
    abi_ulong locals[8];
1773
    abi_ulong ins[8];
1774 1774
};
1775 1775

  
1776 1776
#define TARGET_STACK_BIAS 2047
......
1781 1781
    struct target_ucontext *ucp = (struct target_ucontext *)
1782 1782
        env->regwptr[UREG_I0];
1783 1783
    target_mc_gregset_t *grp;
1784
    target_ulong pc, npc, tstate;
1785
    target_ulong fp, i7;
1784
    abi_ulong pc, npc, tstate;
1785
    abi_ulong fp, i7;
1786 1786
    unsigned char fenab;
1787 1787
    int err;
1788 1788
    unsigned int i;
1789
    target_ulong *src, *dst;
1789
    abi_ulong *src, *dst;
1790 1790

  
1791 1791
    grp  = &ucp->uc_mcontext.mc_gregs;
1792 1792
    err  = get_user(pc, &((*grp)[MC_PC]));
......
1803 1803
        } else {
1804 1804
            src = &ucp->uc_sigmask;
1805 1805
            dst = &target_set;
1806
            for (i = 0; i < sizeof(target_sigset_t) / sizeof(target_ulong);
1806
            for (i = 0; i < sizeof(target_sigset_t) / sizeof(abi_ulong);
1807 1807
                 i++, dst++, src++)
1808 1808
                err |= get_user(dst, src);
1809 1809
            if (err)
......
1866 1866
        env->regwptr[UREG_I0];
1867 1867
    target_mc_gregset_t *grp;
1868 1868
    target_mcontext_t *mcp;
1869
    target_ulong fp, i7;
1869
    abi_ulong fp, i7;
1870 1870
    int err;
1871 1871
    unsigned int i;
1872
    target_ulong *src, *dst;
1872
    abi_ulong *src, *dst;
1873 1873
    target_sigset_t target_set;
1874 1874
    sigset_t set;
1875 1875

  
......
1886 1886
    host_to_target_sigset_internal(&target_set, &set);
1887 1887
    if (TARGET_NSIG_WORDS == 1)
1888 1888
        err |= put_user(target_set.sig[0],
1889
                        (target_ulong *)&ucp->uc_sigmask);
1889
                        (abi_ulong *)&ucp->uc_sigmask);
1890 1890
    else {
1891 1891
        src = &target_set;
1892 1892
        dst = &ucp->uc_sigmask;
1893
        for (i = 0; i < sizeof(target_sigset_t) / sizeof(target_ulong);
1893
        for (i = 0; i < sizeof(target_sigset_t) / sizeof(abi_ulong);
1894 1894
             i++, dst++, src++)
1895 1895
            err |= put_user(src, dst);
1896 1896
        if (err)
......
2354 2354
void process_pending_signals(void *cpu_env)
2355 2355
{
2356 2356
    int sig;
2357
    target_ulong handler;
2357
    abi_ulong handler;
2358 2358
    sigset_t set, old_set;
2359 2359
    target_sigset_t target_old_set;
2360 2360
    struct emulated_sigaction *k;

Also available in: Unified diff