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
相关推荐
地衣君4 小时前
RISC-V 开发板 + Ubuntu 23.04 部署 open_vins 过程
linux·ubuntu·risc-v
5:004 小时前
云备份项目
linux·开发语言·c++
码农101号4 小时前
Linux中shell编程表达式和数组讲解
linux·运维·服务器
云道轩5 小时前
升级centos 7.9内核到 5.4.x
linux·运维·centos
是小满满满满吗5 小时前
传输层:udp与tcp协议
linux·服务器·网络
爱学习的小道长5 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
EelBarb5 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu
Xam_d_LM5 小时前
【Latex】Windows/Ubuntu 绘制 eps 矢量图通用方法(drawio),支持插入 Latex 数学公式
linux·ubuntu·科研·矢量图·drawio
Mintimate6 小时前
云服务器 Linux 手动 DD 安装第三方 Linux 发行版:原理与实战
linux·运维·服务器
RussellFans6 小时前
Linux 环境配置
linux·运维·服务器