Skip to content

Commit 9279f36

Browse files
committed
Reformatted respecting cargo clippy
1 parent 8f2570d commit 9279f36

File tree

4 files changed

+71
-67
lines changed

4 files changed

+71
-67
lines changed

docs/apic_example/src/apic.rs

Lines changed: 54 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -14,70 +14,71 @@ lazy_static! {
1414
#[allow(non_camel_case_types)]
1515
#[derive(Debug, Clone, Copy)]
1616
#[repr(isize)]
17+
#[allow(dead_code)]
1718
pub enum APICOffset {
1819
// RESERVED = 0x00
1920
// RESERVED = 0x10
20-
IR = 0x20, // ID Register
21-
VR = 0x30, // Version Register
21+
Ir = 0x20, // ID Register
22+
Vr = 0x30, // Version Register
2223
// RESERVED = 0x40
2324
// RESERVED = 0x50
2425
// RESERVED = 0x60
2526
// RESERVED = 0x70
26-
TPR = 0x80, // Text Priority Register
27-
APR = 0x90, // Arbitration Priority Register
28-
PPR = 0xA0, // Processor Priority Register
29-
EOI = 0xB0, // End of Interrupt
30-
RRD = 0xC0, // Remote Read Register
31-
LDR = 0xD0, // Logical Destination Register
32-
DFR = 0xE0, // DFR
33-
SVR = 0xF0, // Spurious (Interrupt) Vector Register
34-
ISR1 = 0x100, // In-Service Register 1
35-
ISR2 = 0x110, // In-Service Register 2
36-
ISR3 = 0x120, // In-Service Register 3
37-
ISR4 = 0x130, // In-Service Register 4
38-
ISR5 = 0x140, // In-Service Register 5
39-
ISR6 = 0x150, // In-Service Register 6
40-
ISR7 = 0x160, // In-Service Register 7
41-
ISR8 = 0x170, // In-Service Register 8
42-
TMR1 = 0x180, // Trigger Mode Register 1
43-
TMR2 = 0x190, // Trigger Mode Register 2
44-
TMR3 = 0x1A0, // Trigger Mode Register 3
45-
TMR4 = 0x1B0, // Trigger Mode Register 4
46-
TMR5 = 0x1C0, // Trigger Mode Register 5
47-
TMR6 = 0x1D0, // Trigger Mode Register 6
48-
TMR7 = 0x1E0, // Trigger Mode Register 7
49-
TMR8 = 0x1F0, // Trigger Mode Register 8
50-
IRR1 = 0x200, // Interrupt Request Register 1
51-
IRR2 = 0x210, // Interrupt Request Register 2
52-
IRR3 = 0x220, // Interrupt Request Register 3
53-
IRR4 = 0x230, // Interrupt Request Register 4
54-
IRR5 = 0x240, // Interrupt Request Register 5
55-
IRR6 = 0x250, // Interrupt Request Register 6
56-
IRR7 = 0x260, // Interrupt Request Register 7
57-
IRR8 = 0x270, // Interrupt Request Register 8
58-
ESR = 0x280, // Error Status Register
27+
Tpr = 0x80, // Text Priority Register
28+
Apr = 0x90, // Arbitration Priority Register
29+
Ppr = 0xA0, // Processor Priority Register
30+
Eoi = 0xB0, // End of Interrupt
31+
Rrd = 0xC0, // Remote Read Register
32+
Ldr = 0xD0, // Logical Destination Register
33+
Dfr = 0xE0, // DFR
34+
Svr = 0xF0, // Spurious (Interrupt) Vector Register
35+
Isr1 = 0x100, // In-Service Register 1
36+
Isr2 = 0x110, // In-Service Register 2
37+
Isr3 = 0x120, // In-Service Register 3
38+
Isr4 = 0x130, // In-Service Register 4
39+
Isr5 = 0x140, // In-Service Register 5
40+
Isr6 = 0x150, // In-Service Register 6
41+
Isr7 = 0x160, // In-Service Register 7
42+
Isr8 = 0x170, // In-Service Register 8
43+
Tmr1 = 0x180, // Trigger Mode Register 1
44+
Tmr2 = 0x190, // Trigger Mode Register 2
45+
Tmr3 = 0x1A0, // Trigger Mode Register 3
46+
Tmr4 = 0x1B0, // Trigger Mode Register 4
47+
Tmr5 = 0x1C0, // Trigger Mode Register 5
48+
Tmr6 = 0x1D0, // Trigger Mode Register 6
49+
Tmr7 = 0x1E0, // Trigger Mode Register 7
50+
Tmr8 = 0x1F0, // Trigger Mode Register 8
51+
Irr1 = 0x200, // Interrupt Request Register 1
52+
Irr2 = 0x210, // Interrupt Request Register 2
53+
Irr3 = 0x220, // Interrupt Request Register 3
54+
Irr4 = 0x230, // Interrupt Request Register 4
55+
Irr5 = 0x240, // Interrupt Request Register 5
56+
Irr6 = 0x250, // Interrupt Request Register 6
57+
Irr7 = 0x260, // Interrupt Request Register 7
58+
Irr8 = 0x270, // Interrupt Request Register 8
59+
Esr = 0x280, // Error Status Register
5960
// RESERVED = 0x290
6061
// RESERVED = 0x2A0
6162
// RESERVED = 0x2B0
6263
// RESERVED = 0x2C0
6364
// RESERVED = 0x2D0
6465
// RESERVED = 0x2E0
65-
LVT_CMCI = 0x2F0, // LVT Corrected Machine Check Interrupt (CMCI) Register
66-
ICR1 = 0x300, // Interrupt Command Register 1
67-
ICR2 = 0x310, // Interrupt Command Register 2
68-
LVT_T = 0x320, // LVT Timer Register
69-
LVT_TSR = 0x330, // LVT Thermal Sensor Register
70-
LVT_PMCR = 0x340, // LVT Performance Monitoring Counters Register
71-
LVT_LINT0 = 0x350, // LVT LINT0 Register
72-
LVT_LINT1 = 0x360, // LVT LINT1 Register
73-
LVT_E = 0x370, // LVT Error Register
74-
TICR = 0x380, // Initial Count Register (for Timer)
75-
TCCR = 0x390, // Current Count Register (for Timer)
66+
LvtCmci = 0x2F0, // LVT Corrected Machine Check Interrupt (CMCI) Register
67+
Icr1 = 0x300, // Interrupt Command Register 1
68+
Icr2 = 0x310, // Interrupt Command Register 2
69+
LvtT = 0x320, // LVT Timer Register
70+
LvtTsr = 0x330, // LVT Thermal Sensor Register
71+
LvtPmcr = 0x340, // LVT Performance Monitoring Counters Register
72+
LvtLint0 = 0x350, // LVT LINT0 Register
73+
LvtLint1 = 0x360, // LVT LINT1 Register
74+
LvtE = 0x370, // LVT Error Register
75+
Ticr = 0x380, // Initial Count Register (for Timer)
76+
Tccr = 0x390, // Current Count Register (for Timer)
7677
// RESERVED = 0x3A0
7778
// RESERVED = 0x3B0
7879
// RESERVED = 0x3C0
7980
// RESERVED = 0x3D0
80-
TDCR = 0x3E0, // Divide Configuration Register (for Timer)
81+
Tdcr = 0x3E0, // Divide Configuration Register (for Timer)
8182
// RESERVED = 0x3F0
8283
}
8384

@@ -186,21 +187,21 @@ unsafe fn init_local_apic(
186187
}
187188

188189
unsafe fn init_timer(lapic_pointer: *mut u32) {
189-
let svr = lapic_pointer.offset(APICOffset::SVR as isize / 4);
190+
let svr = lapic_pointer.offset(APICOffset::Svr as isize / 4);
190191
svr.write_volatile(svr.read_volatile() | 0x100); // Set bit 8
191192

192-
let lvt_lint1 = lapic_pointer.offset(APICOffset::LVT_LINT1 as isize / 4);
193+
let lvt_lint1 = lapic_pointer.offset(APICOffset::LvtT as isize / 4);
193194
lvt_lint1.write_volatile(0x20 | (1 << 17)); // Vector 0x20, periodic mode
194195

195-
let tdcr = lapic_pointer.offset(APICOffset::TDCR as isize / 4);
196+
let tdcr = lapic_pointer.offset(APICOffset::Tdcr as isize / 4);
196197
tdcr.write_volatile(0x3); // Divide by 16 mode
197198

198-
let ticr = lapic_pointer.offset(APICOffset::TICR as isize / 4);
199+
let ticr = lapic_pointer.offset(APICOffset::Ticr as isize / 4);
199200
ticr.write_volatile(0x100000); // An arbitrary value for the initial value of the timer
200201
}
201202

202203
unsafe fn init_keyboard(lapic_pointer: *mut u32) {
203-
let keyboard_register = lapic_pointer.offset(APICOffset::LVT_LINT1 as isize / 4);
204+
let keyboard_register = lapic_pointer.offset(APICOffset::LvtLint1 as isize / 4);
204205
keyboard_register.write_volatile(InterruptIndex::Keyboard as u8 as u32);
205206
}
206207

@@ -258,6 +259,6 @@ fn disable_pic() {
258259
pub fn end_interrupt() {
259260
unsafe {
260261
let lapic_ptr = LAPIC_ADDR.lock().address;
261-
lapic_ptr.offset(APICOffset::EOI as isize / 4).write_volatile(0);
262+
lapic_ptr.offset(APICOffset::Eoi as isize / 4).write_volatile(0);
262263
}
263264
}

docs/apic_example/src/gdt.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,10 @@ lazy_static! {
1313
let mut tss = TaskStateSegment::new();
1414
tss.interrupt_stack_table[DOUBLE_FAULT_IST_INDEX as usize] = {
1515
const STACK_SIZE: usize = 4096 * 5;
16-
static mut STACK: [u8; STACK_SIZE] = [0; STACK_SIZE];
16+
static STACK: [u8; STACK_SIZE] = [0; STACK_SIZE];
1717

18-
let stack_start = VirtAddr::from_ptr(unsafe { addr_of!(STACK) });
19-
let stack_end = stack_start + STACK_SIZE as u64;
20-
21-
stack_end
18+
let stack_start = VirtAddr::from_ptr( addr_of!(STACK) );
19+
stack_start + STACK_SIZE as u64 // stack_end
2220
};
2321
tss
2422
};

docs/apic_example/src/idt.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ use crate::apic;
22
use crate::gdt::DOUBLE_FAULT_IST_INDEX;
33
use lazy_static::lazy_static;
44
use log::info;
5+
use x86_64::instructions::hlt;
56
use x86_64::registers::control::Cr2;
67
use x86_64::structures::idt::{InterruptDescriptorTable, InterruptStackFrame, PageFaultErrorCode};
78

89
pub const PIC_1_OFFSET: u8 = 0x20;
9-
pub const PIC_2_OFFSET: u8 = PIC_1_OFFSET + 8;
10-
1110

1211
lazy_static! {
1312
pub static ref IDT: InterruptDescriptorTable = {
@@ -36,10 +35,6 @@ pub enum InterruptIndex {
3635
Keyboard,
3736
}
3837

39-
pub fn end_interrupt() {
40-
apic::end_interrupt();
41-
}
42-
4338
pub extern "x86-interrupt" fn handle_timer(_stack_frame: InterruptStackFrame) {
4439
// Handle logic
4540

@@ -53,7 +48,9 @@ pub extern "x86-interrupt" fn handle_breakpoint(stack_frame: InterruptStackFrame
5348
pub extern "x86-interrupt" fn handle_double_fault(stack_frame: InterruptStackFrame, _error_code: u64) -> ! {
5449
info!("\nDouble fault:\n{:#?}", stack_frame);
5550

56-
loop {}
51+
loop {
52+
hlt()
53+
}
5754
}
5855

5956
pub extern "x86-interrupt" fn handle_page_fault(stack_frame: InterruptStackFrame, error_code: PageFaultErrorCode) {
@@ -62,7 +59,9 @@ pub extern "x86-interrupt" fn handle_page_fault(stack_frame: InterruptStackFrame
6259
info!("ErrorCode : {:?}", error_code);
6360
info!("{:#?}", stack_frame);
6461

65-
loop {}
62+
loop {
63+
hlt()
64+
}
6665
}
6766

6867
pub extern "x86-interrupt" fn handle_keyboard(_stack_frame: InterruptStackFrame) {

docs/apic_example/src/main.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ mod apic;
88
mod idt;
99
mod gdt;
1010

11+
use x86_64::instructions::hlt;
1112
use crate::frame_allocator::BootInfoFrameAllocator;
1213
use bootloader_api::config::Mapping;
1314
use bootloader_api::{entry_point, BootInfo};
@@ -22,7 +23,7 @@ pub const CONFIG: bootloader_api::BootloaderConfig = {
2223

2324
entry_point!(kernel_main, config = &CONFIG);
2425

25-
pub fn kernel_main(boot_info: &'static mut BootInfo) {
26+
pub fn kernel_main(boot_info: &'static mut BootInfo) -> ! {
2627
let physical_memory_offset = VirtAddr::new(
2728
boot_info
2829
.physical_memory_offset
@@ -34,7 +35,12 @@ pub fn kernel_main(boot_info: &'static mut BootInfo) {
3435

3536
let rsdp: Option<u64> = boot_info.rsdp_addr.take();
3637

38+
gdt::init();
3739
unsafe {
3840
apic::init(rsdp.expect("Failed to get RSDP address") as usize, physical_memory_offset, &mut mapper, &mut frame_allocator);
3941
}
42+
43+
loop {
44+
hlt()
45+
}
4046
}

0 commit comments

Comments
 (0)