@@ -108,43 +108,43 @@ pub fn init(double_fault_stack_top_unusable: Option<memory::VirtualAddress>) {
108
108
109
109
110
110
/// exception 0x00
111
- pub extern "x86-interrupt" fn divide_error_handler ( stack_frame : InterruptStackFrame ) {
111
+ extern "x86-interrupt" fn divide_error_handler ( stack_frame : InterruptStackFrame ) {
112
112
println_raw ! ( "\n EXCEPTION (early): DIVIDE ERROR\n {:#X?}" , stack_frame) ;
113
113
loop { }
114
114
}
115
115
116
116
/// exception 0x01
117
- pub extern "x86-interrupt" fn debug_handler ( stack_frame : InterruptStackFrame ) {
117
+ extern "x86-interrupt" fn debug_handler ( stack_frame : InterruptStackFrame ) {
118
118
println_raw ! ( "\n EXCEPTION (early): DEBUG EXCEPTION\n {:#X?}" , stack_frame) ;
119
119
// don't halt here, this isn't a fatal/permanent failure, just a brief pause.
120
120
}
121
121
122
122
/// exception 0x02
123
- pub extern "x86-interrupt" fn nmi_handler ( stack_frame : InterruptStackFrame ) {
123
+ extern "x86-interrupt" fn nmi_handler ( stack_frame : InterruptStackFrame ) {
124
124
println_raw ! ( "\n EXCEPTION (early): NON-MASKABLE INTERRUPT\n {:#X?}" , stack_frame) ;
125
125
loop { }
126
126
}
127
127
128
128
/// exception 0x03
129
- pub extern "x86-interrupt" fn breakpoint_handler ( stack_frame : InterruptStackFrame ) {
129
+ extern "x86-interrupt" fn breakpoint_handler ( stack_frame : InterruptStackFrame ) {
130
130
println_raw ! ( "\n EXCEPTION (early): BREAKPOINT\n {:#X?}" , stack_frame) ;
131
131
// don't halt here, this isn't a fatal/permanent failure, just a brief pause.
132
132
}
133
133
134
134
/// exception 0x04
135
- pub extern "x86-interrupt" fn overflow_handler ( stack_frame : InterruptStackFrame ) {
135
+ extern "x86-interrupt" fn overflow_handler ( stack_frame : InterruptStackFrame ) {
136
136
println_raw ! ( "\n EXCEPTION (early): OVERFLOW\n {:#X?}" , stack_frame) ;
137
137
loop { }
138
138
}
139
139
140
140
/// exception 0x05
141
- pub extern "x86-interrupt" fn bound_range_exceeded_handler ( stack_frame : InterruptStackFrame ) {
141
+ extern "x86-interrupt" fn bound_range_exceeded_handler ( stack_frame : InterruptStackFrame ) {
142
142
println_raw ! ( "\n EXCEPTION (early): BOUND RANGE EXCEEDED\n {:#X?}" , stack_frame) ;
143
143
loop { }
144
144
}
145
145
146
146
/// exception 0x06
147
- pub extern "x86-interrupt" fn invalid_opcode_handler ( stack_frame : InterruptStackFrame ) {
147
+ extern "x86-interrupt" fn invalid_opcode_handler ( stack_frame : InterruptStackFrame ) {
148
148
println_raw ! ( "\n EXCEPTION (early): INVALID OPCODE\n {:#X?}" , stack_frame) ;
149
149
loop { }
150
150
}
@@ -153,44 +153,46 @@ pub extern "x86-interrupt" fn invalid_opcode_handler(stack_frame: InterruptStack
153
153
///
154
154
/// For more information about "spurious interrupts",
155
155
/// see [here](http://wiki.osdev.org/I_Cant_Get_Interrupts_Working#I_keep_getting_an_IRQ7_for_no_apparent_reason).
156
- pub extern "x86-interrupt" fn device_not_available_handler ( stack_frame : InterruptStackFrame ) {
156
+ extern "x86-interrupt" fn device_not_available_handler ( stack_frame : InterruptStackFrame ) {
157
157
println_raw ! ( "\n EXCEPTION (early): DEVICE NOT AVAILABLE\n {:#X?}" , stack_frame) ;
158
158
loop { }
159
159
}
160
160
161
161
/// exception 0x08
162
+ ///
163
+ /// Note: this is `pub` so we can access it within `interrupts::init()`.
162
164
pub extern "x86-interrupt" fn double_fault_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) -> ! {
163
165
println_raw ! ( "\n EXCEPTION (early): DOUBLE FAULT\n {:#X?}\n Error code: {:#b}" , stack_frame, error_code) ;
164
166
println_raw ! ( "\n Note: this may be caused by stack overflow. Is the size of the initial_bsp_stack is too small?" ) ;
165
167
loop { }
166
168
}
167
169
168
170
/// exception 0x0A
169
- pub extern "x86-interrupt" fn invalid_tss_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
171
+ extern "x86-interrupt" fn invalid_tss_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
170
172
println_raw ! ( "\n EXCEPTION (early): INVALID TSS\n {:#X?}\n Error code: {:#b}" , stack_frame, error_code) ;
171
173
loop { }
172
174
}
173
175
174
176
/// exception 0x0B
175
- pub extern "x86-interrupt" fn segment_not_present_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
177
+ extern "x86-interrupt" fn segment_not_present_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
176
178
println_raw ! ( "\n EXCEPTION (early): SEGMENT NOT PRESENT\n {:#X?}\n Error code: {:#b}" , stack_frame, error_code) ;
177
179
loop { }
178
180
}
179
181
180
182
/// exception 0x0C
181
- pub extern "x86-interrupt" fn stack_segment_fault_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
183
+ extern "x86-interrupt" fn stack_segment_fault_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
182
184
println_raw ! ( "\n EXCEPTION (early): STACK SEGMENT FAULT\n {:#X?}\n Error code: {:#b}" , stack_frame, error_code) ;
183
185
loop { }
184
186
}
185
187
186
188
/// exception 0x0D
187
- pub extern "x86-interrupt" fn general_protection_fault_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
189
+ extern "x86-interrupt" fn general_protection_fault_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
188
190
println_raw ! ( "\n EXCEPTION (early): GENERAL PROTECTION FAULT\n {:#X?}\n Error code: {:#b}" , stack_frame, error_code) ;
189
191
loop { }
190
192
}
191
193
192
194
/// exception 0x0E
193
- pub extern "x86-interrupt" fn early_page_fault_handler ( stack_frame : InterruptStackFrame , error_code : PageFaultErrorCode ) {
195
+ extern "x86-interrupt" fn early_page_fault_handler ( stack_frame : InterruptStackFrame , error_code : PageFaultErrorCode ) {
194
196
let accessed_address = x86_64:: registers:: control:: Cr2 :: read_raw ( ) ;
195
197
println_raw ! ( "\n EXCEPTION (early): PAGE FAULT (early handler) while accessing {:#x}\n \
196
198
error code: {:?}\n {:#X?}",
@@ -217,43 +219,43 @@ pub extern "x86-interrupt" fn early_page_fault_handler(stack_frame: InterruptSta
217
219
}
218
220
219
221
/// exception 0x10
220
- pub extern "x86-interrupt" fn x87_floating_point_handler ( stack_frame : InterruptStackFrame ) {
222
+ extern "x86-interrupt" fn x87_floating_point_handler ( stack_frame : InterruptStackFrame ) {
221
223
println_raw ! ( "\n EXCEPTION (early): x87 FLOATING POINT\n {:#X?}" , stack_frame) ;
222
224
loop { }
223
225
}
224
226
225
227
/// exception 0x11
226
- pub extern "x86-interrupt" fn alignment_check_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
228
+ extern "x86-interrupt" fn alignment_check_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
227
229
println_raw ! ( "\n EXCEPTION (early): ALIGNMENT CHECK\n {:#X?}\n Error code: {:#b}" , stack_frame, error_code) ;
228
230
loop { }
229
231
}
230
232
231
233
/// exception 0x12
232
- pub extern "x86-interrupt" fn machine_check_handler ( stack_frame : InterruptStackFrame ) -> ! {
234
+ extern "x86-interrupt" fn machine_check_handler ( stack_frame : InterruptStackFrame ) -> ! {
233
235
println_raw ! ( "\n EXCEPTION (early): MACHINE CHECK\n {:#X?}" , stack_frame) ;
234
236
loop { }
235
237
}
236
238
237
239
/// exception 0x13
238
- pub extern "x86-interrupt" fn simd_floating_point_handler ( stack_frame : InterruptStackFrame ) {
240
+ extern "x86-interrupt" fn simd_floating_point_handler ( stack_frame : InterruptStackFrame ) {
239
241
println_raw ! ( "\n EXCEPTION (early): SIMD FLOATING POINT\n {:#X?}" , stack_frame) ;
240
242
loop { }
241
243
}
242
244
243
245
/// exception 0x14
244
- pub extern "x86-interrupt" fn virtualization_handler ( stack_frame : InterruptStackFrame ) {
246
+ extern "x86-interrupt" fn virtualization_handler ( stack_frame : InterruptStackFrame ) {
245
247
println_raw ! ( "\n EXCEPTION (early): VIRTUALIZATION\n {:#X?}" , stack_frame) ;
246
248
loop { }
247
249
}
248
250
249
251
/// exception 0x1D
250
- pub extern "x86-interrupt" fn vmm_communication_exception_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
252
+ extern "x86-interrupt" fn vmm_communication_exception_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
251
253
println_raw ! ( "\n EXCEPTION (early): VMM COMMUNICATION EXCEPTION\n {:#X?}\n Error code: {:#b}" , stack_frame, error_code) ;
252
254
loop { }
253
255
}
254
256
255
257
/// exception 0x1E
256
- pub extern "x86-interrupt" fn security_exception_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
258
+ extern "x86-interrupt" fn security_exception_handler ( stack_frame : InterruptStackFrame , error_code : u64 ) {
257
259
println_raw ! ( "\n EXCEPTION (early): SECURITY EXCEPTION\n {:#X?}\n Error code: {:#b}" , stack_frame, error_code) ;
258
260
loop { }
259
261
}
0 commit comments