Assembly Routines
include/asm.h View source View on GitHubStructs
Section titled “Structs”__IRQS_DISABLED_ctx
Section titled “__IRQS_DISABLED_ctx” TSA_REENTRANT_CAPABILITY_DECLARE("irqs", IRQS_DISABLED) (2 declarations) source
§
struct __IRQS_DISABLED_ctx §
struct __IRQS_DISABLED_ctx IRQS_DISABLED Functions
Section titled “Functions”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 cr8_write
Section titled “cr8_write”void cr8_write(uint64_t cr8) source uint64_t rdtsc(void) source rdtsc_ordered
Section titled “rdtsc_ordered”uint64_t rdtsc_ordered(void) source cpuid_count
Section titled “cpuid_count”void cpuid_count(
uint32_t leaf,
uint32_t subleaf,
uint32_t *eax,
uint32_t *ebx,
uint32_t *ecx,
uint32_t *edx
) source cr0_read
Section titled “cr0_read”uint64_t cr0_read(void) source cr0_write
Section titled “cr0_write”void cr0_write(uint64_t cr0) source cr4_read
Section titled “cr4_read”uint64_t cr4_read(void) source cr4_write
Section titled “cr4_write”void cr4_write(uint64_t cr4) source irqs_enabled
Section titled “irqs_enabled”bool irqs_enabled(void) source void wrmsr(uint32_t msr, uint64_t value) source uint64_t rdmsr(uint32_t msr) source io_port_wait
Section titled “io_port_wait”void io_port_wait(void) source irq_enable
Section titled “irq_enable”void irq_enable(void) source irq_disable
Section titled “irq_disable”void irq_disable(void) source irq_enable_untracked
Section titled “irq_enable_untracked”void irq_enable_untracked(void) source irq_disable_save
Section titled “irq_disable_save”bool irq_disable_save(void) source irq_restore
Section titled “irq_restore”void irq_restore(bool was_enabled) source irq_save_guard_exit
Section titled “irq_save_guard_exit”void irq_save_guard_exit(bool *was_enabled) source tlb_invlpg
Section titled “tlb_invlpg”void tlb_invlpg(uint64_t virt) source cr2_read
Section titled “cr2_read”uint64_t cr2_read(void) source cr3_read
Section titled “cr3_read”uint64_t cr3_read(void) source cr3_write
Section titled “cr3_write”tlb_flush
Section titled “tlb_flush”void tlb_flush(void) source cpu_pause
Section titled “cpu_pause”void cpu_pause(void) source cpu_halt
Section titled “cpu_halt”void cpu_halt(void) source cpu_freeze
Section titled “cpu_freeze”void cpu_freeze(void) source cpu_idle
Section titled “cpu_idle”void cpu_idle(void) source sti; hlt: ends the caller’s interrupts-off region
bit_clz8
Section titled “bit_clz8”int bit_clz8(uint8_t a) source cpu_memory_barrier
Section titled “cpu_memory_barrier”void cpu_memory_barrier(void) source cpu_full_fence
Section titled “cpu_full_fence”void cpu_full_fence(void) source rdtsc_after_stores
Section titled “rdtsc_after_stores”uint64_t rdtsc_after_stores(void) source rdtsc_before_loads
Section titled “rdtsc_before_loads”uint64_t rdtsc_before_loads(void) source Macros
Section titled “Macros”MSR_GS_BASE
Section titled “MSR_GS_BASE”#define MSR_GS_BASE 0xC0000101 source irq_save_guard
Section titled “irq_save_guard”#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() irq_disable_guard
Section titled “irq_disable_guard”#define irq_disable_guard() source Expansion
#define irq_disable_guard() irq_save_guard()