#include <asm_defs.h>
#include "interrupts.h"
#define INTERRUPT_FUNCTION(vector) \
.align 8; \
FUNCTION(interrupt_function##vector): \
pushl $0; \
pusha; \
pushl $vector; \
call handle_exception;
#undef INTERRUPT_FUNCTION_ERROR
#define INTERRUPT_FUNCTION_ERROR(vector) \
.align 8; \
FUNCTION(interrupt_function##vector): \
pusha; \
pushl $vector; \
call handle_exception;
INTERRUPT_FUNCTIONS()
#undef INTERRUPT_FUNCTION
#define INTERRUPT_FUNCTION(vector) \
.align 8; \
FUNCTION(exception_interrupt_function##vector): \
call handle_exception_exception;
#undef INTERRUPT_FUNCTION_ERROR
#define INTERRUPT_FUNCTION_ERROR(vector) INTERRUPT_FUNCTION(vector)
INTERRUPT_FUNCTIONS()