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
相关推荐
轻松Ai享生活1 天前
5 节课深入学习Linux Cgroups
linux
christine-rr1 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
三坛海会大神5551 天前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆1 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
乌萨奇也要立志学C++1 天前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
獭.獭.1 天前
Linux -- 信号【上】
linux·运维·服务器
hashiqimiya1 天前
centos配置环境变量jdk
linux·运维·centos
hashiqimiya1 天前
权限更改centos中系统文件无法创建文件夹,使用命令让普通用户具备操作文件夹
linux
逆小舟1 天前
【Linux】人事档案——用户及组管理
linux·c++
青草地溪水旁1 天前
pthread_mutex_lock函数深度解析
linux·多线程·pthread