`
hongbochen1223
  • 浏览: 43766 次
文章分类
社区版块
存档分类
最新评论

types.h头文件学习

 
阅读更多

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

#ifndef _I386_TYPES_H
#define _I386_TYPES_H

#ifndef __ASSEMBLY__

/**
 * 纵观这个头文件,发现该头文件主要是用来给
 * 定义类型以及给类型重新命名的
 */

//将unsigned short 重命名为 umode_t
typedef 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_HIGHMEM64G
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
#endif
typedef u64 dma64_addr_t;

#ifdef CONFIG_LBD
typedef u64 sector_t;
#define HAVE_SECTOR_T
#endif

#ifdef CONFIG_LSF
typedef u64 blkcnt_t;
#define HAVE_BLKCNT_T
#endif

#endif /* __ASSEMBLY__ */

#endif /* __KERNEL__ */

#endif
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    arduino的wire.h头文件压缩包

    arduino的wire.h头文件压缩包arduino的wire.h头文件压缩包arduino的wire.h头文件压缩包arduino的wire.h头文件压缩包arduino的wire.h头文件压缩包arduino的wire.h头文件压缩包arduino的wire.h头文件压缩包arduino的...

    unistd.h 头文件

    unistd.h 头文件 可直接使用,应急下载

    conio.h头文件

    讲述conio.h头文件里函数的详细使用方法

    jni.h头文件

    学习JNI编译时,缺少的jni.h和jni_md.h头文件

    C++的文件 windows.h头文件

    C++的文件 windows.h头文件

    C语言头文件 GL.H C语言头文件 GL.H

    C语言头文件 GL.HC语言头文件 GL.HC语C语言头文件 GL.HC语言头文件 GL.HC语言头文件 GL.HC语言头文件...GL.HC语言头文件 GL.HC语言头文件 GL.HC语言头文件 GL.HC语言头文件 GL.HC语言头文言头文件 GL.HC语言头文件 GL.H

    stdint.h头文件

    很多项目经常使用的两个头文件inttypes.h stdint.h,否则会报错。网上很多资料,但基本上不可用。这两个文件,我在自己的项目中运行良好。

    VC调用LabView动态库所需要的.H头文件

    VC调用LabView动态库所需要的.H头文件,extcode.h,fundtypes.h,platdefines.h

    stdint.h和inttypes.h头文件

    可以用来解决VC不包含stdint.h头文件问题,网上下载的很多工程项目经常使用的两个头文件inttypes.h stdint.h,将头文件放到(以VS2008为例):C:\Program Files\Microsoft Visual Studio 9.0\VC\include(装在C盘时...

    alloc.h头文件

    非标准头文件 alloc.h ,主要是区别malloc.h 两个头文件的区别,查看其而这区别 非标准头文件 alloc.h ,主要是区别malloc.h 两个头文件的区别,查看其而这区别

    matlab.h头文件

    编译时你可能会提示缺少一个头文件 这就是其中之一的头文件 尤其是很多数学运算会用到这个头文件.

    windows.h头文件

    WINDOWS.H是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。

    seqlist.h头文件

    seqlist.h头文件,包含了其中的源代码。很标准的哦。

    C语言头文件 TYPEINFO.H

    C语言头文件 TYPEINFO.HC语言头文件 TYPEINFO.HC语言头文件 TYPEINFO.HC语言头文件 TYPEINFO.HC语言头文件 TYPEINFO.HC语言头文件 TYPEINFO.HC语言头文件 TYPEINFO.HC语言头文件 TYPEINFO.HC语言头文件 TYPEINFO.HC...

    wlanapi.h 头文件

    wlanapi.h 头文件 用于解决缺失wlanapi.h 头文件,有些编译软解没有该资源,或缺失,大家可下来,放在自己的库文件中,即可使用wlanapi.h 头文件 用于解决缺失wlanapi.h 头文件,有些编译软解没有该资源,或缺失,...

    c++自制game.h头文件

    解压后放到D盘 写代码时加上1行代码: #include &lt;D:\game.h&gt;即可 相当于万能头文件+fstream库+windows.h库+conio.h库 还有一些类型和函数

    C语言头文件 COMPLEX.H

    C语言头文件 COMPLEX.HC语言头文件 COMPLEX.HC语言头文件 COMPLEX.HC语言头文件 COMPLEX.HC语言头文件 COMPLEX.HC语言头文件 COMPLEX.HC语言头文件 COMPLEX.HC语言头文件 COMPLEX.HC语言头文件 COMPLEX.HC语言头文件...

    twain.h头文件

    twain.h头文件,编写twain程序用

    C语言头文件 MEMORY.H

    C语言头文件 MEMORY.HC语言头文件 MEMORY.HC语言头文件 MEMORY.HC语言头文件 MEMORY.HC语言头文件 MEMORY.HC语言头文件 MEMORY.HC语言头文件 MEMORY.HC语言头文件 MEMORY.HC语言头文件 MEMORY.HC语言头文件 MEMORY....

    product.h头文件

    product.h头文件

Global site tag (gtag.js) - Google Analytics