~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/core-api/kernel-api.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 ====================
  2 The Linux Kernel API
  3 ====================
  4 
  5 
  6 List Management Functions
  7 =========================
  8 
  9 .. kernel-doc:: include/linux/list.h
 10    :internal:
 11 
 12 Basic C Library Functions
 13 =========================
 14 
 15 When writing drivers, you cannot in general use routines which are from
 16 the C Library. Some of the functions have been found generally useful
 17 and they are listed below. The behaviour of these functions may vary
 18 slightly from those defined by ANSI, and these deviations are noted in
 19 the text.
 20 
 21 String Conversions
 22 ------------------
 23 
 24 .. kernel-doc:: lib/vsprintf.c
 25    :export:
 26 
 27 .. kernel-doc:: include/linux/kstrtox.h
 28    :functions: kstrtol kstrtoul
 29 
 30 .. kernel-doc:: lib/kstrtox.c
 31    :export:
 32 
 33 .. kernel-doc:: lib/string_helpers.c
 34    :export:
 35 
 36 String Manipulation
 37 -------------------
 38 
 39 .. kernel-doc:: include/linux/fortify-string.h
 40    :internal:
 41 
 42 .. kernel-doc:: lib/string.c
 43    :export:
 44 
 45 .. kernel-doc:: include/linux/string.h
 46    :internal:
 47 
 48 .. kernel-doc:: mm/util.c
 49    :functions: kstrdup kstrdup_const kstrndup kmemdup kmemdup_nul memdup_user
 50                vmemdup_user strndup_user memdup_user_nul
 51 
 52 Basic Kernel Library Functions
 53 ==============================
 54 
 55 The Linux kernel provides more basic utility functions.
 56 
 57 Bit Operations
 58 --------------
 59 
 60 .. kernel-doc:: include/asm-generic/bitops/instrumented-atomic.h
 61    :internal:
 62 
 63 .. kernel-doc:: include/asm-generic/bitops/instrumented-non-atomic.h
 64    :internal:
 65 
 66 .. kernel-doc:: include/asm-generic/bitops/instrumented-lock.h
 67    :internal:
 68 
 69 Bitmap Operations
 70 -----------------
 71 
 72 .. kernel-doc:: lib/bitmap.c
 73    :doc: bitmap introduction
 74 
 75 .. kernel-doc:: include/linux/bitmap.h
 76    :doc: declare bitmap
 77 
 78 .. kernel-doc:: include/linux/bitmap.h
 79    :doc: bitmap overview
 80 
 81 .. kernel-doc:: include/linux/bitmap.h
 82    :doc: bitmap bitops
 83 
 84 .. kernel-doc:: lib/bitmap.c
 85    :export:
 86 
 87 .. kernel-doc:: lib/bitmap.c
 88    :internal:
 89 
 90 .. kernel-doc:: include/linux/bitmap.h
 91    :internal:
 92 
 93 Command-line Parsing
 94 --------------------
 95 
 96 .. kernel-doc:: lib/cmdline.c
 97    :export:
 98 
 99 Error Pointers
100 --------------
101 
102 .. kernel-doc:: include/linux/err.h
103    :internal:
104 
105 Sorting
106 -------
107 
108 .. kernel-doc:: lib/sort.c
109    :export:
110 
111 .. kernel-doc:: lib/list_sort.c
112    :export:
113 
114 Text Searching
115 --------------
116 
117 .. kernel-doc:: lib/textsearch.c
118    :doc: ts_intro
119 
120 .. kernel-doc:: lib/textsearch.c
121    :export:
122 
123 .. kernel-doc:: include/linux/textsearch.h
124    :functions: textsearch_find textsearch_next \
125                textsearch_get_pattern textsearch_get_pattern_len
126 
127 CRC and Math Functions in Linux
128 ===============================
129 
130 Arithmetic Overflow Checking
131 ----------------------------
132 
133 .. kernel-doc:: include/linux/overflow.h
134    :internal:
135 
136 CRC Functions
137 -------------
138 
139 .. kernel-doc:: lib/crc4.c
140    :export:
141 
142 .. kernel-doc:: lib/crc7.c
143    :export:
144 
145 .. kernel-doc:: lib/crc8.c
146    :export:
147 
148 .. kernel-doc:: lib/crc16.c
149    :export:
150 
151 .. kernel-doc:: lib/crc32.c
152 
153 .. kernel-doc:: lib/crc-ccitt.c
154    :export:
155 
156 .. kernel-doc:: lib/crc-itu-t.c
157    :export:
158 
159 Base 2 log and power Functions
160 ------------------------------
161 
162 .. kernel-doc:: include/linux/log2.h
163    :internal:
164 
165 Integer log and power Functions
166 -------------------------------
167 
168 .. kernel-doc:: include/linux/int_log.h
169 
170 .. kernel-doc:: lib/math/int_pow.c
171    :export:
172 
173 .. kernel-doc:: lib/math/int_sqrt.c
174    :export:
175 
176 Division Functions
177 ------------------
178 
179 .. kernel-doc:: include/asm-generic/div64.h
180    :functions: do_div
181 
182 .. kernel-doc:: include/linux/math64.h
183    :internal:
184 
185 .. kernel-doc:: lib/math/gcd.c
186    :export:
187 
188 UUID/GUID
189 ---------
190 
191 .. kernel-doc:: lib/uuid.c
192    :export:
193 
194 Kernel IPC facilities
195 =====================
196 
197 IPC utilities
198 -------------
199 
200 .. kernel-doc:: ipc/util.c
201    :internal:
202 
203 FIFO Buffer
204 ===========
205 
206 kfifo interface
207 ---------------
208 
209 .. kernel-doc:: include/linux/kfifo.h
210    :internal:
211 
212 relay interface support
213 =======================
214 
215 Relay interface support is designed to provide an efficient mechanism
216 for tools and facilities to relay large amounts of data from kernel
217 space to user space.
218 
219 relay interface
220 ---------------
221 
222 .. kernel-doc:: kernel/relay.c
223    :export:
224 
225 .. kernel-doc:: kernel/relay.c
226    :internal:
227 
228 Module Support
229 ==============
230 
231 Kernel module auto-loading
232 --------------------------
233 
234 .. kernel-doc:: kernel/module/kmod.c
235    :export:
236 
237 Module debugging
238 ----------------
239 
240 .. kernel-doc:: kernel/module/stats.c
241    :doc: module debugging statistics overview
242 
243 dup_failed_modules - tracks duplicate failed modules
244 ****************************************************
245 
246 .. kernel-doc:: kernel/module/stats.c
247    :doc: dup_failed_modules - tracks duplicate failed modules
248 
249 module statistics debugfs counters
250 **********************************
251 
252 .. kernel-doc:: kernel/module/stats.c
253    :doc: module statistics debugfs counters
254 
255 Inter Module support
256 --------------------
257 
258 Refer to the files in kernel/module/ for more information.
259 
260 Hardware Interfaces
261 ===================
262 
263 DMA Channels
264 ------------
265 
266 .. kernel-doc:: kernel/dma.c
267    :export:
268 
269 Resources Management
270 --------------------
271 
272 .. kernel-doc:: kernel/resource.c
273    :internal:
274 
275 .. kernel-doc:: kernel/resource.c
276    :export:
277 
278 MTRR Handling
279 -------------
280 
281 .. kernel-doc:: arch/x86/kernel/cpu/mtrr/mtrr.c
282    :export:
283 
284 Security Framework
285 ==================
286 
287 .. kernel-doc:: security/security.c
288    :internal:
289 
290 .. kernel-doc:: security/inode.c
291    :export:
292 
293 Audit Interfaces
294 ================
295 
296 .. kernel-doc:: kernel/audit.c
297    :export:
298 
299 .. kernel-doc:: kernel/auditsc.c
300    :internal:
301 
302 .. kernel-doc:: kernel/auditfilter.c
303    :internal:
304 
305 Accounting Framework
306 ====================
307 
308 .. kernel-doc:: kernel/acct.c
309    :internal:
310 
311 Block Devices
312 =============
313 
314 .. kernel-doc:: include/linux/bio.h
315 .. kernel-doc:: block/blk-core.c
316    :export:
317 
318 .. kernel-doc:: block/blk-core.c
319    :internal:
320 
321 .. kernel-doc:: block/blk-map.c
322    :export:
323 
324 .. kernel-doc:: block/blk-sysfs.c
325    :internal:
326 
327 .. kernel-doc:: block/blk-settings.c
328    :export:
329 
330 .. kernel-doc:: block/blk-flush.c
331    :export:
332 
333 .. kernel-doc:: block/blk-lib.c
334    :export:
335 
336 .. kernel-doc:: block/blk-integrity.c
337    :export:
338 
339 .. kernel-doc:: kernel/trace/blktrace.c
340    :internal:
341 
342 .. kernel-doc:: block/genhd.c
343    :internal:
344 
345 .. kernel-doc:: block/genhd.c
346    :export:
347 
348 .. kernel-doc:: block/bdev.c
349    :export:
350 
351 Char devices
352 ============
353 
354 .. kernel-doc:: fs/char_dev.c
355    :export:
356 
357 Clock Framework
358 ===============
359 
360 The clock framework defines programming interfaces to support software
361 management of the system clock tree. This framework is widely used with
362 System-On-Chip (SOC) platforms to support power management and various
363 devices which may need custom clock rates. Note that these "clocks"
364 don't relate to timekeeping or real time clocks (RTCs), each of which
365 have separate frameworks. These :c:type:`struct clk <clk>`
366 instances may be used to manage for example a 96 MHz signal that is used
367 to shift bits into and out of peripherals or busses, or otherwise
368 trigger synchronous state machine transitions in system hardware.
369 
370 Power management is supported by explicit software clock gating: unused
371 clocks are disabled, so the system doesn't waste power changing the
372 state of transistors that aren't in active use. On some systems this may
373 be backed by hardware clock gating, where clocks are gated without being
374 disabled in software. Sections of chips that are powered but not clocked
375 may be able to retain their last state. This low power state is often
376 called a *retention mode*. This mode still incurs leakage currents,
377 especially with finer circuit geometries, but for CMOS circuits power is
378 mostly used by clocked state changes.
379 
380 Power-aware drivers only enable their clocks when the device they manage
381 is in active use. Also, system sleep states often differ according to
382 which clock domains are active: while a "standby" state may allow wakeup
383 from several active domains, a "mem" (suspend-to-RAM) state may require
384 a more wholesale shutdown of clocks derived from higher speed PLLs and
385 oscillators, limiting the number of possible wakeup event sources. A
386 driver's suspend method may need to be aware of system-specific clock
387 constraints on the target sleep state.
388 
389 Some platforms support programmable clock generators. These can be used
390 by external chips of various kinds, such as other CPUs, multimedia
391 codecs, and devices with strict requirements for interface clocking.
392 
393 .. kernel-doc:: include/linux/clk.h
394    :internal:
395 
396 Synchronization Primitives
397 ==========================
398 
399 Read-Copy Update (RCU)
400 ----------------------
401 
402 .. kernel-doc:: include/linux/rcupdate.h
403 
404 .. kernel-doc:: kernel/rcu/tree.c
405 
406 .. kernel-doc:: kernel/rcu/tree_exp.h
407 
408 .. kernel-doc:: kernel/rcu/update.c
409 
410 .. kernel-doc:: include/linux/srcu.h
411 
412 .. kernel-doc:: kernel/rcu/srcutree.c
413 
414 .. kernel-doc:: include/linux/rculist_bl.h
415 
416 .. kernel-doc:: include/linux/rculist.h
417 
418 .. kernel-doc:: include/linux/rculist_nulls.h
419 
420 .. kernel-doc:: include/linux/rcu_sync.h
421 
422 .. kernel-doc:: kernel/rcu/sync.c
423 
424 .. kernel-doc:: kernel/rcu/tasks.h
425 
426 .. kernel-doc:: kernel/rcu/tree_stall.h
427 
428 .. kernel-doc:: include/linux/rcupdate_trace.h
429 
430 .. kernel-doc:: include/linux/rcupdate_wait.h
431 
432 .. kernel-doc:: include/linux/rcuref.h
433 
434 .. kernel-doc:: include/linux/rcutree.h

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php