Back to home page

OSCL-LXR

 
 

    


0001 .. include:: ../disclaimer-zh_CN.rst
0002 
0003 :Original: Documentation/core-api/kernel-api.rst
0004 
0005 :翻译:
0006 
0007  司延腾 Yanteng Si <siyanteng@loongson.cn>
0008  周彬彬 Binbin Zhou <zhoubinbin@loongson.cn>
0009 
0010 .. _cn_kernel-api.rst:
0011 
0012 ============
0013 Linux内核API
0014 ============
0015 
0016 
0017 列表管理函数
0018 ============
0019 
0020 该API在以下内核代码中:
0021 
0022 include/linux/list.h
0023 
0024 基本的C库函数
0025 =============
0026 
0027 在编写驱动程序时,一般不能使用C库中的例程。部分函数通常很有用,它们在
0028 下面被列出。这些函数的行为可能会与ANSI定义的略有不同,这些偏差会在文中
0029 注明。
0030 
0031 字符串转换
0032 ----------
0033 
0034 该API在以下内核代码中:
0035 
0036 lib/vsprintf.c
0037 
0038 include/linux/kernel.h
0039 
0040 include/linux/kernel.h
0041 
0042 lib/kstrtox.c
0043 
0044 lib/string_helpers.c
0045 
0046 字符串处理
0047 ----------
0048 
0049 该API在以下内核代码中:
0050 
0051 lib/string.c
0052 
0053 include/linux/string.h
0054 
0055 mm/util.c
0056 
0057 基本的内核库函数
0058 ================
0059 
0060 Linux内核提供了很多实用的基本函数。
0061 
0062 位运算
0063 ------
0064 
0065 该API在以下内核代码中:
0066 
0067 include/asm-generic/bitops/instrumented-atomic.h
0068 
0069 include/asm-generic/bitops/instrumented-non-atomic.h
0070 
0071 include/asm-generic/bitops/instrumented-lock.h
0072 
0073 位图运算
0074 --------
0075 
0076 该API在以下内核代码中:
0077 
0078 lib/bitmap.c
0079 
0080 include/linux/bitmap.h
0081 
0082 include/linux/bitmap.h
0083 
0084 include/linux/bitmap.h
0085 
0086 lib/bitmap.c
0087 
0088 lib/bitmap.c
0089 
0090 include/linux/bitmap.h
0091 
0092 命令行解析
0093 ----------
0094 
0095 该API在以下内核代码中:
0096 
0097 lib/cmdline.c
0098 
0099 排序
0100 ----
0101 
0102 该API在以下内核代码中:
0103 
0104 lib/sort.c
0105 
0106 lib/list_sort.c
0107 
0108 文本检索
0109 --------
0110 
0111 该API在以下内核代码中:
0112 
0113 lib/textsearch.c
0114 
0115 lib/textsearch.c
0116 
0117 include/linux/textsearch.h
0118 
0119 Linux中的CRC和数学函数
0120 ======================
0121 
0122 
0123 CRC函数
0124 -------
0125 
0126 *译注:CRC,Cyclic Redundancy Check,循环冗余校验*
0127 
0128 该API在以下内核代码中:
0129 
0130 lib/crc4.c
0131 
0132 lib/crc7.c
0133 
0134 lib/crc8.c
0135 
0136 lib/crc16.c
0137 
0138 lib/crc32.c
0139 
0140 lib/crc-ccitt.c
0141 
0142 lib/crc-itu-t.c
0143 
0144 基数为2的对数和幂函数
0145 ---------------------
0146 
0147 该API在以下内核代码中:
0148 
0149 include/linux/log2.h
0150 
0151 整数幂函数
0152 ----------
0153 
0154 该API在以下内核代码中:
0155 
0156 lib/math/int_pow.c
0157 
0158 lib/math/int_sqrt.c
0159 
0160 除法函数
0161 --------
0162 
0163 该API在以下内核代码中:
0164 
0165 include/asm-generic/div64.h
0166 
0167 include/linux/math64.h
0168 
0169 lib/math/div64.c
0170 
0171 lib/math/gcd.c
0172 
0173 UUID/GUID
0174 ---------
0175 
0176 该API在以下内核代码中:
0177 
0178 lib/uuid.c
0179 
0180 内核IPC设备
0181 ===========
0182 
0183 IPC实用程序
0184 -----------
0185 
0186 该API在以下内核代码中:
0187 
0188 ipc/util.c
0189 
0190 FIFO 缓冲区
0191 ===========
0192 
0193 kfifo接口
0194 ---------
0195 
0196 该API在以下内核代码中:
0197 
0198 include/linux/kfifo.h
0199 
0200 转发接口支持
0201 ============
0202 
0203 转发接口支持旨在为工具和设备提供一种有效的机制,将大量数据从内核空间
0204 转发到用户空间。
0205 
0206 转发接口
0207 --------
0208 
0209 该API在以下内核代码中:
0210 
0211 kernel/relay.c
0212 
0213 kernel/relay.c
0214 
0215 模块支持
0216 ========
0217 
0218 模块加载
0219 --------
0220 
0221 该API在以下内核代码中:
0222 
0223 kernel/kmod.c
0224 
0225 模块接口支持
0226 ------------
0227 
0228 更多信息请参阅kernel/module/目录下的文件。
0229 
0230 硬件接口
0231 ========
0232 
0233 
0234 该API在以下内核代码中:
0235 
0236 kernel/dma.c
0237 
0238 资源管理
0239 --------
0240 
0241 该API在以下内核代码中:
0242 
0243 kernel/resource.c
0244 
0245 kernel/resource.c
0246 
0247 MTRR处理
0248 --------
0249 
0250 该API在以下内核代码中:
0251 
0252 arch/x86/kernel/cpu/mtrr/mtrr.c
0253 
0254 安全框架
0255 ========
0256 
0257 该API在以下内核代码中:
0258 
0259 security/security.c
0260 
0261 security/inode.c
0262 
0263 审计接口
0264 ========
0265 
0266 该API在以下内核代码中:
0267 
0268 kernel/audit.c
0269 
0270 kernel/auditsc.c
0271 
0272 kernel/auditfilter.c
0273 
0274 核算框架
0275 ========
0276 
0277 该API在以下内核代码中:
0278 
0279 kernel/acct.c
0280 
0281 块设备
0282 ======
0283 
0284 该API在以下内核代码中:
0285 
0286 include/linux/bio.h
0287 
0288 block/blk-core.c
0289 
0290 block/blk-core.c
0291 
0292 block/blk-map.c
0293 
0294 block/blk-sysfs.c
0295 
0296 block/blk-settings.c
0297 
0298 block/blk-flush.c
0299 
0300 block/blk-lib.c
0301 
0302 block/blk-integrity.c
0303 
0304 kernel/trace/blktrace.c
0305 
0306 block/genhd.c
0307 
0308 block/genhd.c
0309 
0310 字符设备
0311 ========
0312 
0313 该API在以下内核代码中:
0314 
0315 fs/char_dev.c
0316 
0317 时钟框架
0318 ========
0319 
0320 时钟框架定义了编程接口,以支持系统时钟树的软件管理。该框架广泛用于系统级芯片(SOC)平
0321 台,以支持电源管理和各种可能需要自定义时钟速率的设备。请注意,这些 “时钟”与计时或实
0322 时时钟(RTC)无关,它们都有单独的框架。这些:c:type: `struct clk <clk>` 实例可用于管理
0323 各种时钟信号,例如一个96理例如96MHz的时钟信号,该信号可被用于总线或外设的数据交换,或以
0324 其他方式触发系统硬件中的同步状态机转换。
0325 
0326 通过明确的软件时钟门控来支持电源管理:未使用的时钟被禁用,因此系统不会因为改变不在使用
0327 中的晶体管的状态而浪费电源。在某些系统中,这可能是由硬件时钟门控支持的,其中时钟被门控
0328 而不在软件中被禁用。芯片的部分,在供电但没有时钟的情况下,可能会保留其最后的状态。这种
0329 低功耗状态通常被称为*保留模式*。这种模式仍然会产生漏电流,特别是在电路几何结构较细的情
0330 况下,但对于CMOS电路来说,电能主要是随着时钟翻转而被消耗的。
0331 
0332 电源感知驱动程序只有在其管理的设备处于活动使用状态时才会启用时钟。此外,系统睡眠状态通
0333 常根据哪些时钟域处于活动状态而有所不同:“待机”状态可能允许从多个活动域中唤醒,而
0334 "mem"(暂停到RAM)状态可能需要更全面地关闭来自高速PLL和振荡器的时钟,从而限制了可能
0335 的唤醒事件源的数量。驱动器的暂停方法可能需要注意目标睡眠状态的系统特定时钟约束。
0336 
0337 一些平台支持可编程时钟发生器。这些可以被各种外部芯片使用,如其他CPU、多媒体编解码器以
0338 及对接口时钟有严格要求的设备。
0339 
0340 该API在以下内核代码中:
0341 
0342 include/linux/clk.h
0343 
0344 同步原语
0345 ========
0346 
0347 读-复制-更新(RCU)
0348 -------------------
0349 
0350 该API在以下内核代码中:
0351 
0352 include/linux/rcupdate.h
0353 
0354 kernel/rcu/tree.c
0355 
0356 kernel/rcu/tree_exp.h
0357 
0358 kernel/rcu/update.c
0359 
0360 include/linux/srcu.h
0361 
0362 kernel/rcu/srcutree.c
0363 
0364 include/linux/rculist_bl.h
0365 
0366 include/linux/rculist.h
0367 
0368 include/linux/rculist_nulls.h
0369 
0370 include/linux/rcu_sync.h
0371 
0372 kernel/rcu/sync.c