码迷,mamicode.com
首页 > 移动开发 > 详细

Android内核源码bionic目录下的子目录arch-arm源码分析笔记

时间:2015-01-10 16:39:21      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

依旧是好记性不如烂笔头,今天需要学习的是arch-arm目录下的代码。

首先我们先看一下inclue目录下的endian这个头文件我们主要是需要知道下面的几点知识。

1、先看一下下面的代码的片段

#if !defined __ARM_ARCH_5__ && !defined __ARM_ARCH_5T__ &&     !defined __ARM_ARCH_5TE__ && !defined __ARM_ARCH_5TEJ__ &&     !defined __ARM_ARCH_4T__ && !defined __ARM_ARCH_4__

正如google上面的注释文本所说:

REV与REV16在ARM5与ARM4上面是不可用的。同时说明了没有包含<machine/cpu-features.h>这个头文件的原因是因为它会使用类似如PLD的符号串处理语言来污染命名空间。

接下来我们看到的是marchine目录下的一些头文件的定义。

在_types这个头文件中,我们看以下的代码的片段:

#define _SIZE_T
#define _SSIZE_T
#define _PTRDIFF_T
typedef unsigned long  size_t;
typedef long           ssize_t;
typedef long           ptrdiff_t;
#endif

正如Google所注释的那样:

内核定义size_t作为无符号的整型数据,但是g++却希望它的类型是无符号long类型的数据。


接下来主要是仔细的来看一下cpu-features这个头文件的定义:

1、正如注释所说的那样,这个头文件定义的目的是定义若干符号串语言来积极响应CPU的特色。同时这些CPU的特色在目标的CPU上面再编译时刻也许是不能够使用的。

2、这样做的目的是使我们从各种不同的Arm的体系结构中抽象出来。

3、ieee这个头文件的作用是定义依赖机器的浮点型数据的结构。


接下来查看一下kernel这个头文件的定义:

在这个文件中主要是定义内核特定的定义,优化了内核的头文件。



Android内核源码bionic目录下的子目录arch-arm源码分析笔记

标签:

原文地址:http://blog.csdn.net/zhangjiaofa/article/details/42583321

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!