X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/43866e378188c25dd1e2208016ab3cbeb086ae6c..55e303ae13a4cf49d70f2294092726f2fffb9ef2:/osfmk/ppc/interrupt.c diff --git a/osfmk/ppc/interrupt.c b/osfmk/ppc/interrupt.c index 3895c3800..2074435fc 100644 --- a/osfmk/ppc/interrupt.c +++ b/osfmk/ppc/interrupt.c @@ -33,15 +33,15 @@ #include #include #include +#include #include #include #include #include -#if NCPUS > 1 -#include -#endif /* NCPUS > 1 */ #include +perfTrap perfIntHook = 0; /* Pointer to performance trap hook routine */ + struct savearea * interrupt( int type, struct savearea *ssp, @@ -54,6 +54,10 @@ struct savearea * interrupt( thread_act_t act; disable_preemption(); + + if(perfIntHook) { /* Is there a hook? */ + if(perfIntHook(type, ssp, dsisr, dar) == KERN_SUCCESS) return ssp; /* If it succeeds, we are done... */ + } #if 0 { @@ -111,7 +115,7 @@ struct savearea * interrupt( case T_DECREMENTER: KERNEL_DEBUG_CONSTANT(MACHDBG_CODE(DBG_MACH_EXCP_DECI, 0) | DBG_FUNC_NONE, - isync_mfdec(), ssp->save_srr0, 0, 0, 0); + isync_mfdec(), (unsigned int)ssp->save_srr0, 0, 0, 0); #if 0 if (pcsample_enable) { @@ -139,7 +143,7 @@ struct savearea * interrupt( counter_always(c_incoming_interrupts++); KERNEL_DEBUG_CONSTANT(MACHDBG_CODE(DBG_MACH_EXCP_INTR, 0) | DBG_FUNC_START, - current_cpu, ssp->save_srr0, 0, 0, 0); + current_cpu, (unsigned int)ssp->save_srr0, 0, 0, 0); per_proc_info[current_cpu].interrupt_handler( per_proc_info[current_cpu].interrupt_target,