pub fn wakeup_core(core_id_to_wakeup: usize) {
	if core_id_to_wakeup != core_id() {
		let apic_ids = unsafe { CPU_LOCAL_APIC_IDS };
		let local_apic_id = apic_ids[core_id_to_wakeup];
		let destination = u64::from(local_apic_id) << 32;
		local_apic_write(
			IA32_X2APIC_ICR,
			destination
				| APIC_ICR_LEVEL_ASSERT
				| APIC_ICR_DELIVERY_MODE_FIXED
				| u64::from(WAKEUP_INTERRUPT_NUMBER),
		);
	}
}
/// Send an inter-processor interrupt to wake up a CPU Core that is in a HALT state.
Send an inter-processor interrupt to wake up a CPU Core that is in a HALT state.
Send an inter - processor interrupt to wake up a CPU Core that is in a HALT state .
pub fn wakeup_core(core_id_to_wakeup: usize) {
	if core_id_to_wakeup != core_id() {
		let apic_ids = unsafe { CPU_LOCAL_APIC_IDS };
		let local_apic_id = apic_ids[core_id_to_wakeup];
		let destination = u64::from(local_apic_id) << 32;
		local_apic_write(
			IA32_X2APIC_ICR,
			destination
				| APIC_ICR_LEVEL_ASSERT
				| APIC_ICR_DELIVERY_MODE_FIXED
				| u64::from(WAKEUP_INTERRUPT_NUMBER),
		);
	}
}
pub fn wakeup_core ( core_id_to_wakeup : usize ) { if core_id_to_wakeup != core_id ( ) { let apic_ids = unsafe { CPU_LOCAL_APIC_IDS } ; let local_apic_id = apic_ids [ core_id_to_wakeup ] ; let destination = u64 :: from ( local_apic_id ) << 32 ; local_apic_write ( IA32_X2APIC_ICR , destination | APIC_ICR_LEVEL_ASSERT | APIC_ICR_DELIVERY_MODE_FIXED | u64 :: from ( WAKEUP_INTERRUPT_NUMBER ) , ) ; } }
Send an inter-processor interrupt to wake up a CPU Core that is in a HALT state.
Send an inter - processor interrupt to wake up a CPU Core that is in a HALT state .
core_id_to_wakeup
usize
core_id_to_wakeup
usize