add: TRACE(("  message = %d\n", msg->message));
context: smp_process_pending_ici(int curr_cpu){	struct smp_msg *msg;	bool halt = false;	int source_mailbox = 0;	int retval = B_HANDLED_INTERRUPT;	msg = smp_check_for_message(curr_cpu, &source_mailbox);	if (msg == NULL)		return retval;//	dprintf("  message = %d\n", msg->message);	switch (msg->message) {		case SMP_MSG_INVL_PAGE_RANGE:			arch_cpu_invalidate_TLB_range((addr)msg->data, (addr)msg->data2);			break;		case SMP_MSG_INVL_PAGE_LIST:			arch_cpu_invalidate_TLB_list((addr *)msg->data, (int)msg->data2);			break;		case SMP_MSG_GLOBAL_INVL_PAGE:			arch_cpu_global_TLB_invalidate();			break;		case SMP_MSG_RESCHEDULE:			retval = B_INVOKE_SCHEDULER;			break;		case SMP_MSG_CPU_HALT:			halt = true;			dprintf("cpu %d halted!\n", curr_cpu);			break;		case SMP_MSG_1:		default:			dprintf("smp_intercpu_int_handler: got unknown message %d\n", msg->message);	}	// finish dealing with this message, possibly removing it from the list	smp_finish_message_processing(curr_cpu, msg, source_mailbox);	// special case for the halt message	// we otherwise wouldn't have gotten the opportunity to clean up	if (halt) {		disable_interrupts();		for(;;);	}	return retval;}