Linux 琐事之123程序员

LINUX_VERSION_CODE与KERNEL_VERSIO

2017-02-17  本文已影响173人  2625K

由于Linux版本的在不断更新,当设备驱动去兼容不同版本的内核时,需要知道当前使用的内核源码版本,以此来调用对应版本的内核API,这两个宏定义在文件

/usr/include/linux/version.h

#define LINUX_VERSION_CODE 263213
#define KERNEL_VERSION(a,b,c) (((a)<<16)+((b)<<8)+(c))

我安装完linux-header之后,在下面这个目录找到了version.h这个文件

/usr/lib/modules/4.4.45-1-MANJARO/build/include/generated/uapi/linux/version.h

使用的Linux系统为MANJARO,内核版本号为4.4.45,对应的LINUX_VERRSION_CODE 为263213,计算方法如下:

#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
....//3.10.0 之前的API调用
#else 
....//3.10.0 版本之后的API调用
#endif 

上一篇 下一篇

猜你喜欢

热点阅读