blob: 5de2c7a4b1b3cd40e054297530933fb06ef961e8 [file] [log] [blame]
Silvio Fricke24755a52016-10-28 10:14:10 +02001======================
Jonathan Corbet93dc3a12016-11-18 17:06:13 -07002Core API Documentation
Silvio Fricke24755a52016-10-28 10:14:10 +02003======================
4
Jonathan Corbet93dc3a12016-11-18 17:06:13 -07005This is the beginning of a manual for core kernel APIs. The conversion
6(and writing!) of documents for this manual is much appreciated!
7
8Core utilities
9==============
Silvio Fricke24755a52016-10-28 10:14:10 +020010
Jonathan Corbet5e720172020-03-02 15:17:17 -070011This section has general and "core core" documentation. The first is a
12massive grab-bag of kerneldoc info left over from the docbook days; it
13should really be broken up someday when somebody finds the energy to do
14it.
15
Silvio Fricke24755a52016-10-28 10:14:10 +020016.. toctree::
17 :maxdepth: 1
18
Mauro Carvalho Chehabbaca8a02017-03-30 17:11:32 -030019 kernel-api
Jonathan Corbet5e720172020-03-02 15:17:17 -070020 workqueue
Ricardo CaƱuelo90c165f2020-04-03 11:36:17 +020021 printk-basics
Jonathan Corbet5e720172020-03-02 15:17:17 -070022 printk-formats
23 symbol-namespaces
24
25Data structures and low-level utilities
26=======================================
27
28Library functionality that is used throughout the kernel.
29
30.. toctree::
31 :maxdepth: 1
32
Sameer Rahmani5fed00d2020-02-25 22:21:25 +000033 kobject
Mauro Carvalho Chehab1ac00662020-05-01 17:37:52 +020034 kref
Silvio Frickec3cbf1a2016-11-28 18:30:53 +010035 assoc_array
Matthew Wilcox992a8e62017-11-23 22:57:20 -050036 xarray
Jonathan Corbet5e720172020-03-02 15:17:17 -070037 idr
Mauro Carvalho Chehabd8a121e2018-05-07 06:35:43 -030038 circular-buffers
Matthew Wilcox (Oracle)14bbe3e2020-04-01 10:33:43 -070039 rbtree
Kent Overstreetba20ba22019-03-11 23:31:14 -070040 generic-radix-tree
Jonathan Corbet5e720172020-03-02 15:17:17 -070041 packing
Mauro Carvalho Chehabc9b54d62020-06-23 15:31:38 +020042 bus-virt-phys-mapping
43 this_cpu_ops
Jonathan Corbet5e720172020-03-02 15:17:17 -070044 timekeeping
45 errseq
46
47Concurrency primitives
48======================
49
50How Linux keeps everything from happening at the same time. See
Mauro Carvalho Chehaba822b2e2021-06-16 08:27:23 +020051Documentation/locking/index.rst for more related documentation.
Jonathan Corbet5e720172020-03-02 15:17:17 -070052
53.. toctree::
54 :maxdepth: 1
55
Jonathan Corbet5e720172020-03-02 15:17:17 -070056 refcount-vs-atomic
Mauro Carvalho Chehabe00b0ab2020-05-01 17:37:51 +020057 irq/index
Jonathan Corbet5e720172020-03-02 15:17:17 -070058 local_ops
59 padata
60 ../RCU/index
61
62Low-level hardware management
63=============================
64
65Cache management, managing CPU hotplug, etc.
66
67.. toctree::
68 :maxdepth: 1
69
70 cachetlb
71 cpu_hotplug
72 memory-hotplug
73 genericirq
74 protection-keys
75
76Memory management
77=================
78
79How to allocate and use memory in the kernel. Note that there is a lot
Mauro Carvalho Chehaba822b2e2021-06-16 08:27:23 +020080more memory-management documentation in Documentation/vm/index.rst.
Jonathan Corbet5e720172020-03-02 15:17:17 -070081
82.. toctree::
83 :maxdepth: 1
84
Mike Rapoport52272c92018-09-14 12:27:58 +030085 memory-allocation
Mauro Carvalho Chehabc9b54d62020-06-23 15:31:38 +020086 unaligned-memory-access
Mauro Carvalho Chehab728c1472020-05-01 17:37:45 +020087 dma-api
88 dma-api-howto
89 dma-attributes
90 dma-isa-lpc
Mike Rapoport41f35b32018-08-23 17:01:12 -070091 mm-api
Jonathan Corbet5e720172020-03-02 15:17:17 -070092 genalloc
John Hubbardeddb1c22020-01-30 22:12:54 -080093 pin_user_pages
Mike Rapoportae9d8842018-06-30 17:55:06 +030094 boot-time-mm
Jonathan Corbet5e720172020-03-02 15:17:17 -070095 gfp_mask-from-fs-io
Silvio Frickee7f08ff2016-10-28 10:14:11 +020096
Jonathan Corbet93dc3a12016-11-18 17:06:13 -070097Interfaces for kernel debugging
98===============================
99
100.. toctree::
101 :maxdepth: 1
102
Jonathan Corbetd6ba7a92016-11-18 17:21:32 -0700103 debug-objects
104 tracepoint
Mauro Carvalho Chehaba74e2a22020-05-01 17:37:50 +0200105 debugging-via-ohci1394
Jonathan Corbet93dc3a12016-11-18 17:06:13 -0700106
Jonathan Corbet5e720172020-03-02 15:17:17 -0700107Everything else
108===============
109
110Documents that don't fit elsewhere or which have yet to be categorized.
111
112.. toctree::
113 :maxdepth: 1
114
115 librs
Jonathan Corbet5e720172020-03-02 15:17:17 -0700116
Mauro Carvalho Chehab9c970ab2019-07-26 09:51:29 -0300117.. only:: subproject and html
Silvio Fricke24755a52016-10-28 10:14:10 +0200118
119 Indices
120 =======
121
122 * :ref:`genindex`