siginfo fix for Darwin/Mac OS X, by Pierre d'Herbemont.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 31 Jan 2007 12:16:51 +0000 (12:16 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 31 Jan 2007 12:16:51 +0000 (12:16 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2369 c046a42c-6fe2-441c-8c8c-71466251a162

cpu-exec.c
target-arm/cpu.h
target-i386/cpu.h
target-m68k/cpu.h
target-ppc/cpu.h
target-sh4/cpu.h
target-sparc/cpu.h

index 6662b3974135b6283281a093bf5bbd08f45c36bd..a2704e5f1f86b2fade7454c83f2e976530aa2a28 100644 (file)
@@ -1280,9 +1280,10 @@ static void cpu_send_trap(unsigned long pc, int trap,
 }
 #endif
 
-int cpu_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_signal_handler(int host_signum, void *pinfo, 
                        void *puc)
 {
+    siginfo_t *info = pinfo;
     struct ucontext *uc = puc;
     unsigned long pc;
     int trapno;
@@ -1310,9 +1311,10 @@ int cpu_signal_handler(int host_signum, struct siginfo *info,
 
 #elif defined(__x86_64__)
 
-int cpu_signal_handler(int host_signum, struct siginfo *info,
+int cpu_signal_handler(int host_signum, void *pinfo,
                        void *puc)
 {
+    siginfo_t *info = pinfo;
     struct ucontext *uc = puc;
     unsigned long pc;
 
@@ -1374,9 +1376,10 @@ typedef struct ucontext SIGCONTEXT;
 # define TRAP_sig(context)                     EXCEPREG_sig(exception, context) /* number of powerpc exception taken */
 #endif /* __APPLE__ */
 
-int cpu_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_signal_handler(int host_signum, void *pinfo, 
                        void *puc)
 {
+    siginfo_t *info = pinfo;
     struct ucontext *uc = puc;
     unsigned long pc;
     int is_write;
@@ -1397,9 +1400,10 @@ int cpu_signal_handler(int host_signum, struct siginfo *info,
 
 #elif defined(__alpha__)
 
-int cpu_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_signal_handler(int host_signum, void *pinfo, 
                            void *puc)
 {
+    siginfo_t *info = pinfo;
     struct ucontext *uc = puc;
     uint32_t *pc = uc->uc_mcontext.sc_pc;
     uint32_t insn = *pc;
@@ -1426,9 +1430,10 @@ int cpu_signal_handler(int host_signum, struct siginfo *info,
 }
 #elif defined(__sparc__)
 
-int cpu_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_signal_handler(int host_signum, void *pinfo, 
                        void *puc)
 {
+    siginfo_t *info = pinfo;
     uint32_t *regs = (uint32_t *)(info + 1);
     void *sigmask = (regs + 20);
     unsigned long pc;
@@ -1459,9 +1464,10 @@ int cpu_signal_handler(int host_signum, struct siginfo *info,
 
 #elif defined(__arm__)
 
-int cpu_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_signal_handler(int host_signum, void *pinfo, 
                        void *puc)
 {
+    siginfo_t *info = pinfo;
     struct ucontext *uc = puc;
     unsigned long pc;
     int is_write;
@@ -1476,9 +1482,10 @@ int cpu_signal_handler(int host_signum, struct siginfo *info,
 
 #elif defined(__mc68000)
 
-int cpu_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_signal_handler(int host_signum, void *pinfo, 
                        void *puc)
 {
+    siginfo_t *info = pinfo;
     struct ucontext *uc = puc;
     unsigned long pc;
     int is_write;
@@ -1498,8 +1505,9 @@ int cpu_signal_handler(int host_signum, struct siginfo *info,
 # define __ISR_VALID   1
 #endif
 
-int cpu_signal_handler(int host_signum, struct siginfo *info, void *puc)
+int cpu_signal_handler(int host_signum, void *pinfo, void *puc)
 {
+    siginfo_t *info = pinfo;
     struct ucontext *uc = puc;
     unsigned long ip;
     int is_write = 0;
@@ -1526,9 +1534,10 @@ int cpu_signal_handler(int host_signum, struct siginfo *info, void *puc)
 
 #elif defined(__s390__)
 
-int cpu_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_signal_handler(int host_signum, void *pinfo, 
                        void *puc)
 {
+    siginfo_t *info = pinfo;
     struct ucontext *uc = puc;
     unsigned long pc;
     int is_write;
index 359d5cbdc278afe06237f0e93247c1f1def439cb..3208c138b58a4c9e0b0e916cb7dc4341ed851d02 100644 (file)
@@ -133,8 +133,7 @@ void switch_mode(CPUARMState *, int);
 /* you can call this signal handler from your SIGBUS and SIGSEGV
    signal handlers to inform the virtual CPU of exceptions. non zero
    is returned if the signal was handled by the virtual CPU.  */
-struct siginfo;
-int cpu_arm_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_arm_signal_handler(int host_signum, void *pinfo, 
                            void *puc);
 
 #define CPSR_M (0x1f)
index 4296093152f04de7b04c46693d000c1b1c490bb5..70a1caccdaab0eadab703f822eaaa12d05534f95 100644 (file)
@@ -628,8 +628,7 @@ void cpu_x86_frstor(CPUX86State *s, uint8_t *ptr, int data32);
 /* you can call this signal handler from your SIGBUS and SIGSEGV
    signal handlers to inform the virtual CPU of exceptions. non zero
    is returned if the signal was handled by the virtual CPU.  */
-struct siginfo;
-int cpu_x86_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_x86_signal_handler(int host_signum, void *pinfo, 
                            void *puc);
 void cpu_x86_set_a20(CPUX86State *env, int a20_state);
 
index a30bf962dda2ef68d240cbdec9a1945e08ea427c..de37baf9a9580616f50768f063986996bbbb0c2c 100644 (file)
@@ -97,8 +97,7 @@ void cpu_m68k_close(CPUM68KState *s);
 /* you can call this signal handler from your SIGBUS and SIGSEGV
    signal handlers to inform the virtual CPU of exceptions. non zero
    is returned if the signal was handled by the virtual CPU.  */
-struct siginfo;
-int cpu_m68k_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_m68k_signal_handler(int host_signum, void *pinfo, 
                            void *puc);
 void cpu_m68k_flush_flags(CPUM68KState *, int);
 
index f05fb280bead75fd5fbf8aa8e10195608c783013..b294e3146838d5a82a4a7d034a464d37bdce83fb 100644 (file)
@@ -575,8 +575,7 @@ void cpu_ppc_close(CPUPPCState *s);
 /* you can call this signal handler from your SIGBUS and SIGSEGV
    signal handlers to inform the virtual CPU of exceptions. non zero
    is returned if the signal was handled by the virtual CPU.  */
-struct siginfo;
-int cpu_ppc_signal_handler(int host_signum, struct siginfo *info, 
+int cpu_ppc_signal_handler(int host_signum, void *pinfo, 
                            void *puc);
 
 void do_interrupt (CPUPPCState *env);
index 7296d9eef454c72d8ae5abb27a0317eeeb517be4..e844d690e24ff41cde524686eaded789d92b99c1 100644 (file)
@@ -121,9 +121,8 @@ typedef struct CPUSH4State {
 
 CPUSH4State *cpu_sh4_init(void);
 int cpu_sh4_exec(CPUSH4State * s);
-struct siginfo;
-int cpu_sh4_signal_handler(int hostsignum, struct siginfo *info,
-                          void *puc);
+int cpu_sh4_signal_handler(int host_signum, void *pinfo, 
+                           void *puc);
 
 #include "softfloat.h"
 
index 86c2320044d98edbef83a31e45f987a595f3ad40..5c4593ac63363cbcf7eaab12430952a0e9845825 100644 (file)
@@ -275,8 +275,7 @@ void cpu_set_cwp(CPUSPARCState *env1, int new_cwp);
     } while (0)
 #endif
 
-struct siginfo;
-int cpu_sparc_signal_handler(int hostsignum, struct siginfo *info, void *puc);
+int cpu_sparc_signal_handler(int host_signum, void *pinfo, void *puc);
 
 #include "cpu-all.h"