天天看点

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

继续阅读