int cpu_signal_handler(int host_signum, void *pinfo,

                       void *puc)

{

    siginfo_t *info = pinfo;

#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)

    ucontext_t *uc = puc;

#else

    ucontext_t *uc = puc;

#endif

    unsigned long pc;

    int is_write;



    pc = IAR_sig(uc);

    is_write = 0;

#if 0

    /* ppc 4xx case */

    if (DSISR_sig(uc) & 0x00800000) {

        is_write = 1;

    }

#else

    if (TRAP_sig(uc) != 0x400 && (DSISR_sig(uc) & 0x02000000)) {

        is_write = 1;

    }

#endif

    return handle_cpu_signal(pc, (unsigned long)info->si_addr,

                             is_write, &uc->uc_sigmask);

}

int cpu_signal_handler(int host_signum, void *pinfo,

                       void *puc)

{

    siginfo_t *info = pinfo;

#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)

    ucontext_t *uc = puc;

#else

    ucontext_t *uc = puc;

#endif

    unsigned long pc;

    int is_write;



    pc = IAR_sig(uc);

    is_write = 0;

#if 0

    

    if (DSISR_sig(uc) & 0x00800000) {

        is_write = 1;

    }

#else

    if (TRAP_sig(uc) != 0x400 && (DSISR_sig(uc) & 0x02000000)) {

        is_write = 1;

    }

#endif

    return handle_cpu_signal(pc, (unsigned long)info->si_addr,

                             is_write, &uc->uc_sigmask);

}

int FUNC_0(int VAR_0, void *VAR_1,

                       void *VAR_2)

{

    siginfo_t *info = VAR_1;

#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)

    ucontext_t *uc = VAR_2;

#else

    ucontext_t *uc = VAR_2;

#endif

    unsigned long VAR_3;

    int VAR_4;



    VAR_3 = IAR_sig(uc);

    VAR_4 = 0;

#if 0

    

    if (DSISR_sig(uc) & 0x00800000) {

        VAR_4 = 1;

    }

#else

    if (TRAP_sig(uc) != 0x400 && (DSISR_sig(uc) & 0x02000000)) {

        VAR_4 = 1;

    }

#endif

    return handle_cpu_signal(VAR_3, (unsigned long)info->si_addr,

                             VAR_4, &uc->uc_sigmask);

}

int FUNC_0(int VAR_0, void *VAR_1,
void *VAR_2)
{ siginfo_t *info = VAR_1; #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
ucontext_t *uc = VAR_2; #else
ucontext_t *uc = VAR_2; #endif
unsigned long VAR_3; int VAR_4; VAR_3 = IAR_sig(uc); VAR_4 = 0; #if 0
if (DSISR_sig(uc) & 0x00800000) { VAR_4 = 1; } #else
if (TRAP_sig(uc) != 0x400 && (DSISR_sig(uc) & 0x02000000)) { VAR_4 = 1; } #endif
return handle_cpu_signal(VAR_3, (unsigned long)info->si_addr,
VAR_4, &uc->uc_sigmask); }