cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

kernel-api.rst (6046B)


      1.. include:: ../disclaimer-zh_CN.rst
      2
      3:Original: Documentation/core-api/kernel-api.rst
      4
      5:翻译:
      6
      7 司延腾 Yanteng Si <siyanteng@loongson.cn>
      8
      9.. _cn_kernel-api.rst:
     10
     11============
     12Linux内核API
     13============
     14
     15
     16列表管理函数
     17============
     18
     19该API在以下内核代码中:
     20
     21include/linux/list.h
     22
     23基本的C库函数
     24=============
     25
     26在编写驱动程序时,一般不能使用C库中的例程。部分函数通常很有用,它们在
     27下面被列出。这些函数的行为可能会与ANSI定义的略有不同,这些偏差会在文中
     28注明。
     29
     30字符串转换
     31----------
     32
     33该API在以下内核代码中:
     34
     35lib/vsprintf.c
     36
     37include/linux/kernel.h
     38
     39include/linux/kernel.h
     40
     41lib/kstrtox.c
     42
     43lib/string_helpers.c
     44
     45字符串处理
     46----------
     47
     48该API在以下内核代码中:
     49
     50lib/string.c
     51
     52include/linux/string.h
     53
     54mm/util.c
     55
     56基本的内核库函数
     57================
     58
     59Linux内核提供了很多实用的基本函数。
     60
     61位运算
     62------
     63
     64该API在以下内核代码中:
     65
     66include/asm-generic/bitops/instrumented-atomic.h
     67
     68include/asm-generic/bitops/instrumented-non-atomic.h
     69
     70include/asm-generic/bitops/instrumented-lock.h
     71
     72位图运算
     73--------
     74
     75该API在以下内核代码中:
     76
     77lib/bitmap.c
     78
     79include/linux/bitmap.h
     80
     81include/linux/bitmap.h
     82
     83include/linux/bitmap.h
     84
     85lib/bitmap.c
     86
     87lib/bitmap.c
     88
     89include/linux/bitmap.h
     90
     91命令行解析
     92----------
     93
     94该API在以下内核代码中:
     95
     96lib/cmdline.c
     97
     98排序
     99----
    100
    101该API在以下内核代码中:
    102
    103lib/sort.c
    104
    105lib/list_sort.c
    106
    107文本检索
    108--------
    109
    110该API在以下内核代码中:
    111
    112lib/textsearch.c
    113
    114lib/textsearch.c
    115
    116include/linux/textsearch.h
    117
    118Linux中的CRC和数学函数
    119======================
    120
    121
    122CRC函数
    123-------
    124
    125*译注:CRC,Cyclic Redundancy Check,循环冗余校验*
    126
    127该API在以下内核代码中:
    128
    129lib/crc4.c
    130
    131lib/crc7.c
    132
    133lib/crc8.c
    134
    135lib/crc16.c
    136
    137lib/crc32.c
    138
    139lib/crc-ccitt.c
    140
    141lib/crc-itu-t.c
    142
    143基数为2的对数和幂函数
    144---------------------
    145
    146该API在以下内核代码中:
    147
    148include/linux/log2.h
    149
    150整数幂函数
    151----------
    152
    153该API在以下内核代码中:
    154
    155lib/math/int_pow.c
    156
    157lib/math/int_sqrt.c
    158
    159除法函数
    160--------
    161
    162该API在以下内核代码中:
    163
    164include/asm-generic/div64.h
    165
    166include/linux/math64.h
    167
    168lib/math/div64.c
    169
    170lib/math/gcd.c
    171
    172UUID/GUID
    173---------
    174
    175该API在以下内核代码中:
    176
    177lib/uuid.c
    178
    179内核IPC设备
    180===========
    181
    182IPC实用程序
    183-----------
    184
    185该API在以下内核代码中:
    186
    187ipc/util.c
    188
    189FIFO 缓冲区
    190===========
    191
    192kfifo接口
    193---------
    194
    195该API在以下内核代码中:
    196
    197include/linux/kfifo.h
    198
    199转发接口支持
    200============
    201
    202转发接口支持旨在为工具和设备提供一种有效的机制,将大量数据从内核空间
    203转发到用户空间。
    204
    205转发接口
    206--------
    207
    208该API在以下内核代码中:
    209
    210kernel/relay.c
    211
    212kernel/relay.c
    213
    214模块支持
    215========
    216
    217模块加载
    218--------
    219
    220该API在以下内核代码中:
    221
    222kernel/kmod.c
    223
    224模块接口支持
    225------------
    226
    227更多信息请参考文件kernel/module.c。
    228
    229硬件接口
    230========
    231
    232
    233该API在以下内核代码中:
    234
    235kernel/dma.c
    236
    237资源管理
    238--------
    239
    240该API在以下内核代码中:
    241
    242kernel/resource.c
    243
    244kernel/resource.c
    245
    246MTRR处理
    247--------
    248
    249该API在以下内核代码中:
    250
    251arch/x86/kernel/cpu/mtrr/mtrr.c
    252
    253安全框架
    254========
    255
    256该API在以下内核代码中:
    257
    258security/security.c
    259
    260security/inode.c
    261
    262审计接口
    263========
    264
    265该API在以下内核代码中:
    266
    267kernel/audit.c
    268
    269kernel/auditsc.c
    270
    271kernel/auditfilter.c
    272
    273核算框架
    274========
    275
    276该API在以下内核代码中:
    277
    278kernel/acct.c
    279
    280块设备
    281======
    282
    283该API在以下内核代码中:
    284
    285block/blk-core.c
    286
    287block/blk-core.c
    288
    289block/blk-map.c
    290
    291block/blk-sysfs.c
    292
    293block/blk-settings.c
    294
    295block/blk-flush.c
    296
    297block/blk-lib.c
    298
    299block/blk-integrity.c
    300
    301kernel/trace/blktrace.c
    302
    303block/genhd.c
    304
    305block/genhd.c
    306
    307字符设备
    308========
    309
    310该API在以下内核代码中:
    311
    312fs/char_dev.c
    313
    314时钟框架
    315========
    316
    317时钟框架定义了编程接口,以支持系统时钟树的软件管理。该框架广泛用于系统级芯片(SOC)平
    318台,以支持电源管理和各种可能需要自定义时钟速率的设备。请注意,这些 “时钟”与计时或实
    319时时钟(RTC)无关,它们都有单独的框架。这些:c:type: `struct clk <clk>` 实例可用于管理
    320各种时钟信号,例如一个96理例如96MHz的时钟信号,该信号可被用于总线或外设的数据交换,或以
    321其他方式触发系统硬件中的同步状态机转换。
    322
    323通过明确的软件时钟门控来支持电源管理:未使用的时钟被禁用,因此系统不会因为改变不在使用
    324中的晶体管的状态而浪费电源。在某些系统中,这可能是由硬件时钟门控支持的,其中时钟被门控
    325而不在软件中被禁用。芯片的部分,在供电但没有时钟的情况下,可能会保留其最后的状态。这种
    326低功耗状态通常被称为*保留模式*。这种模式仍然会产生漏电流,特别是在电路几何结构较细的情
    327况下,但对于CMOS电路来说,电能主要是随着时钟翻转而被消耗的。
    328
    329电源感知驱动程序只有在其管理的设备处于活动使用状态时才会启用时钟。此外,系统睡眠状态通
    330常根据哪些时钟域处于活动状态而有所不同:“待机”状态可能允许从多个活动域中唤醒,而
    331"mem"(暂停到RAM)状态可能需要更全面地关闭来自高速PLL和振荡器的时钟,从而限制了可能
    332的唤醒事件源的数量。驱动器的暂停方法可能需要注意目标睡眠状态的系统特定时钟约束。
    333
    334一些平台支持可编程时钟发生器。这些可以被各种外部芯片使用,如其他CPU、多媒体编解码器以
    335及对接口时钟有严格要求的设备。
    336
    337该API在以下内核代码中:
    338
    339include/linux/clk.h
    340
    341同步原语
    342========
    343
    344读-复制-更新(RCU)
    345-------------------
    346
    347该API在以下内核代码中:
    348
    349include/linux/rcupdate.h
    350
    351kernel/rcu/tree.c
    352
    353kernel/rcu/tree_exp.h
    354
    355kernel/rcu/update.c
    356
    357include/linux/srcu.h
    358
    359kernel/rcu/srcutree.c
    360
    361include/linux/rculist_bl.h
    362
    363include/linux/rculist.h
    364
    365include/linux/rculist_nulls.h
    366
    367include/linux/rcu_sync.h
    368
    369kernel/rcu/sync.c