#ifndef PLATFORM_PC64_IRQSTUBS_H
#define PLATFORM_PC64_IRQSTUBS_H

#ifdef __cplusplus
extern "C" {
#endif

// declare all of the interrupt stubs
void pc64_irq_stub_32();
// ^ reserved for scheduler IPI

void pc64_irq_stub_33();
void pc64_irq_stub_34();
void pc64_irq_stub_35();
void pc64_irq_stub_36();
void pc64_irq_stub_37();
void pc64_irq_stub_38();
void pc64_irq_stub_39();
void pc64_irq_stub_40();
void pc64_irq_stub_41();
void pc64_irq_stub_42();
void pc64_irq_stub_43();
void pc64_irq_stub_44();
void pc64_irq_stub_45();
void pc64_irq_stub_46();
void pc64_irq_stub_47();
void pc64_irq_stub_48();
void pc64_irq_stub_49();
void pc64_irq_stub_50();
void pc64_irq_stub_51();
void pc64_irq_stub_52();
void pc64_irq_stub_53();
void pc64_irq_stub_54();
void pc64_irq_stub_55();
void pc64_irq_stub_56();
void pc64_irq_stub_57();
void pc64_irq_stub_58();
void pc64_irq_stub_59();
void pc64_irq_stub_60();
void pc64_irq_stub_61();
void pc64_irq_stub_62();
void pc64_irq_stub_63();
void pc64_irq_stub_64();
void pc64_irq_stub_65();
void pc64_irq_stub_66();
void pc64_irq_stub_67();
void pc64_irq_stub_68();
void pc64_irq_stub_69();
void pc64_irq_stub_70();
void pc64_irq_stub_71();
void pc64_irq_stub_72();
void pc64_irq_stub_73();
void pc64_irq_stub_74();
void pc64_irq_stub_75();
void pc64_irq_stub_76();
void pc64_irq_stub_77();
void pc64_irq_stub_78();
void pc64_irq_stub_79();
void pc64_irq_stub_80();
void pc64_irq_stub_81();
void pc64_irq_stub_82();
void pc64_irq_stub_83();
void pc64_irq_stub_84();
void pc64_irq_stub_85();
void pc64_irq_stub_86();
void pc64_irq_stub_87();
void pc64_irq_stub_88();
void pc64_irq_stub_89();
void pc64_irq_stub_90();
void pc64_irq_stub_91();
void pc64_irq_stub_92();
void pc64_irq_stub_93();
void pc64_irq_stub_94();
void pc64_irq_stub_95();
void pc64_irq_stub_96();
void pc64_irq_stub_97();
void pc64_irq_stub_98();
void pc64_irq_stub_99();
void pc64_irq_stub_100();
void pc64_irq_stub_101();
void pc64_irq_stub_102();
void pc64_irq_stub_103();
void pc64_irq_stub_104();
void pc64_irq_stub_105();
void pc64_irq_stub_106();
void pc64_irq_stub_107();
void pc64_irq_stub_108();
void pc64_irq_stub_109();
void pc64_irq_stub_110();
void pc64_irq_stub_111();
void pc64_irq_stub_112();
void pc64_irq_stub_113();
void pc64_irq_stub_114();
void pc64_irq_stub_115();
void pc64_irq_stub_116();
void pc64_irq_stub_117();
void pc64_irq_stub_118();
void pc64_irq_stub_119();
void pc64_irq_stub_120();
void pc64_irq_stub_121();
void pc64_irq_stub_122();
void pc64_irq_stub_123();
void pc64_irq_stub_124();
void pc64_irq_stub_125();
void pc64_irq_stub_126();
void pc64_irq_stub_127();
void pc64_irq_stub_128();
void pc64_irq_stub_129();
void pc64_irq_stub_130();
void pc64_irq_stub_131();
void pc64_irq_stub_132();
void pc64_irq_stub_133();
void pc64_irq_stub_134();
void pc64_irq_stub_135();
void pc64_irq_stub_136();
void pc64_irq_stub_137();
void pc64_irq_stub_138();
void pc64_irq_stub_139();
void pc64_irq_stub_140();
void pc64_irq_stub_141();
void pc64_irq_stub_142();
void pc64_irq_stub_143();
void pc64_irq_stub_144();
void pc64_irq_stub_145();
void pc64_irq_stub_146();
void pc64_irq_stub_147();
void pc64_irq_stub_148();
void pc64_irq_stub_149();
void pc64_irq_stub_150();
void pc64_irq_stub_151();
void pc64_irq_stub_152();
void pc64_irq_stub_153();
void pc64_irq_stub_154();
void pc64_irq_stub_155();
void pc64_irq_stub_156();
void pc64_irq_stub_157();
void pc64_irq_stub_158();
void pc64_irq_stub_159();
void pc64_irq_stub_160();
void pc64_irq_stub_161();
void pc64_irq_stub_162();
void pc64_irq_stub_163();
void pc64_irq_stub_164();
void pc64_irq_stub_165();
void pc64_irq_stub_166();
void pc64_irq_stub_167();
void pc64_irq_stub_168();
void pc64_irq_stub_169();
void pc64_irq_stub_170();
void pc64_irq_stub_171();
void pc64_irq_stub_172();
void pc64_irq_stub_173();
void pc64_irq_stub_174();
void pc64_irq_stub_175();
void pc64_irq_stub_176();
void pc64_irq_stub_177();
void pc64_irq_stub_178();
void pc64_irq_stub_179();
void pc64_irq_stub_180();
void pc64_irq_stub_181();
void pc64_irq_stub_182();
void pc64_irq_stub_183();
void pc64_irq_stub_184();
void pc64_irq_stub_185();
void pc64_irq_stub_186();
void pc64_irq_stub_187();
void pc64_irq_stub_188();
void pc64_irq_stub_189();
void pc64_irq_stub_190();
void pc64_irq_stub_191();
void pc64_irq_stub_192();
void pc64_irq_stub_193();
void pc64_irq_stub_194();
void pc64_irq_stub_195();
void pc64_irq_stub_196();
void pc64_irq_stub_197();
void pc64_irq_stub_198();
void pc64_irq_stub_199();
void pc64_irq_stub_200();
void pc64_irq_stub_201();
void pc64_irq_stub_202();
void pc64_irq_stub_203();
void pc64_irq_stub_204();
void pc64_irq_stub_205();
void pc64_irq_stub_206();
void pc64_irq_stub_207();
void pc64_irq_stub_208();
void pc64_irq_stub_209();
void pc64_irq_stub_210();
void pc64_irq_stub_211();
void pc64_irq_stub_212();
void pc64_irq_stub_213();
void pc64_irq_stub_214();
void pc64_irq_stub_215();
void pc64_irq_stub_216();
void pc64_irq_stub_217();
void pc64_irq_stub_218();
void pc64_irq_stub_219();
void pc64_irq_stub_220();
void pc64_irq_stub_221();
void pc64_irq_stub_222();
void pc64_irq_stub_223();
void pc64_irq_stub_224();
void pc64_irq_stub_225();
void pc64_irq_stub_226();
void pc64_irq_stub_227();
void pc64_irq_stub_228();
void pc64_irq_stub_229();
void pc64_irq_stub_230();
void pc64_irq_stub_231();
void pc64_irq_stub_232();
void pc64_irq_stub_233();
void pc64_irq_stub_234();
void pc64_irq_stub_235();
void pc64_irq_stub_236();
void pc64_irq_stub_237();
void pc64_irq_stub_238();
void pc64_irq_stub_239();
void pc64_irq_stub_240();
void pc64_irq_stub_241();
void pc64_irq_stub_242();
void pc64_irq_stub_243();
void pc64_irq_stub_244();
void pc64_irq_stub_245();
void pc64_irq_stub_246();
void pc64_irq_stub_247();
void pc64_irq_stub_248();
void pc64_irq_stub_249();
void pc64_irq_stub_250();
void pc64_irq_stub_251();
void pc64_irq_stub_252();
void pc64_irq_stub_253();
void pc64_irq_stub_254();
void pc64_irq_stub_255();

/**
 * Define an array of all irq stubs. Index 0 corresponds to the first stub, so to convert a vector
 * number to the corresponding interrupt handler, subtract 32.
 */
static void(* const kIrqStubTable[])() = {
    pc64_irq_stub_32,
    pc64_irq_stub_33,
    pc64_irq_stub_34,
    pc64_irq_stub_35,
    pc64_irq_stub_36,
    pc64_irq_stub_37,
    pc64_irq_stub_38,
    pc64_irq_stub_39,
    pc64_irq_stub_40,
    pc64_irq_stub_41,
    pc64_irq_stub_42,
    pc64_irq_stub_43,
    pc64_irq_stub_44,
    pc64_irq_stub_45,
    pc64_irq_stub_46,
    pc64_irq_stub_47,
    pc64_irq_stub_48,
    pc64_irq_stub_49,
    pc64_irq_stub_50,
    pc64_irq_stub_51,
    pc64_irq_stub_52,
    pc64_irq_stub_53,
    pc64_irq_stub_54,
    pc64_irq_stub_55,
    pc64_irq_stub_56,
    pc64_irq_stub_57,
    pc64_irq_stub_58,
    pc64_irq_stub_59,
    pc64_irq_stub_60,
    pc64_irq_stub_61,
    pc64_irq_stub_62,
    pc64_irq_stub_63,
    pc64_irq_stub_64,
    pc64_irq_stub_65,
    pc64_irq_stub_66,
    pc64_irq_stub_67,
    pc64_irq_stub_68,
    pc64_irq_stub_69,
    pc64_irq_stub_70,
    pc64_irq_stub_71,
    pc64_irq_stub_72,
    pc64_irq_stub_73,
    pc64_irq_stub_74,
    pc64_irq_stub_75,
    pc64_irq_stub_76,
    pc64_irq_stub_77,
    pc64_irq_stub_78,
    pc64_irq_stub_79,
    pc64_irq_stub_80,
    pc64_irq_stub_81,
    pc64_irq_stub_82,
    pc64_irq_stub_83,
    pc64_irq_stub_84,
    pc64_irq_stub_85,
    pc64_irq_stub_86,
    pc64_irq_stub_87,
    pc64_irq_stub_88,
    pc64_irq_stub_89,
    pc64_irq_stub_90,
    pc64_irq_stub_91,
    pc64_irq_stub_92,
    pc64_irq_stub_93,
    pc64_irq_stub_94,
    pc64_irq_stub_95,
    pc64_irq_stub_96,
    pc64_irq_stub_97,
    pc64_irq_stub_98,
    pc64_irq_stub_99,
    pc64_irq_stub_100,
    pc64_irq_stub_101,
    pc64_irq_stub_102,
    pc64_irq_stub_103,
    pc64_irq_stub_104,
    pc64_irq_stub_105,
    pc64_irq_stub_106,
    pc64_irq_stub_107,
    pc64_irq_stub_108,
    pc64_irq_stub_109,
    pc64_irq_stub_110,
    pc64_irq_stub_111,
    pc64_irq_stub_112,
    pc64_irq_stub_113,
    pc64_irq_stub_114,
    pc64_irq_stub_115,
    pc64_irq_stub_116,
    pc64_irq_stub_117,
    pc64_irq_stub_118,
    pc64_irq_stub_119,
    pc64_irq_stub_120,
    pc64_irq_stub_121,
    pc64_irq_stub_122,
    pc64_irq_stub_123,
    pc64_irq_stub_124,
    pc64_irq_stub_125,
    pc64_irq_stub_126,
    pc64_irq_stub_127,
    pc64_irq_stub_128,
    pc64_irq_stub_129,
    pc64_irq_stub_130,
    pc64_irq_stub_131,
    pc64_irq_stub_132,
    pc64_irq_stub_133,
    pc64_irq_stub_134,
    pc64_irq_stub_135,
    pc64_irq_stub_136,
    pc64_irq_stub_137,
    pc64_irq_stub_138,
    pc64_irq_stub_139,
    pc64_irq_stub_140,
    pc64_irq_stub_141,
    pc64_irq_stub_142,
    pc64_irq_stub_143,
    pc64_irq_stub_144,
    pc64_irq_stub_145,
    pc64_irq_stub_146,
    pc64_irq_stub_147,
    pc64_irq_stub_148,
    pc64_irq_stub_149,
    pc64_irq_stub_150,
    pc64_irq_stub_151,
    pc64_irq_stub_152,
    pc64_irq_stub_153,
    pc64_irq_stub_154,
    pc64_irq_stub_155,
    pc64_irq_stub_156,
    pc64_irq_stub_157,
    pc64_irq_stub_158,
    pc64_irq_stub_159,
    pc64_irq_stub_160,
    pc64_irq_stub_161,
    pc64_irq_stub_162,
    pc64_irq_stub_163,
    pc64_irq_stub_164,
    pc64_irq_stub_165,
    pc64_irq_stub_166,
    pc64_irq_stub_167,
    pc64_irq_stub_168,
    pc64_irq_stub_169,
    pc64_irq_stub_170,
    pc64_irq_stub_171,
    pc64_irq_stub_172,
    pc64_irq_stub_173,
    pc64_irq_stub_174,
    pc64_irq_stub_175,
    pc64_irq_stub_176,
    pc64_irq_stub_177,
    pc64_irq_stub_178,
    pc64_irq_stub_179,
    pc64_irq_stub_180,
    pc64_irq_stub_181,
    pc64_irq_stub_182,
    pc64_irq_stub_183,
    pc64_irq_stub_184,
    pc64_irq_stub_185,
    pc64_irq_stub_186,
    pc64_irq_stub_187,
    pc64_irq_stub_188,
    pc64_irq_stub_189,
    pc64_irq_stub_190,
    pc64_irq_stub_191,
    pc64_irq_stub_192,
    pc64_irq_stub_193,
    pc64_irq_stub_194,
    pc64_irq_stub_195,
    pc64_irq_stub_196,
    pc64_irq_stub_197,
    pc64_irq_stub_198,
    pc64_irq_stub_199,
    pc64_irq_stub_200,
    pc64_irq_stub_201,
    pc64_irq_stub_202,
    pc64_irq_stub_203,
    pc64_irq_stub_204,
    pc64_irq_stub_205,
    pc64_irq_stub_206,
    pc64_irq_stub_207,
    pc64_irq_stub_208,
    pc64_irq_stub_209,
    pc64_irq_stub_210,
    pc64_irq_stub_211,
    pc64_irq_stub_212,
    pc64_irq_stub_213,
    pc64_irq_stub_214,
    pc64_irq_stub_215,
    pc64_irq_stub_216,
    pc64_irq_stub_217,
    pc64_irq_stub_218,
    pc64_irq_stub_219,
    pc64_irq_stub_220,
    pc64_irq_stub_221,
    pc64_irq_stub_222,
    pc64_irq_stub_223,
    pc64_irq_stub_224,
    pc64_irq_stub_225,
    pc64_irq_stub_226,
    pc64_irq_stub_227,
    pc64_irq_stub_228,
    pc64_irq_stub_229,
    pc64_irq_stub_230,
    pc64_irq_stub_231,
    pc64_irq_stub_232,
    pc64_irq_stub_233,
    pc64_irq_stub_234,
    pc64_irq_stub_235,
    pc64_irq_stub_236,
    pc64_irq_stub_237,
    pc64_irq_stub_238,
    pc64_irq_stub_239,
    pc64_irq_stub_240,
    pc64_irq_stub_241,
    pc64_irq_stub_242,
    pc64_irq_stub_243,
    pc64_irq_stub_244,
    pc64_irq_stub_245,
    pc64_irq_stub_246,
    pc64_irq_stub_247,
    pc64_irq_stub_248,
    pc64_irq_stub_249,
    pc64_irq_stub_250,
    pc64_irq_stub_251,
    pc64_irq_stub_252,
    pc64_irq_stub_253,
    pc64_irq_stub_254,
    pc64_irq_stub_255,
};

#ifdef __cplusplus
}
#endif

#endif
