Skip to content

Commit 5efea6a

Browse files
committed
Page table are now indexed with u8 instead of usize
Since #319
1 parent ea00bfd commit 5efea6a

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/structures/idt.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1394,15 +1394,15 @@ macro_rules! set_general_handler_entry {
13941394
extern "x86-interrupt" fn handler(frame: $crate::structures::idt::InterruptStackFrame) {
13951395
$handler(frame, $idx.into(), None);
13961396
}
1397-
$idt[$idx as usize].set_handler_fn(handler);
1397+
$idt[$idx].set_handler_fn(handler);
13981398
}};
13991399
}
14001400

14011401
#[cfg(test)]
14021402
mod test {
14031403
use super::*;
14041404

1405-
fn entry_present(idt: &InterruptDescriptorTable, index: usize) -> bool {
1405+
fn entry_present(idt: &InterruptDescriptorTable, index: u8) -> bool {
14061406
let options = match index {
14071407
8 => &idt.double_fault.options,
14081408
10 => &idt.invalid_tss.options,
@@ -1413,13 +1413,13 @@ mod test {
14131413
15 => &idt.reserved_1.options,
14141414
17 => &idt.alignment_check.options,
14151415
18 => &idt.machine_check.options,
1416-
i @ 21..=28 => &idt.reserved_2[i - 21].options,
1416+
i @ 21..=28 => &idt.reserved_2[usize::from(i) - 21].options,
14171417
29 => &idt.vmm_communication_exception.options,
14181418
30 => &idt.security_exception.options,
14191419
31 => &idt.reserved_3.options,
14201420
other => &idt[other].options,
14211421
};
1422-
options.0.get_bit(15)
1422+
options.bits.get_bit(15)
14231423
}
14241424

14251425
#[test]
@@ -1446,31 +1446,31 @@ mod test {
14461446

14471447
let mut idt = InterruptDescriptorTable::new();
14481448
set_general_handler!(&mut idt, general_handler, 0);
1449-
for i in 0..256 {
1449+
for i in 0..=255 {
14501450
if i == 0 {
14511451
assert!(entry_present(&idt, i));
14521452
} else {
14531453
assert!(!entry_present(&idt, i));
14541454
}
14551455
}
14561456
set_general_handler!(&mut idt, general_handler, 14);
1457-
for i in 0..256 {
1457+
for i in 0..=255 {
14581458
if i == 0 || i == 14 {
14591459
assert!(entry_present(&idt, i));
14601460
} else {
14611461
assert!(!entry_present(&idt, i));
14621462
}
14631463
}
14641464
set_general_handler!(&mut idt, general_handler, 32..64);
1465-
for i in 1..256 {
1465+
for i in 1..=255 {
14661466
if i == 0 || i == 14 || (32..64).contains(&i) {
14671467
assert!(entry_present(&idt, i), "{}", i);
14681468
} else {
14691469
assert!(!entry_present(&idt, i));
14701470
}
14711471
}
14721472
set_general_handler!(&mut idt, general_handler);
1473-
for i in 0..256 {
1473+
for i in 0..=255 {
14741474
if i == 15 || i == 31 || (21..=28).contains(&i) {
14751475
// reserved entries should not be set
14761476
assert!(!entry_present(&idt, i));

0 commit comments

Comments
 (0)