Core API Documentation¶
This is the beginning of a manual for core kernel APIs. The conversion (and writing!) of documents for this manual is much appreciated!
This section has general and “core core” documentation. The first is a massive grab-bag of kerneldoc info left over from the docbook days; it should really be broken up someday when somebody finds the energy to do it.
Data structures and low-level utilities¶
Library functionality that is used throughout the kernel.
- Everything you never wanted to know about kobjects, ksets, and ktypes
- Adding reference counters (krefs) to kernel objects
- Generic Associative Array Implementation
- ID Allocation
- Circular Buffers
- Red-black Trees (rbtree) in Linux
- Generic radix trees/sparse arrays
- Generic bitfield packing and unpacking functions
- How to access I/O mapped memory from within device drivers
- this_cpu operations
- ktime accessors
- The errseq_t datatype
How Linux keeps everything from happening at the same time. See locking for more related documentation.
Low-level hardware management¶
Cache management, managing CPU hotplug, etc.
How to allocate and use memory in the kernel. Note that there is a lot more memory-management documentation in Linux Memory Management Documentation.
- Memory Allocation Guide
- Unaligned Memory Accesses
- Dynamic DMA mapping using the generic device
- Dynamic DMA mapping Guide
- DMA attributes
- DMA with ISA and LPC devices
- Memory Management APIs
- The genalloc/genpool subsystem
- pin_user_pages() and related calls
- Boot time memory management
- GFP masks used from FS/IO context