转自:Linux Kernel UAPI

问题描述

从3.5开始,Linux Kernel 里多了一个 uapi 文件夹,里面放了很多 Linux Kernel 各个模块的头文件。如果是第一次碰到,可能会对这个不是很了解。

问题分析

Linux Kernel 中新增的这些 uapi 头文件,其实都是来自于各个模块原先的头文件,最先是由 David Howells 提出来的。uapi 只是把内核用到的头文件和用户态用到的头文件分开。

解决方案

在 3.5 之前,Linux Kernel 的头文件一般是这样的:

/* Header comments (copyright, etc.) */

#ifndef _XXXXXX_H
#define _XXXXXX_H [User-space definitions] #ifdef __KERNEL__ [Kernel-space definitions] #endif /* __KERNEL__ */ [User-space definitions] #endif

而在 3.5 之后,这样一个头文件就会被分为两个:

.filename.h
/* Header comments (copyright, etc.) */
#ifndef XXXX_H
#define XXXX_H #include <include/uapi/path/to/header.h> [Kernel-space definitions] #endif
./uapi/filename.h
/* Header comments (copyright, etc.) */ #ifndef _UAPI_XXXX_H
#define _UAPI_XXXX_H [User-space definitions] #endif   

这样做有什么好处呢?一个是解决 Linux Kernel 里的交叉引用,另外一个就是方便用户态的开发者,可以简单的查看 uapi 里的代码变化来确定 Linux Kernel 是否改变了系统 API。

参考:linux源码中的uapi的来源include recursion

linux_UAPI_转的更多相关文章

随机推荐

  1. 测试化工具XCTestCase

    layout: post title: "Xcode 7智能测试化工具XCTest学习" subtitle: "Xcode 7智能测试化工具XCTest学习" ...

  2. 有效Log4j按指定级别定向输出日志到指定的输出文件地址配置Threshold,log4j中如何屏蔽父logger输出源rootlogger的additivity配置,log4j向多个文件记录日志

    log4j向多个文件记录日志 关键配置,指定想要的日志级别信息输出到指定的日志文件中: log4j.appender.errorLogger.Threshold=ERROR #扩展,可指定只在子类自己 ...

  3. FA_会计中的折旧方式的种类(概念)

    2014-06-08 Created By BaoXinjian

  4. OGG_GoldenGate数据库配置DDL同步(案例)

    2014-03-08 Created By BaoXinjian

  5. Python floor() 函数

    描述 floor(x) 函数返回一个小于或等于 x 的的最大整数(向下取整) 语法 以下是 floor() 方法的语法: import math math.floor( x ) 注意:floor()是 ...

  6. spring mvc 依赖包

    <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop&l ...

  7. thinkphp中获取参数值的方法

    以获取$type这个参数为例:一:通过传统方法:$_GET, $_POST    $type = intval($_GET['type'])这种方法需要自己写过滤规则,保证数据安全. 二:在Actio ...

  8. 使用SQL语句的子查询批量复制表数据

    批量复制表数据这里有两种方法,下面分别来介绍这两种方法: 一.手动创建新表,然后复制数据 如果是要复制整个表的话,可以使用SQL SERVER自动生成CREATE脚本: 然后在脚本中改改表名就可以了, ...

  9. Javac编译器

    One Compiler http://www.oracle.com/technetwork/java/jvmls2016-wimmer-3125555.pdf Hacking the OpenJDK ...

  10. ny225 小明求素数积

    小明求素数积时间限制:1000 ms  |  内存限制:65535 KB 难度:1描述 小明最近遇到了一个素数题,是给你一个正整数N(2=<N<=1000)让你求出2~N的所有素数乘积的后 ...