Beispiel #1
0
void inmate_main(void)
{
	printk_uart_base = UART_BASE;

	int_init();
	int_set_handler(IRQ_VECTOR, irq_handler);

	ioapic_init();
	ioapic_pin_set_vector(ACPI_GSI, TRIGGER_LEVEL_ACTIVE_HIGH, IRQ_VECTOR);

	printk("Press power button to trigger an IRQ\n"
	       "Note: ACPI IRQs are broken for Linux now.\n");
	asm volatile("sti");

	while (1)
		asm volatile("hlt");
}
Beispiel #2
0
void inmate_main(void)
{
	printk_uart_base = UART_BASE;

	int_init();
	int_set_handler(IRQ_VECTOR, irq_handler);

	ioapic_init();
	ioapic_pin_set_vector(ACPI_GSI, TRIGGER_LEVEL_ACTIVE_HIGH, IRQ_VECTOR);

	pm_base = comm_region->pm_timer_address - 8;
	outw(inw(pm_base + PM1_ENABLE) | PM1_TMR_EN, pm_base + PM1_ENABLE);

	printk("Note: ACPI IRQs are broken for Linux now.\n");
	asm volatile("sti");

	while (1)
		asm volatile("hlt");
}