天天看點

HarmonyOS核心接口源碼實作的查找

     在HarmonyOS核心子系統中,有關引用第三方庫的接口中,查找這些接口的實作邏輯,及其怎麼去查找做一個簡單的描述。并以sysconf接口為例說明

1.引用的第三方庫的源碼存放在:third_party_musl庫中。

       其中: openHarmonyMaster\third_party\musl\src\conf 這個路徑下存放的是引入第三方庫接口的原生代碼。

HarmonyOS核心接口源碼實作的查找

所看到sysconf接口的源碼:

HarmonyOS核心接口源碼實作的查找

 在openHarmonyMaster\third_party\musl\porting\liteos_a\user\src\conf是核心開發者所移植第三方庫的代碼,并在移植的基礎上做了一些擴充性的操作。

HarmonyOS核心接口源碼實作的查找

 所看到開發者所擴充後sysconf的源碼:

HarmonyOS核心接口源碼實作的查找

 2.通過開發者所擴充後的源碼到核心中去查找該接口的具體實作。

    在該接口中可以看到是通過系統調用進入核心,在核心中,開發者所寫的代碼都存放在該庫中

HarmonyOS核心接口源碼實作的查找

我們通過該路徑kernel\liteos_a\syscall\syscall_lookup.h路徑去看到sysconf接口是被系統怎麼調用的。

HarmonyOS核心接口源碼實作的查找

 當我們在檢視到了該接口是怎麼被系統調用之後,可以直接在LiteOs_a這個庫中去搜尋這個接口在核心中的具體實作的檔案:

HarmonyOS核心接口源碼實作的查找

 這個檔案的路徑:kernel\liteos_a\compat\posix\src\misc.c,在misc.c檔案中可以看見sysconf這個接口在核心中具體的實作:

HarmonyOS核心接口源碼實作的查找

在引入的第三方檔案裡所存在的一些宏定義存放在該路徑下:      openHarmonyMaster\third_party\musl\porting\liteos_a\kernel\include\limits.h

繼續閱讀