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这个头文件的定义:

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

时间: 2024-12-11 18:48:24

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

Android内核源码bionic目录下的源码的学习笔记

好记性不如烂笔头.今天要做的学习是关于bionic目录下的代码. 首先需要看的是_errno.c这份代码. volatile int* __errno( void ) { return &((volatile int*)__get_tls())[TLS_SLOT_ERRNO]; } 从上面可以看出,返回的是一个指向int类型的指针. volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统.硬件或者其它线程等.由于访问寄存器的速度要快过RAM,

使用rsync+inotify的方式监控一个目录,当被监控目录下的子目录被移走后无法同步的问题

最近在测试rsync+inotify的方式同步PHP代码到一个集群下的WEB服务器.如被监控的目录是/var/www/html下有三个目录 dream_android  dream_ios  game_router 当我把dream_android这个目录更名为android后,发现其他服务器上没有出现android并且原有的dream_android并没有被删除.测试游戏时发现大量的404错误,最大的问题就是代码同步出现了问题. 检查同步脚本中inotify和rsync相关的信息 /usr/b

Python扫描指定目录下(包括子目录)的文件

扫描指定目录下的文件,或者匹配指定后缀和前缀的函数. 如果要扫描指定目录下的文件,包括子目录,调用scan_files("/export/home/test/") 如果要扫描指定目录下的特定后缀的文件(比如jar包),包括子目录,调用scan_files("/export/home/test/", postfix=".jar") 如果要扫描指定目录下的特定前缀的文件(比如test_xxx.py),包括子目录,调用scan_files("

shell编程: 获得目录下(包括子目录)所有文件名,路径和文件大小

转自:http://blog.chinaunix.net/uid-26000296-id-3575475.html 1 function ergodic(){ 2 for file in `ls $1` 3 do 4 if [ -d $1"/"$file ] 5 then 6 ergodic $1"/"$file 7 else 8 local path=$1"/"$file 9 local name=$file 10 local size=`du

黑马程序员——ava——采用递归的方式来获取相关目录下的子目录的名称

采用递归的方式来获取相关目录下的子目录的名称 import java.io.File; //采用递归的方式来获取D盘下myjava目录下的所有子目录的名称 public class FileListDemo { public static void main(String[] args) { // 获取D盘下所有的文件目录的名称 File file = new File("E:\\myjava"); //调用自定义方法来获取所有的文件夹目录 listAll(file,0); } pri

linux下统计目录下所有子目录的大小

du -sh * --exclude=tar |awk '{v=substr($1,length($1),1)}v=="G"{$0="1G "$0}v=="M"{$0="2M "$0}v=="K"{$0="3K "$0}v=="0"{$0="4Z "$0}!system("[ -d "$NF" ]")' |s

shell获取目录下(包括子目录)所有文件名、路径、文件大小

一例shell脚本:取得目录下(包括子目录)所有文件名.路径与文件大小. 代码,shell脚本: lsdir.sh #!/bin/bash # #site: www.jquerycn.cn function ergodic(){ for file in `ls $1` do if [ -d $1"/"$file ] then ergodic $1"/"$file else local path=$1"/"$file local name=$fil

Go实现查找目录下(包括子目录)替换文件内容

[功能] 按指定的目录查找出文件,如果有子目录,子目录也将进行搜索,将其中的文件内容进行替换. [缺陷] 1. 没有过滤出文本文件 2. 当文件过大时,效率不高 [代码] package main import ( "flag" "fmt" "io/ioutil" "os" "path/filepath" "strings" ) type ReplaceHelper struct { R

Android 获取SDCard中某个目录下图片

本文介绍Android开发中如何获取SDCard中某目录下的所有图片并显示出来,下面的我们提供的这个函数是通用的,只要提供路径就可以查询出该目录下所有图片的路径信息,并保存到一个List<String>中. 1.获取SDCard中某个目录下图片路径集合 public List<String> getPictures(final String strPath) { List<String> list = new ArrayList<String>(); Fil