Linux下默认的include,include的默认搜索路径

1. #include <linux/***.h>

  • 位置 :这些头文件通常位于内核源代码树的 include/linux/ 目录下。

  • 用途linux/ 目录中的头文件包含了大量的内核接口、数据结构和宏定义,用于编写与内核交互的代码,如驱动程序、内核模块等。

    示例路径

    • include/linux/module.h
    • include/linux/kernel.h
    • include/linux/init.h

2. #include <asm/***.h>

  • 位置 :这些头文件位于内核源代码树的 arch/<architecture>/include/asm/ 目录下,其中 <architecture> 代表目标架构(如 x86, arm, arm64, riscv 等)。

  • 用途asm/ 目录中的头文件是与架构相关的接口定义,提供了特定处理器架构的低级接口和汇编相关的宏或函数。

    示例路径

    • arch/x86/include/asm/io.h
    • arch/arm/include/asm/system.h
    • arch/riscv/include/asm/atomic.h

3. #include <mach/***.h>

  • 位置mach/ 头文件通常位于特定平台相关的目录下,比如 arch/arm/mach-<platform>/include/mach/

  • 用途mach/ 目录中的头文件主要用于嵌入式平台或者特定硬件架构,定义了与特定机器相关的接口和实现。例如,不同的 ARM 处理器可能有各自的 mach 目录来定义硬件特性。

    示例路径

    • arch/arm/mach-omap2/include/mach/hardware.h
    • arch/arm/mach-exynos/include/mach/map.h

4. #include <uapi/***.h>

  • 位置 :位于 include/uapi/ 目录下。

  • 用途uapi 代表 "User API"(用户空间 API),这些头文件定义了内核向用户空间暴露的接口,如系统调用相关的结构体、常量和宏。这些文件通常通过 make headers_install 安装到 /usr/include 目录下,供用户空间应用程序使用。

    示例路径

    • include/uapi/linux/fs.h
    • include/uapi/linux/if.h
    • include/uapi/asm-generic/ioctl.h

5. #include <soc/***.h>

  • 位置 :位于 drivers/soc/include/soc/ 目录下。

  • 用途soc/ 目录用于定义与特定 SoC(System on Chip)相关的头文件和代码。这些头文件通常提供了访问 SoC 特定硬件资源的接口。

    示例路径

    • include/soc/qcom/smem.h
    • include/soc/tegra/common.h

6. #include <net/***.h>

  • 位置 :位于 include/net/ 目录下。

  • 用途:这些头文件与内核的网络子系统相关,定义了网络协议栈、接口和数据结构。通常用于网络驱动程序和网络协议的实现。

    示例路径

    • include/net/sock.h
    • include/net/net_namespace.h
    • include/net/tcp.h

7. #include <sound/***.h>

  • 位置 :位于 include/sound/ 目录下。

  • 用途:这些头文件与 ALSA(Advanced Linux Sound Architecture)子系统相关,定义了音频设备驱动程序的接口和数据结构。

    示例路径

    • include/sound/core.h
    • include/sound/pcm.h
    • include/sound/control.h

8. #include <media/***.h>

  • 位置 :位于 include/media/ 目录下。

  • 用途:这些头文件与 Linux 媒体子系统相关,定义了视频设备、摄像头、电视调谐器等的接口和数据结构。

    示例路径

    • include/media/v4l2-dev.h
    • include/media/media-device.h
    • include/media/dvbdev.h

9. #include <crypto/***.h>

  • 位置 :位于 include/crypto/ 目录下。

  • 用途:这些头文件与内核的加密子系统相关,定义了加密算法、加密上下文、密钥管理等功能接口。

    示例路径

    • include/crypto/hash.h
    • include/crypto/skcipher.h
    • include/crypto/algapi.h

10. #include <trace/***.h>

  • 位置 :位于 include/trace/include/trace/events/ 目录下。

  • 用途:这些头文件与内核的跟踪和调试子系统相关,定义了跟踪点、事件和跟踪控制接口,用于内核性能分析和调试。

    示例路径

    • include/trace/trace_events.h
    • include/trace/events/sched.h
    • include/trace/events/net.h

11. #include <drm/***.h>

  • 位置 :位于 include/drm/ 目录下。

  • 用途:这些头文件与 Direct Rendering Manager (DRM) 子系统相关,定义了图形设备驱动程序的接口,特别是用于显示控制器和 GPU 驱动。

    示例路径

    • include/drm/drmP.h
    • include/drm/drm_crtc.h
    • include/drm/drm_mode.h

12. #include <video/***.h>

  • 位置 :位于 include/video/ 目录下。

  • 用途:这些头文件与 Linux 内核的视频子系统相关,定义了图形和显示设备的接口,包括 framebuffer 驱动程序等。

    示例路径

    • include/video/videomode.h
    • include/video/edid.h
    • include/video/of_videomode.h

13. #include <sound/***.h>

  • 位置 :位于 include/sound/ 目录下。

  • 用途:这些头文件与音频设备驱动程序相关,定义了用于音频处理的接口,如 PCM(脉冲编码调制)和控制接口等。

    示例路径

    • include/sound/core.h
    • include/sound/pcm.h
相关推荐
R_.L43 分钟前
Linux : 线程【同步与互斥】
linux
再睡一夏就好1 小时前
从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区
linux·服务器·c语言·开发语言·学习笔记
honey ball6 小时前
R & S的EMI接收机面板
linux·运维·网络
柳如烟@8 小时前
在Rocky Linux 9.5上部署MongoDB 8.0.9:从安装到认证的完整指南
linux·运维·mongodb
QQ2740287569 小时前
Kite AI 自动机器人部署教程
linux·运维·服务器·人工智能·机器人·web3
.小墨迹9 小时前
Apollo学习——planning模块(3)之planning_base
linux·开发语言·c++·学习·自动驾驶
影龙帝皖10 小时前
Linux服务之lvs+keepalived nginx+keepalived负载均衡实例解析
linux·nginx·lvs
八月的雨季 最後的冰吻10 小时前
SIP协议栈--osip源码梳理
linux·服务器·网络·c++·网络协议
敖云岚11 小时前
【Linux】基于虚拟机实现网络的管理
linux·服务器·网络
luck_me511 小时前
如何远程执行脚本不留痕迹
linux·运维·服务器