x86: irq asm handlers for non-PIC irqs
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 7 Mar 2014 07:23:01 +0000 (23:23 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 7 Mar 2014 07:23:01 +0000 (23:23 -0800)
The APICS (IO, etc) can generate vectors beyond 47, so we need
IRQ_HANDLER stubs for them.

This was actually a fun commit: vim macro and CTRL-A to increment.

kern/arch/x86/trapentry32.S
kern/arch/x86/trapentry64.S

index 3d7b4b7..fc1937e 100644 (file)
@@ -160,6 +160,190 @@ IRQ_HANDLER(IRQ12, 44)
 IRQ_HANDLER(IRQ13, 45)
 IRQ_HANDLER(IRQ14, 46)
 IRQ_HANDLER(IRQ15, 47)
+/* IOAPIC/MSI vectors */
+IRQ_HANDLER(IRQ16, 48)
+IRQ_HANDLER(IRQ17, 49)
+IRQ_HANDLER(IRQ18, 50)
+IRQ_HANDLER(IRQ19, 51)
+IRQ_HANDLER(IRQ20, 52)
+IRQ_HANDLER(IRQ21, 53)
+IRQ_HANDLER(IRQ22, 54)
+IRQ_HANDLER(IRQ23, 55)
+IRQ_HANDLER(IRQ24, 56)
+IRQ_HANDLER(IRQ25, 57)
+IRQ_HANDLER(IRQ26, 58)
+IRQ_HANDLER(IRQ27, 59)
+IRQ_HANDLER(IRQ28, 60)
+IRQ_HANDLER(IRQ29, 61)
+IRQ_HANDLER(IRQ30, 62)
+IRQ_HANDLER(IRQ31, 63)
+IRQ_HANDLER(IRQ32, 64)
+IRQ_HANDLER(IRQ33, 65)
+IRQ_HANDLER(IRQ34, 66)
+IRQ_HANDLER(IRQ35, 67)
+IRQ_HANDLER(IRQ36, 68)
+IRQ_HANDLER(IRQ37, 69)
+IRQ_HANDLER(IRQ38, 70)
+IRQ_HANDLER(IRQ39, 71)
+IRQ_HANDLER(IRQ40, 72)
+IRQ_HANDLER(IRQ41, 73)
+IRQ_HANDLER(IRQ42, 74)
+IRQ_HANDLER(IRQ43, 75)
+IRQ_HANDLER(IRQ44, 76)
+IRQ_HANDLER(IRQ45, 77)
+IRQ_HANDLER(IRQ46, 78)
+IRQ_HANDLER(IRQ47, 79)
+IRQ_HANDLER(IRQ48, 80)
+IRQ_HANDLER(IRQ49, 81)
+IRQ_HANDLER(IRQ50, 82)
+IRQ_HANDLER(IRQ51, 83)
+IRQ_HANDLER(IRQ52, 84)
+IRQ_HANDLER(IRQ53, 85)
+IRQ_HANDLER(IRQ54, 86)
+IRQ_HANDLER(IRQ55, 87)
+IRQ_HANDLER(IRQ56, 88)
+IRQ_HANDLER(IRQ57, 89)
+IRQ_HANDLER(IRQ58, 90)
+IRQ_HANDLER(IRQ59, 91)
+IRQ_HANDLER(IRQ60, 92)
+IRQ_HANDLER(IRQ61, 93)
+IRQ_HANDLER(IRQ62, 94)
+IRQ_HANDLER(IRQ63, 95)
+IRQ_HANDLER(IRQ64, 96)
+IRQ_HANDLER(IRQ65, 97)
+IRQ_HANDLER(IRQ66, 98)
+IRQ_HANDLER(IRQ67, 99)
+IRQ_HANDLER(IRQ68, 100)
+IRQ_HANDLER(IRQ69, 101)
+IRQ_HANDLER(IRQ70, 102)
+IRQ_HANDLER(IRQ71, 103)
+IRQ_HANDLER(IRQ72, 104)
+IRQ_HANDLER(IRQ73, 105)
+IRQ_HANDLER(IRQ74, 106)
+IRQ_HANDLER(IRQ75, 107)
+IRQ_HANDLER(IRQ76, 108)
+IRQ_HANDLER(IRQ77, 109)
+IRQ_HANDLER(IRQ78, 110)
+IRQ_HANDLER(IRQ79, 111)
+IRQ_HANDLER(IRQ80, 112)
+IRQ_HANDLER(IRQ81, 113)
+IRQ_HANDLER(IRQ82, 114)
+IRQ_HANDLER(IRQ83, 115)
+IRQ_HANDLER(IRQ84, 116)
+IRQ_HANDLER(IRQ85, 117)
+IRQ_HANDLER(IRQ86, 118)
+IRQ_HANDLER(IRQ87, 119)
+IRQ_HANDLER(IRQ88, 120)
+IRQ_HANDLER(IRQ89, 121)
+IRQ_HANDLER(IRQ90, 122)
+IRQ_HANDLER(IRQ91, 123)
+IRQ_HANDLER(IRQ92, 124)
+IRQ_HANDLER(IRQ93, 125)
+IRQ_HANDLER(IRQ94, 126)
+IRQ_HANDLER(IRQ95, 127)
+IRQ_HANDLER(IRQ96, 128)
+IRQ_HANDLER(IRQ97, 129)
+IRQ_HANDLER(IRQ98, 130)
+IRQ_HANDLER(IRQ99, 131)
+IRQ_HANDLER(IRQ100, 132)
+IRQ_HANDLER(IRQ101, 133)
+IRQ_HANDLER(IRQ102, 134)
+IRQ_HANDLER(IRQ103, 135)
+IRQ_HANDLER(IRQ104, 136)
+IRQ_HANDLER(IRQ105, 137)
+IRQ_HANDLER(IRQ106, 138)
+IRQ_HANDLER(IRQ107, 139)
+IRQ_HANDLER(IRQ108, 140)
+IRQ_HANDLER(IRQ109, 141)
+IRQ_HANDLER(IRQ110, 142)
+IRQ_HANDLER(IRQ111, 143)
+IRQ_HANDLER(IRQ112, 144)
+IRQ_HANDLER(IRQ113, 145)
+IRQ_HANDLER(IRQ114, 146)
+IRQ_HANDLER(IRQ115, 147)
+IRQ_HANDLER(IRQ116, 148)
+IRQ_HANDLER(IRQ117, 149)
+IRQ_HANDLER(IRQ118, 150)
+IRQ_HANDLER(IRQ119, 151)
+IRQ_HANDLER(IRQ120, 152)
+IRQ_HANDLER(IRQ121, 153)
+IRQ_HANDLER(IRQ122, 154)
+IRQ_HANDLER(IRQ123, 155)
+IRQ_HANDLER(IRQ124, 156)
+IRQ_HANDLER(IRQ125, 157)
+IRQ_HANDLER(IRQ126, 158)
+IRQ_HANDLER(IRQ127, 159)
+IRQ_HANDLER(IRQ128, 160)
+IRQ_HANDLER(IRQ129, 161)
+IRQ_HANDLER(IRQ130, 162)
+IRQ_HANDLER(IRQ131, 163)
+IRQ_HANDLER(IRQ132, 164)
+IRQ_HANDLER(IRQ133, 165)
+IRQ_HANDLER(IRQ134, 166)
+IRQ_HANDLER(IRQ135, 167)
+IRQ_HANDLER(IRQ136, 168)
+IRQ_HANDLER(IRQ137, 169)
+IRQ_HANDLER(IRQ138, 170)
+IRQ_HANDLER(IRQ139, 171)
+IRQ_HANDLER(IRQ140, 172)
+IRQ_HANDLER(IRQ141, 173)
+IRQ_HANDLER(IRQ142, 174)
+IRQ_HANDLER(IRQ143, 175)
+IRQ_HANDLER(IRQ144, 176)
+IRQ_HANDLER(IRQ145, 177)
+IRQ_HANDLER(IRQ146, 178)
+IRQ_HANDLER(IRQ147, 179)
+IRQ_HANDLER(IRQ148, 180)
+IRQ_HANDLER(IRQ149, 181)
+IRQ_HANDLER(IRQ150, 182)
+IRQ_HANDLER(IRQ151, 183)
+IRQ_HANDLER(IRQ152, 184)
+IRQ_HANDLER(IRQ153, 185)
+IRQ_HANDLER(IRQ154, 186)
+IRQ_HANDLER(IRQ155, 187)
+IRQ_HANDLER(IRQ156, 188)
+IRQ_HANDLER(IRQ157, 189)
+IRQ_HANDLER(IRQ158, 190)
+IRQ_HANDLER(IRQ159, 191)
+IRQ_HANDLER(IRQ160, 192)
+IRQ_HANDLER(IRQ161, 193)
+IRQ_HANDLER(IRQ162, 194)
+IRQ_HANDLER(IRQ163, 195)
+IRQ_HANDLER(IRQ164, 196)
+IRQ_HANDLER(IRQ165, 197)
+IRQ_HANDLER(IRQ166, 198)
+IRQ_HANDLER(IRQ167, 199)
+IRQ_HANDLER(IRQ168, 200)
+IRQ_HANDLER(IRQ169, 201)
+IRQ_HANDLER(IRQ170, 202)
+IRQ_HANDLER(IRQ171, 203)
+IRQ_HANDLER(IRQ172, 204)
+IRQ_HANDLER(IRQ173, 205)
+IRQ_HANDLER(IRQ174, 206)
+IRQ_HANDLER(IRQ175, 207)
+IRQ_HANDLER(IRQ176, 208)
+IRQ_HANDLER(IRQ177, 209)
+IRQ_HANDLER(IRQ178, 210)
+IRQ_HANDLER(IRQ179, 211)
+IRQ_HANDLER(IRQ180, 212)
+IRQ_HANDLER(IRQ181, 213)
+IRQ_HANDLER(IRQ182, 214)
+IRQ_HANDLER(IRQ183, 215)
+IRQ_HANDLER(IRQ184, 216)
+IRQ_HANDLER(IRQ185, 217)
+IRQ_HANDLER(IRQ186, 218)
+IRQ_HANDLER(IRQ187, 219)
+IRQ_HANDLER(IRQ188, 220)
+IRQ_HANDLER(IRQ189, 221)
+IRQ_HANDLER(IRQ190, 222)
+IRQ_HANDLER(IRQ191, 223)
+IRQ_HANDLER(IRQ192, 224)
+IRQ_HANDLER(IRQ193, 225)
+IRQ_HANDLER(IRQ194, 226)
+IRQ_HANDLER(IRQ195, 227)
+IRQ_HANDLER(IRQ196, 228)
+IRQ_HANDLER(IRQ197, 229)
+
 /* 25 general purpose vectors, for use by the LAPIC.  Can expand later. */
 IRQ_HANDLER(IRQ198, I_TESTING) # used in testing.c
 IRQ_HANDLER(IRQ199, 231)
index 62a3b23..0e1b165 100644 (file)
@@ -122,6 +122,190 @@ IRQ_HANDLER(IRQ12, 44)
 IRQ_HANDLER(IRQ13, 45)
 IRQ_HANDLER(IRQ14, 46)
 IRQ_HANDLER(IRQ15, 47)
+/* IOAPIC/MSI vectors */
+IRQ_HANDLER(IRQ16, 48)
+IRQ_HANDLER(IRQ17, 49)
+IRQ_HANDLER(IRQ18, 50)
+IRQ_HANDLER(IRQ19, 51)
+IRQ_HANDLER(IRQ20, 52)
+IRQ_HANDLER(IRQ21, 53)
+IRQ_HANDLER(IRQ22, 54)
+IRQ_HANDLER(IRQ23, 55)
+IRQ_HANDLER(IRQ24, 56)
+IRQ_HANDLER(IRQ25, 57)
+IRQ_HANDLER(IRQ26, 58)
+IRQ_HANDLER(IRQ27, 59)
+IRQ_HANDLER(IRQ28, 60)
+IRQ_HANDLER(IRQ29, 61)
+IRQ_HANDLER(IRQ30, 62)
+IRQ_HANDLER(IRQ31, 63)
+IRQ_HANDLER(IRQ32, 64)
+IRQ_HANDLER(IRQ33, 65)
+IRQ_HANDLER(IRQ34, 66)
+IRQ_HANDLER(IRQ35, 67)
+IRQ_HANDLER(IRQ36, 68)
+IRQ_HANDLER(IRQ37, 69)
+IRQ_HANDLER(IRQ38, 70)
+IRQ_HANDLER(IRQ39, 71)
+IRQ_HANDLER(IRQ40, 72)
+IRQ_HANDLER(IRQ41, 73)
+IRQ_HANDLER(IRQ42, 74)
+IRQ_HANDLER(IRQ43, 75)
+IRQ_HANDLER(IRQ44, 76)
+IRQ_HANDLER(IRQ45, 77)
+IRQ_HANDLER(IRQ46, 78)
+IRQ_HANDLER(IRQ47, 79)
+IRQ_HANDLER(IRQ48, 80)
+IRQ_HANDLER(IRQ49, 81)
+IRQ_HANDLER(IRQ50, 82)
+IRQ_HANDLER(IRQ51, 83)
+IRQ_HANDLER(IRQ52, 84)
+IRQ_HANDLER(IRQ53, 85)
+IRQ_HANDLER(IRQ54, 86)
+IRQ_HANDLER(IRQ55, 87)
+IRQ_HANDLER(IRQ56, 88)
+IRQ_HANDLER(IRQ57, 89)
+IRQ_HANDLER(IRQ58, 90)
+IRQ_HANDLER(IRQ59, 91)
+IRQ_HANDLER(IRQ60, 92)
+IRQ_HANDLER(IRQ61, 93)
+IRQ_HANDLER(IRQ62, 94)
+IRQ_HANDLER(IRQ63, 95)
+IRQ_HANDLER(IRQ64, 96)
+IRQ_HANDLER(IRQ65, 97)
+IRQ_HANDLER(IRQ66, 98)
+IRQ_HANDLER(IRQ67, 99)
+IRQ_HANDLER(IRQ68, 100)
+IRQ_HANDLER(IRQ69, 101)
+IRQ_HANDLER(IRQ70, 102)
+IRQ_HANDLER(IRQ71, 103)
+IRQ_HANDLER(IRQ72, 104)
+IRQ_HANDLER(IRQ73, 105)
+IRQ_HANDLER(IRQ74, 106)
+IRQ_HANDLER(IRQ75, 107)
+IRQ_HANDLER(IRQ76, 108)
+IRQ_HANDLER(IRQ77, 109)
+IRQ_HANDLER(IRQ78, 110)
+IRQ_HANDLER(IRQ79, 111)
+IRQ_HANDLER(IRQ80, 112)
+IRQ_HANDLER(IRQ81, 113)
+IRQ_HANDLER(IRQ82, 114)
+IRQ_HANDLER(IRQ83, 115)
+IRQ_HANDLER(IRQ84, 116)
+IRQ_HANDLER(IRQ85, 117)
+IRQ_HANDLER(IRQ86, 118)
+IRQ_HANDLER(IRQ87, 119)
+IRQ_HANDLER(IRQ88, 120)
+IRQ_HANDLER(IRQ89, 121)
+IRQ_HANDLER(IRQ90, 122)
+IRQ_HANDLER(IRQ91, 123)
+IRQ_HANDLER(IRQ92, 124)
+IRQ_HANDLER(IRQ93, 125)
+IRQ_HANDLER(IRQ94, 126)
+IRQ_HANDLER(IRQ95, 127)
+IRQ_HANDLER(IRQ96, 128)
+IRQ_HANDLER(IRQ97, 129)
+IRQ_HANDLER(IRQ98, 130)
+IRQ_HANDLER(IRQ99, 131)
+IRQ_HANDLER(IRQ100, 132)
+IRQ_HANDLER(IRQ101, 133)
+IRQ_HANDLER(IRQ102, 134)
+IRQ_HANDLER(IRQ103, 135)
+IRQ_HANDLER(IRQ104, 136)
+IRQ_HANDLER(IRQ105, 137)
+IRQ_HANDLER(IRQ106, 138)
+IRQ_HANDLER(IRQ107, 139)
+IRQ_HANDLER(IRQ108, 140)
+IRQ_HANDLER(IRQ109, 141)
+IRQ_HANDLER(IRQ110, 142)
+IRQ_HANDLER(IRQ111, 143)
+IRQ_HANDLER(IRQ112, 144)
+IRQ_HANDLER(IRQ113, 145)
+IRQ_HANDLER(IRQ114, 146)
+IRQ_HANDLER(IRQ115, 147)
+IRQ_HANDLER(IRQ116, 148)
+IRQ_HANDLER(IRQ117, 149)
+IRQ_HANDLER(IRQ118, 150)
+IRQ_HANDLER(IRQ119, 151)
+IRQ_HANDLER(IRQ120, 152)
+IRQ_HANDLER(IRQ121, 153)
+IRQ_HANDLER(IRQ122, 154)
+IRQ_HANDLER(IRQ123, 155)
+IRQ_HANDLER(IRQ124, 156)
+IRQ_HANDLER(IRQ125, 157)
+IRQ_HANDLER(IRQ126, 158)
+IRQ_HANDLER(IRQ127, 159)
+IRQ_HANDLER(IRQ128, 160)
+IRQ_HANDLER(IRQ129, 161)
+IRQ_HANDLER(IRQ130, 162)
+IRQ_HANDLER(IRQ131, 163)
+IRQ_HANDLER(IRQ132, 164)
+IRQ_HANDLER(IRQ133, 165)
+IRQ_HANDLER(IRQ134, 166)
+IRQ_HANDLER(IRQ135, 167)
+IRQ_HANDLER(IRQ136, 168)
+IRQ_HANDLER(IRQ137, 169)
+IRQ_HANDLER(IRQ138, 170)
+IRQ_HANDLER(IRQ139, 171)
+IRQ_HANDLER(IRQ140, 172)
+IRQ_HANDLER(IRQ141, 173)
+IRQ_HANDLER(IRQ142, 174)
+IRQ_HANDLER(IRQ143, 175)
+IRQ_HANDLER(IRQ144, 176)
+IRQ_HANDLER(IRQ145, 177)
+IRQ_HANDLER(IRQ146, 178)
+IRQ_HANDLER(IRQ147, 179)
+IRQ_HANDLER(IRQ148, 180)
+IRQ_HANDLER(IRQ149, 181)
+IRQ_HANDLER(IRQ150, 182)
+IRQ_HANDLER(IRQ151, 183)
+IRQ_HANDLER(IRQ152, 184)
+IRQ_HANDLER(IRQ153, 185)
+IRQ_HANDLER(IRQ154, 186)
+IRQ_HANDLER(IRQ155, 187)
+IRQ_HANDLER(IRQ156, 188)
+IRQ_HANDLER(IRQ157, 189)
+IRQ_HANDLER(IRQ158, 190)
+IRQ_HANDLER(IRQ159, 191)
+IRQ_HANDLER(IRQ160, 192)
+IRQ_HANDLER(IRQ161, 193)
+IRQ_HANDLER(IRQ162, 194)
+IRQ_HANDLER(IRQ163, 195)
+IRQ_HANDLER(IRQ164, 196)
+IRQ_HANDLER(IRQ165, 197)
+IRQ_HANDLER(IRQ166, 198)
+IRQ_HANDLER(IRQ167, 199)
+IRQ_HANDLER(IRQ168, 200)
+IRQ_HANDLER(IRQ169, 201)
+IRQ_HANDLER(IRQ170, 202)
+IRQ_HANDLER(IRQ171, 203)
+IRQ_HANDLER(IRQ172, 204)
+IRQ_HANDLER(IRQ173, 205)
+IRQ_HANDLER(IRQ174, 206)
+IRQ_HANDLER(IRQ175, 207)
+IRQ_HANDLER(IRQ176, 208)
+IRQ_HANDLER(IRQ177, 209)
+IRQ_HANDLER(IRQ178, 210)
+IRQ_HANDLER(IRQ179, 211)
+IRQ_HANDLER(IRQ180, 212)
+IRQ_HANDLER(IRQ181, 213)
+IRQ_HANDLER(IRQ182, 214)
+IRQ_HANDLER(IRQ183, 215)
+IRQ_HANDLER(IRQ184, 216)
+IRQ_HANDLER(IRQ185, 217)
+IRQ_HANDLER(IRQ186, 218)
+IRQ_HANDLER(IRQ187, 219)
+IRQ_HANDLER(IRQ188, 220)
+IRQ_HANDLER(IRQ189, 221)
+IRQ_HANDLER(IRQ190, 222)
+IRQ_HANDLER(IRQ191, 223)
+IRQ_HANDLER(IRQ192, 224)
+IRQ_HANDLER(IRQ193, 225)
+IRQ_HANDLER(IRQ194, 226)
+IRQ_HANDLER(IRQ195, 227)
+IRQ_HANDLER(IRQ196, 228)
+IRQ_HANDLER(IRQ197, 229)
+
 /* 25 general purpose vectors, for use by the LAPIC.  Can expand later. */
 IRQ_HANDLER(IRQ198, I_TESTING) # used in testing.c
 IRQ_HANDLER(IRQ199, 231)