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
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值