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 分钟前
C++ new和delete用法详解
linux·开发语言·c++
APIshop14 分钟前
Java获取京东商品详情接口(item_get)实战指南
java·linux·数据库
Cx330❀42 分钟前
一文吃透Linux System V共享内存:原理+实操+避坑指南
大数据·linux·运维·服务器·人工智能
薛定谔的悦1 小时前
储能系统(EMS)核心架构解析:充放电控制、防逆流、防过载与 PID 调节
linux·运维·架构
3GPP仿真实验室1 小时前
【MATLAB源码】CSI-RS:测量链路
linux·网络·matlab
阿 才1 小时前
WSL2 + TFTP + 网络启动(Linux开发板与WSL2建立网络连接)
linux·运维·网络
IMPYLH2 小时前
Linux 的 false 命令
linux·运维·服务器·bash
小江的记录本2 小时前
【Linux】《Linux常用命令汇总表》
linux·运维·服务器·前端·windows·后端·macos
一匹电信狗2 小时前
【Linux我做主】进程程序替换和exec函数族
linux·运维·服务器·c++·ubuntu·小程序·开源
济6173 小时前
ARM Linux 驱动开发篇--- Linux 并发与竞争实验(原子操作)--- Ubuntu20.04
linux·嵌入式·嵌入式linux驱动开发