Beispiel #1
0
void
hppa_ipi_halt(void)
{
	/* Turn off interrupts and halt CPU. */
	SCHED_ASSERT_UNLOCKED();
	hppa_intr_disable();
	curcpu()->ci_flags &= ~CPUF_RUNNING;

	for (;;) ;
}
void
alpha_ipi_halt(struct cpu_info *ci, struct trapframe *framep)
{
    SCHED_ASSERT_UNLOCKED();
    fpusave_cpu(ci, 1);
    (void)splhigh();

    cpu_halt();
    /* NOTREACHED */
}
Beispiel #3
0
/*
 * XXX This is a slight hack to get newly-formed processes to
 * XXX acquire the kernel lock as soon as they run.
 */
void
proc_trampoline_mp(void)
{
	struct proc *p;

	p = curproc;

	SCHED_ASSERT_UNLOCKED();
	KERNEL_PROC_LOCK(p);
}
Beispiel #4
0
void
x86_64_ipi_halt(struct cpu_info *ci)
{
	SCHED_ASSERT_UNLOCKED();
	KASSERT(!__mp_lock_held(&kernel_lock));
	
	fpusave_cpu(ci, 1);
	disable_intr();
	lapic_disable();
	wbinvd();
	ci->ci_flags &= ~CPUF_RUNNING;
	wbinvd();

	for(;;) {
		__asm volatile("hlt");
	}
}