Skip to content
charmOS docs
Search
Ctrl
K
Cancel
GitHub
RSS
Auto
Auto
Light
Dark
Blog
Design
Guides
Guides
Command-Line Options
Reference
charmOS reference
ACPI
ACPI
ACPI CPU
C States
DMAR
HPET
I/O APIC
LAPIC
ACPI Multiple APIC Description Table
Print Utilities
uACPI interface
Assembly Routines
Block Devices
Block Cache
Block I/O Requests
Block Devices
I/O Request Scheduling
Boot
GDT
TSS
Bootstages
Bootstage Runtime Patched Conditionals
Command Line
Command Line Macro Internals
Colors
Compiler Functions
Console
Crash Engine
Kernel Panic Interface
Panic Scene Artwork
printf
Console report composer
Pinned status bar
Console terminal state
container_of macro
Cryptography
ChaCha20
Entropy Pool
PRNG
Data Structures
AVL tree
Bitmap
(Counting) Bloom Filter
CPU Mask
Deprecated doubly linked list
Hash list
ID Allocator (id_space)
Linked list
Locked list
Minheap
Multi-Producer Multi-Consumer Queue
Lockless MPSC singly linked list
Pairing heap
Deprecated queue
Radix Tree
Red-Black Interval Tree
Red black tree
Singly linked list
Splay tree
Single-Producer Single-Consumer Lock-Free FIFO
Treap (Randomized Binary Search Tree)
Debugging
Device Structure
Drivers
AHCI
ATA
e1000
IOMMU
IOMMU
VT-d
MMIO
nVME
PCI
timeout
USB
USB HID
kb
USB
xHCI
ELF
Error Codes
Filesystems
Filesystem Detection
devtmpfs
Ext2
FAT
GUID Partition Table
ISO9660
Master Boot Record
TMPFS
VFS
Global Variables
Code Fuzzing Injections
input
keyboard
Interrupts
Processor Exception Synchronous Work
Interrupt Descriptor Table
IRQs
Assertions
Limine
Linker
Kernel symbol table
symbols
Logging
Logo
Math Functions
abs
Alignment Macros
Bit Manipulation
Bit operations
Clamping Macros
div
Exponentially Weighted Moving Averages
Fixed Point Arithmetic
Extended Fixed Point Arithmetic
GCD and LCM
Hash Functions (primarily for hashmap/sets)
ilog2
Integer Square Root
Macro definitions for KB, MB, GB, TB
Levenshtein
Min and Max macros
Power of (integer)
Range Macros
Rounding up and Down
Sorting & Searching
To bits, to bytes
Memory Management
Address Ranges
Allocator API
Allocation Macros
Boot OOM
Anonymous Virtual Memory Area
Address sanitization
Anonymous VMA Chain
Bitmap allocator
Buddy allocator
Demand Page
DMA
Domain buddy allocator
elcm
Fixed Size Allocation
Folio
Higher Half Direct Mapping
Memory Descriptor
movealloc
NUMA
OOM handling
Page
Page Allocation
Page Fault
Page Table
Page Zeroer Subsystem
Physical memory manager
Reverse map
Simple allocator
Slab allocator
Slab Allocator Hint Mechanism
TLB
Virtual address allocator
Virtual Memory Area
Virtual memory management
VMM Mapping Macros
Multicore
Per-CPU structure
Domains
Per-CPU dynamic objects
Per-Domain dynamic objects
Per-Node dynamic objects
SMP initialization
Topology
NDJSON
nightmare
Nightmare test harness
Nightmare perturbation
Nightmare machine records
Parsing
Programmable Interval Timer
Profiling
Registry
rw_once
Scaled parameters
Scheduling and Multitasking
CLIMB framework
Scheduling domains
IRQLs
Stable
Scheduler Periodic Work
Real-time scheduling
Experimental
Realtime scheduling types
Scheduler
setjmp
Stack Depot
Stat series
Static Call
string
sync
Bit Spinlock
Completion
condvar
Lock Validation
Lock Validator Assertions
Lock Validation Layout Types
Mutex
Simple Mutex
Per-CPU Reference Counter
Queued Spinlock (MCS-based 4-byte qspinlock)
Raw Spinlock
RCU
Reader writer lock
semaphore
Sequence Lock
spinlock
turnstile
syscall
test
Test Assertion Macros
Test Export
Static Assertions & Compile-Time Checks
Tests
Kernel Text Patching
Threads and Work
APCs
APC Types
Asynchronous completion objects
Daemons
DPCs
IO waiting primitives
Thread queue
Thread reaper
Threads
Thread Enumerations and Types
Thread IDs
Workqueues
time
Clocks
Clock Event Device
Date Time
Generic Monotonic Timestamp
Clock Name Definitions
spin_sleep
Time
Timekeeper
Timer
timestamp
TSC
Types and Type Aliases
Frequency
Reference count
Type Enum
Type aliases
Watchdog
GitHub
RSS
Auto
Auto
Light
Dark
charmOS docs
On this page
Overview
OOM handling
include/mem/oom.h
View source
View on GitHub