linux_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_转的更多相关文章
随机推荐
- UltraEdit程序设置添加到右键菜单
http://hellofs.blog.51cto.com/6109153/1180681 以前安装UltraEdit软件,在安装过程中选择将其添加到右键菜单,安装完成后就可以正常显示在右键菜单,这样 ...
- iOS获取设备卸载后不变的UUID
1.首先导入系统库Security.framework 2.创建文件SFHFKeychainUtils.h如下(复制即可): @interface SFHFKeychainUtils : NSObje ...
- SDL 2.0 API by Category
Basics View information and functions related to... View the header Initialization and Shutdown SDL. ...
- SAP接口设计的扩展性考虑
由于现在的系统和SAP的接口出现了几次变更,因此需要对系统进行设计改造.由于系统中和SAP交互的接口不止一处,而且也是在不同的时间段进行开发,并由不同的人员来完成的,因此我在维护升级的 ...
- Maven + Eclipse + Tomcat - 开启项目调试之旅(转载)
本文的读者需要拥有一些Maven基础知识和实践,如果没有,请直接绕过或者先看一些关于Maven教程,比如Juven翻译的<Maven权威指南>,google一下便知. 开门见山,首先抛出一 ...
- JMeter学习笔记--详解JMeter定时器
定时器的处理优先于同一作用域内的采样器,如果在同一作用域内有多个定时器,那么所有的定时器都会在每个采样器之前处理. 若定时器所在作用域内无采样器,那么定时器不会被处理 固定定时器,每个线程在请求之间间 ...
- Error_GL_KeyflexfieldDefinitionFactory.getStructureNumber无法找到应用产品
2014-07-12 BaoXinjian
- 页面日期选择控件--jquery ui datepicker 插件
日期选择插件Datepicker是一个配置灵活的插件,我们可以自定义其展示方式,包括日期格式.语言.限制选择日期范围.添加相关按钮以及其它导航等.官方地址:http://docs.jquery.com ...
- [k8s]prometheus+alertmanager二进制安装实现简单邮件告警
本次任务是用alertmanaer发一个报警邮件 本次环境采用二进制普罗组件 本次准备监控一个节点的内存,当使用率大于2%时候(测试),发邮件报警. k8s集群使用普罗官方文档 环境准备 下载二进制h ...
- 基于乐观锁的配置server与XServer的交互
XServer与配置server,配置server保存有XServer的配置文件里的信息. 怎样在项目启动时.让XServer从配置server中获取到自己的配置信息,并达到通信资源的节省与控制. 通 ...