diff --git a/arch/x86/src/qemu/qemu_handlers.c b/arch/x86/src/qemu/qemu_handlers.c index 221bfbf0f87..05b5dee3f16 100644 --- a/arch/x86/src/qemu/qemu_handlers.c +++ b/arch/x86/src/qemu/qemu_handlers.c @@ -101,10 +101,6 @@ static uint32_t *common_handler(int irq, uint32_t *regs) DEBUGASSERT(current_regs == NULL); current_regs = regs; - /* Mask and acknowledge the interrupt */ - - up_maskack_irq(irq); - /* Deliver the IRQ */ irq_dispatch(irq, regs); @@ -120,10 +116,6 @@ static uint32_t *common_handler(int irq, uint32_t *regs) /* Indicate that we are no long in an interrupt handler */ current_regs = NULL; - - /* Unmask the last interrupt (global interrupts are still disabled) */ - - up_enable_irq(irq); return regs; } #endif diff --git a/arch/x86/src/qemu/qemu_head.S b/arch/x86/src/qemu/qemu_head.S index 4840b9135a0..096705f46bd 100755 --- a/arch/x86/src/qemu/qemu_head.S +++ b/arch/x86/src/qemu/qemu_head.S @@ -161,17 +161,25 @@ g_heapbase: .type __start, @function __start: /* Set up the stack */ - + mov $'a', %ax + mov $0x3f8, %dx + outb %al, %dx mov $(idle_stack + CONFIG_IDLETHREAD_STACKSIZE), %esp /* Multiboot setup */ push %eax /* Multiboot magic number */ push %ebx /* Multiboot data structure */ + mov $'b', %ax + mov $0x3f8, %dx + outb %al, %dx /* Initialize and start NuttX */ call up_lowsetup /* Low-level, pre-OS initialization */ + mov $'c', %ax + mov $0x3f8, %dx + outb %al, %dx call os_start /* Start NuttX */ /* NuttX will not return */ diff --git a/arch/x86/src/qemu/qemu_irq.c b/arch/x86/src/qemu/qemu_irq.c index be6c4a40e5a..f266f67144b 100755 --- a/arch/x86/src/qemu/qemu_irq.c +++ b/arch/x86/src/qemu/qemu_irq.c @@ -256,64 +256,6 @@ void up_irqinitialize(void) /* And finally, enable interrupts */ #ifndef CONFIG_SUPPRESS_INTERRUPTS - irqrestore(0); + irqrestore(X86_FLAGS_IF); #endif } - -/**************************************************************************** - * Name: up_disable_irq - * - * Description: - * Disable the IRQ specified by 'irq' - * - ****************************************************************************/ - -void up_disable_irq(int irq) -{ -#warning "Missing Logic" -} - -/**************************************************************************** - * Name: up_enable_irq - * - * Description: - * Enable the IRQ specified by 'irq' - * - ****************************************************************************/ - -void up_enable_irq(int irq) -{ -#warning "Missing Logic" -} - -/**************************************************************************** - * Name: up_maskack_irq - * - * Description: - * Mask the IRQ and acknowledge it - * - ****************************************************************************/ - -void up_maskack_irq(int irq) -{ -#warning "Missing Logic" -} - -/**************************************************************************** - * Name: up_prioritize_irq - * - * Description: - * Set the priority of an IRQ. - * - * Since this API is not supported on all architectures, it should be - * avoided in common implementations where possible. - * - ****************************************************************************/ - -#ifdef CONFIG_ARCH_IRQPRIO -int up_prioritize_irq(int irq, int priority) -{ -#warning "Missing Logic" - return OK; -} -#endif