* Interrupt entry points
****************************************************************/
+ // Main entry point for interrupts without args
+ DECLFUNC irqentry
+irqentry:
+ ENTRY_ST
+ iretw
+
+ // Main entry point for interrupts with args
+ DECLFUNC irqentryarg
+irqentryarg:
+ ENTRY_ARG_ST
+ iretw
+
// Define an entry point for an interrupt (no args passed).
.macro IRQ_ENTRY num
.global entry_\num
jmp irqentry
.endm
+ .macro DECL_IRQ_ENTRY num
+ DECLFUNC entry_\num
+ IRQ_ENTRY \num
+ .endm
+
// Define an entry point for an interrupt (can read/modify args).
.macro IRQ_ENTRY_ARG num
.global entry_\num
jmp irqentryarg
.endm
- // Macros that put each handler into its own section
- .macro DECL_IRQ_ENTRY num
- DECLFUNC entry_\num
- IRQ_ENTRY \num
- .endm
.macro DECL_IRQ_ENTRY_ARG num
DECLFUNC entry_\num
IRQ_ENTRY_ARG \num
.endm
- // Main entry point for interrupts without args
- DECLFUNC irqentry
-irqentry:
- ENTRY_ST
- iretw
-
- // Main entry point for interrupts with args
- DECLFUNC irqentryarg
-irqentryarg:
- ENTRY_ARG_ST
- iretw
-
+ // Various entry points (that don't require a fixed location).
DECL_IRQ_ENTRY_ARG 13
DECL_IRQ_ENTRY 76
DECL_IRQ_ENTRY 70