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