易截截图软件、单文件、免安装、纯绿色、仅160KB

linux内核基本数据类型总结


linux内核基本数据类型总结
对linux内核的数据类型做一下总结。
下面部分内容参考了:http://book.csdn.net/bookfiles/12/100126.shtml

Linux
内核在体系结构差异较大的平台之间移植时,会产生与数据类型相关的问题。在编译内核时使用
-Wall -Wstrict-prototypes
选项,可以避免很多错误的发生。
内核使用的基本数据类型主要有:
Ø
Ø
int         
标准
C
语言整数类型;
Ø
Ø
u32         
32
位整数类型;
Ø
Ø
pid_t       
特定内核对象
pid
的类型。
在不同的
CPU
体系结构上,
C
语言的数据类型所占空间不一样。下面是在
x86
下数据类型所占的字节数:
arch
char
short
int
long
ptr
long-long
u8
u16
u32
u64
i686
1
2
4
4
4
8
1
2
4
8
下面是在其他平台上的数据类型所占的字节数:
arch
char
short
int
long
ptr
long-long
u8
u16
u32
u64
i386
1
2
4
4
4
8
1
2
4
8
alpha
1
2
4
8
8
8
1
2
4
8
armv4l
1
2
4
4
4
8
1
2
4
8
ia64
1
2
4
8
8
8
1
2
4
8
m68k
1
2
4
4
4
8
1
2
4
8
mips
1
2
4
4
4
8
1
2
4
8
ppc
1
2
4
4
4
8
1
2
4
8
sparc
1
2
4
4
4
8
1
2
4
8
sparc64
1
2
4
4
4
8
1
2
4
8
其中基于
sparc64
平台的
Linux
用户空间可以运行
32
位代码,用户空间指针是
32
位宽的,但内核空间是
64
位的。
内核中的地址是
unsigned long
类型,指针大小和
long
类型相同。
内核提供下列数据类型。所有类型在头文件
<include/asm/types.h>
中声明,这个文件又被头文件
<Linux/types.h>
所包含。下面是
include/asm/types.h
文件。
这是对ARM体系结构中 /asm/types.h文件中的一些定义:
 因为我是对arm体系结构进行了配置
#
ifndef
__ASM_ARM_TYPES_H
#
define
__ASM_ARM_TYPES_H
#
ifndef
__ASSEMBLY__
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
 */
typedef
__signed__


相关文档:

Linux下完成的一个作业程序

文档创建日期:2010-02-19
    01    // P173: 2.编程题 (7)
    02   
    03    // The beginning of C program: test06-07.c.
    04   
    05    // ......

Linux下完成的一个作业程序

文档创建日期:2010-02-19
   001    // P174: 2.编程题 (9)将数组a中相同元素只保留第一个,其余删除。
   002   
   003    // The beginning of C program: test06-09.c.
   004   
   005  ......

Linux下完成的一个作业程序

文档创建日期:2010-02-19
    01    // P174: 2.编程题 (13)不利用strcmp函数,自己编程实现两个任意字符串的比较。
    02   
    03    // The beginning of C program: test06-13.c.
    04 &nbs ......

Linux文件系统分析

这是交Linux报告的论文:
   部分资料是从IBM提供给我们学院的资料上翻译的.
   主要是关于Linux文件系统的,希望对大家了解Linux系统有所帮助.
 
 
Linux的根文件系统下各个目录的作用:
在Linux中文件系统构建和UNIX中差不多,但两者还是有一些小的出入。
下图是Linux中文件系统结构的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号