Skip to content

Assembly Routines

TSA_REENTRANT_CAPABILITY_DECLARE("irqs", IRQS_DISABLED) (2 declarations) source
§ struct __IRQS_DISABLED_ctx
§ struct __IRQS_DISABLED_ctx IRQS_DISABLED
uint8_t inb(uint16_t port)
source
uint16_t inw(uint16_t port)
source
uint32_t inl(uint16_t port)
source
void insb(uint16_t port, void *addr, uint32_t count)
source
void insw(uint16_t port, void *addr, uint32_t count)
source
void insl(uint16_t port, void *addr, uint32_t count)
source
void outb(uint16_t port, uint8_t value)
source
void outw(uint16_t port, uint16_t value)
source
void outl(uint16_t port, uint32_t value)
source
void outsw(uint16_t port, const void *addr, uint32_t count)
source
void outsb(uint16_t port, const void *addr, uint32_t count)
source
void outsl(uint16_t port, const void *addr, uint32_t count)
source
void cr8_write(uint64_t cr8)
source
uint64_t rdtsc(void)
source
uint64_t rdtsc_ordered(void)
source
void cpuid_count(
    uint32_t leaf,
    uint32_t subleaf,
    uint32_t *eax,
    uint32_t *ebx,
    uint32_t *ecx,
    uint32_t *edx
)
source
uint64_t cr0_read(void)
source
void cr0_write(uint64_t cr0)
source
uint64_t cr4_read(void)
source
void cr4_write(uint64_t cr4)
source
bool irqs_enabled(void)
source
void wrmsr(uint32_t msr, uint64_t value)
source
uint64_t rdmsr(uint32_t msr)
source
void io_port_wait(void)
source
void irq_enable(void)
source
void irq_disable(void)
source
void irq_enable_untracked(void)
source
bool irq_disable_save(void)
source
void irq_restore(bool was_enabled)
source
void irq_save_guard_exit(bool *was_enabled)
source
void tlb_invlpg(uint64_t virt)
source
uint64_t cr2_read(void)
source
uint64_t cr3_read(void)
source
void cr3_write(uint64_t cr3)
source
void tlb_flush(void)
source
void cpu_pause(void)
source
void cpu_halt(void)
source
void cpu_freeze(void)
source
void cpu_idle(void)
source

sti; hlt: ends the caller’s interrupts-off region

int bit_clz8(uint8_t a)
source
void cpu_memory_barrier(void)
source
void cpu_full_fence(void)
source
uint64_t rdtsc_after_stores(void)
source
uint64_t rdtsc_before_loads(void)
source
#define MSR_GS_BASE 0xC0000101
source
#define irq_save_guard()
source
Expansion
#define irq_save_guard() \
    cc_cleanup(irq_save_guard_exit) bool PP_CONCAT( \
        irq_save_guard_, __COUNTER__) = irq_disable_save()
#define irq_disable_guard()
source
Expansion
#define irq_disable_guard() irq_save_guard()