博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
types.h头文件学习
阅读量:6856 次
发布时间:2019-06-26

本文共 1835 字,大约阅读时间需要 6 分钟。

types.h头文件纵观,就可以看出是对一些数据类型的重命名或者是定义,以及对DMA通用地址的定义以及其64为的特性。下面是types.h头文件的源代码,主要的学习内容都在注释当中。

#ifndef _I386_TYPES_H#define _I386_TYPES_H#ifndef __ASSEMBLY__/** * 纵观这个头文件,发现该头文件主要是用来给 * 定义类型以及给类型重新命名的 *///将unsigned short 重命名为 umode_ttypedef unsigned short umode_t;/* * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space * * __xx也是可以的。他不会影响POSIX命名空间。在导出到用户空间的头文件中 * 使用这些名称. *  *///重命名有符号的char和无符号的char//可以这样去理解,由于一个char占用一个字节的长度,//也就是8位,所以才会这样去命名typedef __signed__ char __s8;typedef unsigned char __u8;//重新命名有符号的short和无符号的short//short类型占有2个字节的长度,也就是16位typedef __signed__ short __s16;typedef unsigned short __u16;//重命名有符号的int和无符号的int//int类型占有四个字节的长度,即32位typedef __signed_ /* __KERNEL__ */_ int __s32;typedef unsigned int __u32;//在定一个__GNUC__和没有定义__STRICT_ANSI__下//来重命名long//long占有8个字节的长度,64位#if defined(__GNUC__) && !defined(__STRICT_ANSI__)typedef __signed__ long long __s64;typedef unsigned long long __u64;#endif#endif /* __ASSEMBLY__ *//* * These aren't exported outside the kernel to avoid name space clashes * * 为了避免命名空间冲突,这些将不会导出到内核外面 */#ifdef __KERNEL__//一个宏定义,定义BITS_PER_LONG//为32#define BITS_PER_LONG 32//在没有定义__ASSEMBLY__的情况下#ifndef __ASSEMBLY__//同上typedef signed char s8;typedef unsigned char u8;typedef signed short s16;typedef unsigned short u16;typedef signed int s32;typedef unsigned int u32;typedef signed long long s64;typedef unsigned long long u64;/* DMA addresses come in generic and 64-bit flavours.  *///定义DMA通用地址和64位特性#ifdef CONFIG_HIGHMEM64Gtypedef u64 dma_addr_t;#elsetypedef u32 dma_addr_t;#endiftypedef u64 dma64_addr_t;#ifdef CONFIG_LBDtypedef u64 sector_t;#define HAVE_SECTOR_T#endif#ifdef CONFIG_LSFtypedef u64 blkcnt_t;#define HAVE_BLKCNT_T#endif#endif /* __ASSEMBLY__ */#endif /* __KERNEL__ */#endif

转载于:https://www.cnblogs.com/bobo1223/p/7287621.html

你可能感兴趣的文章
从BadBoy导入脚本并调试
查看>>
2017.10.27 Cypress BLE
查看>>
.net 信息采集ajax数据
查看>>
公司 邮件 翻译 培训 长难句 19
查看>>
深入理解盒模型
查看>>
深入理解javascript描述元素内容的5个属性
查看>>
poj2128
查看>>
poj2369
查看>>
JavaScript数据类型检测
查看>>
JS-给对象动态添加属性
查看>>
Struts2 中 result type=”json” 的参数解释
查看>>
25.内置API
查看>>
3.Web项目中使用Log4j实例
查看>>
Codeforces 787 A The Monster 扩欧
查看>>
Python正则表达式之 - ?: / ?= / ?!
查看>>
Java接口中的成员变量的意义
查看>>
用nodejs访问ActiveX对象,以操作Access数据库为例。
查看>>
Silverlight 调用远程地址出错
查看>>
pip更新
查看>>
python之enumerate()函数用法
查看>>