kernels/linux-2.4.0/arch/ia64/kernel/mca.c
/* 
 * ia64_mca_ucmc_handler
 *	This is uncorrectable machine check handler called from OS_MCA
 *	dispatch code which is in turn called from SAL_CHECK().
 *	This is the place where the core of OS MCA handling is done.
 *	Right now the logs are extracted and displayed in a well-defined
 *	format. This handler code is supposed to be run only on the
 *	monarch processor. Once the  monarch is done with MCA handling
 *	further MCA logging is enabled by clearing logs.
 *	Monarch also has the duty of sending wakeup-IPIs to pull the
 *	slave processors out of rendez. spinloop.
 * Inputs
 *	None
 * Outputs
 *	None
 */
ia64_mca_ucmc_handler
This is uncorrectable machine check handler called from OS_MCA
dispatch code which is in turn called from SAL_CHECK().
This is the place where the core of OS MCA handling is done.
Right now the logs are extracted and displayed in a well-defined
format. This handler code is supposed to be run only on the
monarch processor. Once the  monarch is done with MCA handling
further MCA logging is enabled by clearing logs.
Monarch also has the duty of sending wakeup-IPIs to pull the
slave processors out of rendez. spinloop.
Inputs
None
Outputs
None
ia64_mca_ucmc_handler This is uncorrectable machine check handler called from OS_MCA dispatch code which is in turn called from SAL_CHECK () . This is the place where the core of OS MCA handling is done . Right now the logs are extracted and displayed in a well - defined format . This handler code is supposed to be run only on the monarch processor . Once the monarch is done with MCA handling further MCA logging is enabled by clearing logs . Monarch also has the duty of sending wakeup - IPIs to pull the slave processors out of rendez . spinloop . Inputs None Outputs None
void
ia64_mca_ucmc_handler(void)
{
	ia64_log_get(SAL_INFO_TYPE_MCA, SAL_SUB_INFO_TYPE_PROCESSOR, (prfunc_t)printk);
	ia64_log_get(SAL_INFO_TYPE_MCA, SAL_SUB_INFO_TYPE_PLATFORM, (prfunc_t)printk);
	ia64_log_print(SAL_INFO_TYPE_MCA, SAL_SUB_INFO_TYPE_PROCESSOR, (prfunc_t)printk);
	mca_handler_platform() ;
	ia64_log_clear(SAL_INFO_TYPE_MCA, SAL_SUB_INFO_TYPE_PROCESSOR, 1, printk);
	ia64_log_clear(SAL_INFO_TYPE_MCA, SAL_SUB_INFO_TYPE_PLATFORM, 1, printk);
	ia64_mca_wakeup_all();
	ia64_return_to_sal_check();
}
void ia64_mca_ucmc_handler ( void ) { ia64_log_get ( SAL_INFO_TYPE_MCA , SAL_SUB_INFO_TYPE_PROCESSOR , ( prfunc_t ) printk ) ; ia64_log_get ( SAL_INFO_TYPE_MCA , SAL_SUB_INFO_TYPE_PLATFORM , ( prfunc_t ) printk ) ; ia64_log_print ( SAL_INFO_TYPE_MCA , SAL_SUB_INFO_TYPE_PROCESSOR , ( prfunc_t ) printk ) ; mca_handler_platform ( ) ; ia64_log_clear ( SAL_INFO_TYPE_MCA , SAL_SUB_INFO_TYPE_PROCESSOR , 1 , printk ) ; ia64_log_clear ( SAL_INFO_TYPE_MCA , SAL_SUB_INFO_TYPE_PLATFORM , 1 , printk ) ; ia64_mca_wakeup_all ( ) ; ia64_return_to_sal_check ( ) ; }
ia64_mca_ucmc_handler
      This is uncorrectable machine check handler called from OS_MCA
      dispatch code which is in turn called from SAL_CHECK().
ia64_mca_ucmc_handler This is uncorrectable machine check handler called from OS_MCA dispatch code which is in turn called from SAL_CHECK () .
/* Get the MCA processor log */ /* Get the MCA platform log */ /* 
	 * Do some error handling - Platform-specific mca handler is called at this point
	 */ /* Clear the SAL MCA logs */ /* Wakeup all the processors which are spinning in the rendezvous
	 * loop.
	 */