示例#1
0
/*
 *  ICU reinitialize when ICU configuration has lost.
 */
void
icu_reinit(void)
{
#ifdef foo
	int i;

	icu_init();
	for (i = 0; i < MAX_HARDINTS; ++i) {
		if (count_registered_ints(i))
			machintr_intr_enable(i);
	}
#else
	icu_init();
#endif
}
示例#2
0
/*
 *  ICU reinitialize when ICU configuration has lost.
 */
void
icu_reinit(void)
{
	int i;

	icu_init();
	for (i = 0; i < MAX_HARDINTS; ++i) {
		if (count_registered_ints(i))
			machintr_intren(i);
	}
}
示例#3
0
void
icu_definit(void)
{
	register_t ef;

	KKASSERT(MachIntrABI.type == MACHINTR_ICU);

	ef = read_rflags();
	cpu_disable_intr();

	/* Leave interrupts masked */
	outb(IO_ICU1 + ICU_IMR_OFFSET, 0xff);
	outb(IO_ICU2 + ICU_IMR_OFFSET, 0xff);

	MachIntrABI.setdefault();
	icu_init();

	write_rflags(ef);
}
示例#4
0
void
icu_reinit_noioapic(void)
{
	register_t ef;

	KKASSERT(MachIntrABI.type == MACHINTR_ICU);
	KKASSERT(ioapic_enable == 0);

	crit_enter();
	ef = read_rflags();
	cpu_disable_intr();

	/* Leave interrupts masked */
	outb(IO_ICU1 + ICU_IMR_OFFSET, 0xff);
	outb(IO_ICU2 + ICU_IMR_OFFSET, 0xff);

	icu_init();
	MachIntrABI.stabilize();

	write_rflags(ef);

	MachIntrABI.cleanup();
	crit_exit();
}