; interrupt headers
bits 16
%pragma once

; Groups
%define Exceptions  (1 << 0)
%define IRQs        (1 << 1)
%define Traps       (1 << 2)
%define Other       (1 << 3)
; Types
%define Node        (1 << 4)
%define Leaf        0
; Config
%define Pbit        (1 << 7)    ; 1=present

%assign MaxTrees 1024

; Interrupt tree datatypes
struc IntNode   ; 10B
    .north:     resw 2
    .flags:     resb 1
    .ptr2arr:   resw 2
    .reserved:  resb 1
    .end:
endstruc

struc IntLeaf   ; 18B
    .north:     resw 2
    .flags:     resb 1
    .int:       resb 1
    .next:      resw 2
    .handler:   resw 2
    .reserved:  resb 4
    .end:
endstruc
    
%assign IntTreeSz (IntNode.end-IntNode)
