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

依旧是好记性不如烂笔头,今天需要学习的是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这个头文件的定义:

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值