Android核心源碼bionic目錄下的子目錄arch-arm源碼分析筆記

來源:互聯網
上載者:User

標籤:

依舊是好記性不如爛筆頭,今天需要學習的是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_Ttypedef 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源碼分析筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.