| 226 | */ |
| 227 | |
| 228 | static uint32_t __nosanitizethread |
| 229 | lapic_read32(enum LAPIC_REGISTERS reg) |
| 230 | { |
| 231 | uint32_t res; |
| 232 | |
| 233 | if (x2apic_mode) { |
| 234 | res = rdmsr32(MSR_APIC_000 + reg); |
| 235 | } else { |
| 236 | res = *(volatile uint32_t *)(lapic_map + reg * LAPIC_MEM_MUL); |
| 237 | } |
| 238 | return (res); |
| 239 | } |
| 240 | |
| 241 | static void __nosanitizethread |
| 242 | lapic_write32(enum LAPIC_REGISTERS reg, uint32_t val) |
no test coverage detected