| 65 | ((entry >> 16) & 0x1u64) as u8 |
| 66 | } |
| 67 | fn destination_field(entry: RedirectionTableEntry) -> u8 { |
| 68 | // When the destination mode is physical, the destination field should only |
| 69 | // be defined through bits 56-59, as defined in the IOAPIC specification. |
| 70 | // But from the APIC specification, the APIC ID is always defined on 8 bits |
| 71 | // no matter which destination mode is selected. That's why we always |
| 72 | // retrieve the destination field based on bits 56-63. |
| 73 | ((entry >> 56) & 0xffu64) as u8 |
| 74 | } |
| 75 | fn set_delivery_status(entry: &mut RedirectionTableEntry, val: u8) { |
| 76 | // Clear bit 12 |
| 77 | *entry &= 0xffff_ffff_ffff_efff; |