1baca8a0cSMauro Carvalho Chehab====================
2baca8a0cSMauro Carvalho ChehabThe Linux Kernel API
3baca8a0cSMauro Carvalho Chehab====================
4baca8a0cSMauro Carvalho Chehab
5baca8a0cSMauro Carvalho Chehab
6416c7517SRandy DunlapList Management Functions
7416c7517SRandy Dunlap=========================
8baca8a0cSMauro Carvalho Chehab
9baca8a0cSMauro Carvalho Chehab.. kernel-doc:: include/linux/list.h
10baca8a0cSMauro Carvalho Chehab   :internal:
11baca8a0cSMauro Carvalho Chehab
12baca8a0cSMauro Carvalho ChehabBasic C Library Functions
13baca8a0cSMauro Carvalho Chehab=========================
14baca8a0cSMauro Carvalho Chehab
15baca8a0cSMauro Carvalho ChehabWhen writing drivers, you cannot in general use routines which are from
16baca8a0cSMauro Carvalho Chehabthe C Library. Some of the functions have been found generally useful
17baca8a0cSMauro Carvalho Chehaband they are listed below. The behaviour of these functions may vary
18baca8a0cSMauro Carvalho Chehabslightly from those defined by ANSI, and these deviations are noted in
19baca8a0cSMauro Carvalho Chehabthe text.
20baca8a0cSMauro Carvalho Chehab
21baca8a0cSMauro Carvalho ChehabString Conversions
22baca8a0cSMauro Carvalho Chehab------------------
23baca8a0cSMauro Carvalho Chehab
24baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/vsprintf.c
25baca8a0cSMauro Carvalho Chehab   :export:
26baca8a0cSMauro Carvalho Chehab
274c527293SAndy Shevchenko.. kernel-doc:: include/linux/kstrtox.h
284c527293SAndy Shevchenko   :functions: kstrtol kstrtoul
29baca8a0cSMauro Carvalho Chehab
30baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/kstrtox.c
31baca8a0cSMauro Carvalho Chehab   :export:
32baca8a0cSMauro Carvalho Chehab
33b4221247SAndy Shevchenko.. kernel-doc:: lib/string_helpers.c
34b4221247SAndy Shevchenko   :export:
35b4221247SAndy Shevchenko
36baca8a0cSMauro Carvalho ChehabString Manipulation
37baca8a0cSMauro Carvalho Chehab-------------------
38baca8a0cSMauro Carvalho Chehab
3903699f27SKees Cook.. kernel-doc:: include/linux/fortify-string.h
4003699f27SKees Cook   :internal:
4103699f27SKees Cook
42baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/string.c
43baca8a0cSMauro Carvalho Chehab   :export:
44baca8a0cSMauro Carvalho Chehab
45917cda27SJoe Perches.. kernel-doc:: include/linux/string.h
46917cda27SJoe Perches   :internal:
47917cda27SJoe Perches
4815956176SMike Rapoport.. kernel-doc:: mm/util.c
4915956176SMike Rapoport   :functions: kstrdup kstrdup_const kstrndup kmemdup kmemdup_nul memdup_user
5015956176SMike Rapoport               vmemdup_user strndup_user memdup_user_nul
5115956176SMike Rapoport
52eacc670fSRandy DunlapBasic Kernel Library Functions
53eacc670fSRandy Dunlap==============================
54eacc670fSRandy Dunlap
55eacc670fSRandy DunlapThe Linux kernel provides more basic utility functions.
56eacc670fSRandy Dunlap
57baca8a0cSMauro Carvalho ChehabBit Operations
58baca8a0cSMauro Carvalho Chehab--------------
59baca8a0cSMauro Carvalho Chehab
6081d2c6f8SDaniel Axtens.. kernel-doc:: include/asm-generic/bitops/instrumented-atomic.h
6181d2c6f8SDaniel Axtens   :internal:
6281d2c6f8SDaniel Axtens
6381d2c6f8SDaniel Axtens.. kernel-doc:: include/asm-generic/bitops/instrumented-non-atomic.h
6481d2c6f8SDaniel Axtens   :internal:
6581d2c6f8SDaniel Axtens
6681d2c6f8SDaniel Axtens.. kernel-doc:: include/asm-generic/bitops/instrumented-lock.h
67baca8a0cSMauro Carvalho Chehab   :internal:
68baca8a0cSMauro Carvalho Chehab
69baca8a0cSMauro Carvalho ChehabBitmap Operations
70baca8a0cSMauro Carvalho Chehab-----------------
71baca8a0cSMauro Carvalho Chehab
72baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/bitmap.c
737d7363e4SRandy Dunlap   :doc: bitmap introduction
747d7363e4SRandy Dunlap
757d7363e4SRandy Dunlap.. kernel-doc:: include/linux/bitmap.h
767d7363e4SRandy Dunlap   :doc: declare bitmap
777d7363e4SRandy Dunlap
787d7363e4SRandy Dunlap.. kernel-doc:: include/linux/bitmap.h
797d7363e4SRandy Dunlap   :doc: bitmap overview
807d7363e4SRandy Dunlap
817d7363e4SRandy Dunlap.. kernel-doc:: include/linux/bitmap.h
827d7363e4SRandy Dunlap   :doc: bitmap bitops
837d7363e4SRandy Dunlap
847d7363e4SRandy Dunlap.. kernel-doc:: lib/bitmap.c
85baca8a0cSMauro Carvalho Chehab   :export:
86baca8a0cSMauro Carvalho Chehab
87baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/bitmap.c
88baca8a0cSMauro Carvalho Chehab   :internal:
89baca8a0cSMauro Carvalho Chehab
90404376afSRandy Dunlap.. kernel-doc:: include/linux/bitmap.h
91404376afSRandy Dunlap   :internal:
92404376afSRandy Dunlap
93baca8a0cSMauro Carvalho ChehabCommand-line Parsing
94baca8a0cSMauro Carvalho Chehab--------------------
95baca8a0cSMauro Carvalho Chehab
96baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/cmdline.c
97baca8a0cSMauro Carvalho Chehab   :export:
98baca8a0cSMauro Carvalho Chehab
992017e3caSJames SeoError Pointers
1002017e3caSJames Seo--------------
1012017e3caSJames Seo
1022017e3caSJames Seo.. kernel-doc:: include/linux/err.h
1032017e3caSJames Seo   :internal:
1042017e3caSJames Seo
105eacc670fSRandy DunlapSorting
106eacc670fSRandy Dunlap-------
107eacc670fSRandy Dunlap
108eacc670fSRandy Dunlap.. kernel-doc:: lib/sort.c
109eacc670fSRandy Dunlap   :export:
110eacc670fSRandy Dunlap
111eacc670fSRandy Dunlap.. kernel-doc:: lib/list_sort.c
112eacc670fSRandy Dunlap   :export:
113eacc670fSRandy Dunlap
114eacc670fSRandy DunlapText Searching
115eacc670fSRandy Dunlap--------------
116eacc670fSRandy Dunlap
117eacc670fSRandy Dunlap.. kernel-doc:: lib/textsearch.c
118eacc670fSRandy Dunlap   :doc: ts_intro
119eacc670fSRandy Dunlap
120eacc670fSRandy Dunlap.. kernel-doc:: lib/textsearch.c
121eacc670fSRandy Dunlap   :export:
122eacc670fSRandy Dunlap
123eacc670fSRandy Dunlap.. kernel-doc:: include/linux/textsearch.h
124eacc670fSRandy Dunlap   :functions: textsearch_find textsearch_next \
125eacc670fSRandy Dunlap               textsearch_get_pattern textsearch_get_pattern_len
126eacc670fSRandy Dunlap
127eacc670fSRandy DunlapCRC and Math Functions in Linux
128eacc670fSRandy Dunlap===============================
129eacc670fSRandy Dunlap
13031970608SKees CookArithmetic Overflow Checking
13131970608SKees Cook----------------------------
13231970608SKees Cook
13331970608SKees Cook.. kernel-doc:: include/linux/overflow.h
13431970608SKees Cook   :internal:
13531970608SKees Cook
136baca8a0cSMauro Carvalho ChehabCRC Functions
137baca8a0cSMauro Carvalho Chehab-------------
138baca8a0cSMauro Carvalho Chehab
1398a29896aSRandy Dunlap.. kernel-doc:: lib/crc4.c
1408a29896aSRandy Dunlap   :export:
1418a29896aSRandy Dunlap
142baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/crc7.c
143baca8a0cSMauro Carvalho Chehab   :export:
144baca8a0cSMauro Carvalho Chehab
1458a29896aSRandy Dunlap.. kernel-doc:: lib/crc8.c
1468a29896aSRandy Dunlap   :export:
1478a29896aSRandy Dunlap
148baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/crc16.c
149baca8a0cSMauro Carvalho Chehab   :export:
150baca8a0cSMauro Carvalho Chehab
151baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/crc32.c
152baca8a0cSMauro Carvalho Chehab
153baca8a0cSMauro Carvalho Chehab.. kernel-doc:: lib/crc-ccitt.c
154baca8a0cSMauro Carvalho Chehab   :export:
155baca8a0cSMauro Carvalho Chehab
1568a29896aSRandy Dunlap.. kernel-doc:: lib/crc-itu-t.c
1578a29896aSRandy Dunlap   :export:
1588a29896aSRandy Dunlap
15968e51252SRandy DunlapBase 2 log and power Functions
16068e51252SRandy Dunlap------------------------------
16168e51252SRandy Dunlap
16268e51252SRandy Dunlap.. kernel-doc:: include/linux/log2.h
16368e51252SRandy Dunlap   :internal:
16468e51252SRandy Dunlap
165*f97fa3dcSAndy ShevchenkoInteger log and power Functions
166*f97fa3dcSAndy Shevchenko-------------------------------
167*f97fa3dcSAndy Shevchenko
168*f97fa3dcSAndy Shevchenko.. kernel-doc:: include/linux/int_log.h
16958d49466SAndy Shevchenko
17058d49466SAndy Shevchenko.. kernel-doc:: lib/math/int_pow.c
17158d49466SAndy Shevchenko   :export:
17258d49466SAndy Shevchenko
17358d49466SAndy Shevchenko.. kernel-doc:: lib/math/int_sqrt.c
17458d49466SAndy Shevchenko   :export:
17558d49466SAndy Shevchenko
17668e51252SRandy DunlapDivision Functions
17768e51252SRandy Dunlap------------------
17868e51252SRandy Dunlap
17968e51252SRandy Dunlap.. kernel-doc:: include/asm-generic/div64.h
18068e51252SRandy Dunlap   :functions: do_div
18168e51252SRandy Dunlap
18268e51252SRandy Dunlap.. kernel-doc:: include/linux/math64.h
18368e51252SRandy Dunlap   :internal:
18468e51252SRandy Dunlap
1852c64e9cbSAndy Shevchenko.. kernel-doc:: lib/math/gcd.c
18668e51252SRandy Dunlap   :export:
18768e51252SRandy Dunlap
188d063623bSRandy DunlapUUID/GUID
189d063623bSRandy Dunlap---------
190d063623bSRandy Dunlap
191d063623bSRandy Dunlap.. kernel-doc:: lib/uuid.c
192d063623bSRandy Dunlap   :export:
193d063623bSRandy Dunlap
194baca8a0cSMauro Carvalho ChehabKernel IPC facilities
195baca8a0cSMauro Carvalho Chehab=====================
196baca8a0cSMauro Carvalho Chehab
197baca8a0cSMauro Carvalho ChehabIPC utilities
198baca8a0cSMauro Carvalho Chehab-------------
199baca8a0cSMauro Carvalho Chehab
200baca8a0cSMauro Carvalho Chehab.. kernel-doc:: ipc/util.c
201baca8a0cSMauro Carvalho Chehab   :internal:
202baca8a0cSMauro Carvalho Chehab
203baca8a0cSMauro Carvalho ChehabFIFO Buffer
204baca8a0cSMauro Carvalho Chehab===========
205baca8a0cSMauro Carvalho Chehab
206baca8a0cSMauro Carvalho Chehabkfifo interface
207baca8a0cSMauro Carvalho Chehab---------------
208baca8a0cSMauro Carvalho Chehab
209baca8a0cSMauro Carvalho Chehab.. kernel-doc:: include/linux/kfifo.h
210baca8a0cSMauro Carvalho Chehab   :internal:
211baca8a0cSMauro Carvalho Chehab
212baca8a0cSMauro Carvalho Chehabrelay interface support
213baca8a0cSMauro Carvalho Chehab=======================
214baca8a0cSMauro Carvalho Chehab
215baca8a0cSMauro Carvalho ChehabRelay interface support is designed to provide an efficient mechanism
216baca8a0cSMauro Carvalho Chehabfor tools and facilities to relay large amounts of data from kernel
217baca8a0cSMauro Carvalho Chehabspace to user space.
218baca8a0cSMauro Carvalho Chehab
219baca8a0cSMauro Carvalho Chehabrelay interface
220baca8a0cSMauro Carvalho Chehab---------------
221baca8a0cSMauro Carvalho Chehab
222baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/relay.c
223baca8a0cSMauro Carvalho Chehab   :export:
224baca8a0cSMauro Carvalho Chehab
225baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/relay.c
226baca8a0cSMauro Carvalho Chehab   :internal:
227baca8a0cSMauro Carvalho Chehab
228baca8a0cSMauro Carvalho ChehabModule Support
229baca8a0cSMauro Carvalho Chehab==============
230baca8a0cSMauro Carvalho Chehab
231df3e764dSLuis ChamberlainKernel module auto-loading
232df3e764dSLuis Chamberlain--------------------------
233baca8a0cSMauro Carvalho Chehab
2343edf091dSBagas Sanjaya.. kernel-doc:: kernel/module/kmod.c
235baca8a0cSMauro Carvalho Chehab   :export:
236baca8a0cSMauro Carvalho Chehab
237df3e764dSLuis ChamberlainModule debugging
238df3e764dSLuis Chamberlain----------------
239df3e764dSLuis Chamberlain
240df3e764dSLuis Chamberlain.. kernel-doc:: kernel/module/stats.c
241df3e764dSLuis Chamberlain   :doc: module debugging statistics overview
242df3e764dSLuis Chamberlain
243df3e764dSLuis Chamberlaindup_failed_modules - tracks duplicate failed modules
244df3e764dSLuis Chamberlain****************************************************
245df3e764dSLuis Chamberlain
246df3e764dSLuis Chamberlain.. kernel-doc:: kernel/module/stats.c
247df3e764dSLuis Chamberlain   :doc: dup_failed_modules - tracks duplicate failed modules
248df3e764dSLuis Chamberlain
249df3e764dSLuis Chamberlainmodule statistics debugfs counters
250df3e764dSLuis Chamberlain**********************************
251df3e764dSLuis Chamberlain
252df3e764dSLuis Chamberlain.. kernel-doc:: kernel/module/stats.c
253df3e764dSLuis Chamberlain   :doc: module statistics debugfs counters
254df3e764dSLuis Chamberlain
255baca8a0cSMauro Carvalho ChehabInter Module support
256baca8a0cSMauro Carvalho Chehab--------------------
257baca8a0cSMauro Carvalho Chehab
2582cc39179SMasahiro YamadaRefer to the files in kernel/module/ for more information.
259baca8a0cSMauro Carvalho Chehab
260baca8a0cSMauro Carvalho ChehabHardware Interfaces
261baca8a0cSMauro Carvalho Chehab===================
262baca8a0cSMauro Carvalho Chehab
263baca8a0cSMauro Carvalho ChehabDMA Channels
264baca8a0cSMauro Carvalho Chehab------------
265baca8a0cSMauro Carvalho Chehab
266baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/dma.c
267baca8a0cSMauro Carvalho Chehab   :export:
268baca8a0cSMauro Carvalho Chehab
269baca8a0cSMauro Carvalho ChehabResources Management
270baca8a0cSMauro Carvalho Chehab--------------------
271baca8a0cSMauro Carvalho Chehab
272baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/resource.c
273baca8a0cSMauro Carvalho Chehab   :internal:
274baca8a0cSMauro Carvalho Chehab
275baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/resource.c
276baca8a0cSMauro Carvalho Chehab   :export:
277baca8a0cSMauro Carvalho Chehab
278baca8a0cSMauro Carvalho ChehabMTRR Handling
279baca8a0cSMauro Carvalho Chehab-------------
280baca8a0cSMauro Carvalho Chehab
2813ed1d012SRandy Dunlap.. kernel-doc:: arch/x86/kernel/cpu/mtrr/mtrr.c
282baca8a0cSMauro Carvalho Chehab   :export:
283baca8a0cSMauro Carvalho Chehab
284baca8a0cSMauro Carvalho ChehabSecurity Framework
285baca8a0cSMauro Carvalho Chehab==================
286baca8a0cSMauro Carvalho Chehab
287baca8a0cSMauro Carvalho Chehab.. kernel-doc:: security/security.c
288baca8a0cSMauro Carvalho Chehab   :internal:
289baca8a0cSMauro Carvalho Chehab
290baca8a0cSMauro Carvalho Chehab.. kernel-doc:: security/inode.c
291baca8a0cSMauro Carvalho Chehab   :export:
292baca8a0cSMauro Carvalho Chehab
293baca8a0cSMauro Carvalho ChehabAudit Interfaces
294baca8a0cSMauro Carvalho Chehab================
295baca8a0cSMauro Carvalho Chehab
296baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/audit.c
297baca8a0cSMauro Carvalho Chehab   :export:
298baca8a0cSMauro Carvalho Chehab
299baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/auditsc.c
300baca8a0cSMauro Carvalho Chehab   :internal:
301baca8a0cSMauro Carvalho Chehab
302baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/auditfilter.c
303baca8a0cSMauro Carvalho Chehab   :internal:
304baca8a0cSMauro Carvalho Chehab
305baca8a0cSMauro Carvalho ChehabAccounting Framework
306baca8a0cSMauro Carvalho Chehab====================
307baca8a0cSMauro Carvalho Chehab
308baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/acct.c
309baca8a0cSMauro Carvalho Chehab   :internal:
310baca8a0cSMauro Carvalho Chehab
311baca8a0cSMauro Carvalho ChehabBlock Devices
312baca8a0cSMauro Carvalho Chehab=============
313baca8a0cSMauro Carvalho Chehab
314640d1930SMatthew Wilcox (Oracle).. kernel-doc:: include/linux/bio.h
315baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/blk-core.c
316baca8a0cSMauro Carvalho Chehab   :export:
317baca8a0cSMauro Carvalho Chehab
318baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/blk-core.c
319baca8a0cSMauro Carvalho Chehab   :internal:
320baca8a0cSMauro Carvalho Chehab
321baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/blk-map.c
322baca8a0cSMauro Carvalho Chehab   :export:
323baca8a0cSMauro Carvalho Chehab
324baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/blk-sysfs.c
325baca8a0cSMauro Carvalho Chehab   :internal:
326baca8a0cSMauro Carvalho Chehab
327baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/blk-settings.c
328baca8a0cSMauro Carvalho Chehab   :export:
329baca8a0cSMauro Carvalho Chehab
330baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/blk-flush.c
331baca8a0cSMauro Carvalho Chehab   :export:
332baca8a0cSMauro Carvalho Chehab
333baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/blk-lib.c
334baca8a0cSMauro Carvalho Chehab   :export:
335baca8a0cSMauro Carvalho Chehab
336baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/blk-integrity.c
337baca8a0cSMauro Carvalho Chehab   :export:
338baca8a0cSMauro Carvalho Chehab
339baca8a0cSMauro Carvalho Chehab.. kernel-doc:: kernel/trace/blktrace.c
340baca8a0cSMauro Carvalho Chehab   :internal:
341baca8a0cSMauro Carvalho Chehab
342baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/genhd.c
343baca8a0cSMauro Carvalho Chehab   :internal:
344baca8a0cSMauro Carvalho Chehab
345baca8a0cSMauro Carvalho Chehab.. kernel-doc:: block/genhd.c
346baca8a0cSMauro Carvalho Chehab   :export:
347baca8a0cSMauro Carvalho Chehab
3480dca4462SChristoph Hellwig.. kernel-doc:: block/bdev.c
3490dca4462SChristoph Hellwig   :export:
3500dca4462SChristoph Hellwig
351baca8a0cSMauro Carvalho ChehabChar devices
352baca8a0cSMauro Carvalho Chehab============
353baca8a0cSMauro Carvalho Chehab
354baca8a0cSMauro Carvalho Chehab.. kernel-doc:: fs/char_dev.c
355baca8a0cSMauro Carvalho Chehab   :export:
356baca8a0cSMauro Carvalho Chehab
357baca8a0cSMauro Carvalho ChehabClock Framework
358baca8a0cSMauro Carvalho Chehab===============
359baca8a0cSMauro Carvalho Chehab
360baca8a0cSMauro Carvalho ChehabThe clock framework defines programming interfaces to support software
361baca8a0cSMauro Carvalho Chehabmanagement of the system clock tree. This framework is widely used with
362baca8a0cSMauro Carvalho ChehabSystem-On-Chip (SOC) platforms to support power management and various
363baca8a0cSMauro Carvalho Chehabdevices which may need custom clock rates. Note that these "clocks"
364baca8a0cSMauro Carvalho Chehabdon't relate to timekeeping or real time clocks (RTCs), each of which
365baca8a0cSMauro Carvalho Chehabhave separate frameworks. These :c:type:`struct clk <clk>`
366baca8a0cSMauro Carvalho Chehabinstances may be used to manage for example a 96 MHz signal that is used
367baca8a0cSMauro Carvalho Chehabto shift bits into and out of peripherals or busses, or otherwise
368baca8a0cSMauro Carvalho Chehabtrigger synchronous state machine transitions in system hardware.
369baca8a0cSMauro Carvalho Chehab
370baca8a0cSMauro Carvalho ChehabPower management is supported by explicit software clock gating: unused
371baca8a0cSMauro Carvalho Chehabclocks are disabled, so the system doesn't waste power changing the
372baca8a0cSMauro Carvalho Chehabstate of transistors that aren't in active use. On some systems this may
373baca8a0cSMauro Carvalho Chehabbe backed by hardware clock gating, where clocks are gated without being
374baca8a0cSMauro Carvalho Chehabdisabled in software. Sections of chips that are powered but not clocked
375baca8a0cSMauro Carvalho Chehabmay be able to retain their last state. This low power state is often
376baca8a0cSMauro Carvalho Chehabcalled a *retention mode*. This mode still incurs leakage currents,
377baca8a0cSMauro Carvalho Chehabespecially with finer circuit geometries, but for CMOS circuits power is
378baca8a0cSMauro Carvalho Chehabmostly used by clocked state changes.
379baca8a0cSMauro Carvalho Chehab
380baca8a0cSMauro Carvalho ChehabPower-aware drivers only enable their clocks when the device they manage
381baca8a0cSMauro Carvalho Chehabis in active use. Also, system sleep states often differ according to
382baca8a0cSMauro Carvalho Chehabwhich clock domains are active: while a "standby" state may allow wakeup
383baca8a0cSMauro Carvalho Chehabfrom several active domains, a "mem" (suspend-to-RAM) state may require
384baca8a0cSMauro Carvalho Chehaba more wholesale shutdown of clocks derived from higher speed PLLs and
385baca8a0cSMauro Carvalho Chehaboscillators, limiting the number of possible wakeup event sources. A
386baca8a0cSMauro Carvalho Chehabdriver's suspend method may need to be aware of system-specific clock
387baca8a0cSMauro Carvalho Chehabconstraints on the target sleep state.
388baca8a0cSMauro Carvalho Chehab
389baca8a0cSMauro Carvalho ChehabSome platforms support programmable clock generators. These can be used
390baca8a0cSMauro Carvalho Chehabby external chips of various kinds, such as other CPUs, multimedia
391baca8a0cSMauro Carvalho Chehabcodecs, and devices with strict requirements for interface clocking.
392baca8a0cSMauro Carvalho Chehab
393baca8a0cSMauro Carvalho Chehab.. kernel-doc:: include/linux/clk.h
394baca8a0cSMauro Carvalho Chehab   :internal:
395764f8079SPaul E. McKenney
396764f8079SPaul E. McKenneySynchronization Primitives
397764f8079SPaul E. McKenney==========================
398764f8079SPaul E. McKenney
399764f8079SPaul E. McKenneyRead-Copy Update (RCU)
400764f8079SPaul E. McKenney----------------------
401764f8079SPaul E. McKenney
402764f8079SPaul E. McKenney.. kernel-doc:: include/linux/rcupdate.h
403764f8079SPaul E. McKenney
404764f8079SPaul E. McKenney.. kernel-doc:: kernel/rcu/tree.c
405764f8079SPaul E. McKenney
406764f8079SPaul E. McKenney.. kernel-doc:: kernel/rcu/tree_exp.h
407764f8079SPaul E. McKenney
408764f8079SPaul E. McKenney.. kernel-doc:: kernel/rcu/update.c
409764f8079SPaul E. McKenney
410764f8079SPaul E. McKenney.. kernel-doc:: include/linux/srcu.h
411764f8079SPaul E. McKenney
412764f8079SPaul E. McKenney.. kernel-doc:: kernel/rcu/srcutree.c
413764f8079SPaul E. McKenney
414764f8079SPaul E. McKenney.. kernel-doc:: include/linux/rculist_bl.h
415764f8079SPaul E. McKenney
416764f8079SPaul E. McKenney.. kernel-doc:: include/linux/rculist.h
417764f8079SPaul E. McKenney
418764f8079SPaul E. McKenney.. kernel-doc:: include/linux/rculist_nulls.h
419764f8079SPaul E. McKenney
420764f8079SPaul E. McKenney.. kernel-doc:: include/linux/rcu_sync.h
421764f8079SPaul E. McKenney
422764f8079SPaul E. McKenney.. kernel-doc:: kernel/rcu/sync.c
423e1bd2334SPaul E. McKenney
424e1bd2334SPaul E. McKenney.. kernel-doc:: kernel/rcu/tasks.h
425e1bd2334SPaul E. McKenney
426e1bd2334SPaul E. McKenney.. kernel-doc:: kernel/rcu/tree_stall.h
427e1bd2334SPaul E. McKenney
428e1bd2334SPaul E. McKenney.. kernel-doc:: include/linux/rcupdate_trace.h
429e1bd2334SPaul E. McKenney
430e1bd2334SPaul E. McKenney.. kernel-doc:: include/linux/rcupdate_wait.h
431e1bd2334SPaul E. McKenney
432e1bd2334SPaul E. McKenney.. kernel-doc:: include/linux/rcuref.h
433e1bd2334SPaul E. McKenney
434e1bd2334SPaul E. McKenney.. kernel-doc:: include/linux/rcutree.h
435