在HarmonyOS内核子系统中,有关引用第三方库的接口中,查找这些接口的实现逻辑,及其怎么去查找做一个简单的描述。并以sysconf接口为例说明
1.引用的第三方库的源码存放在:third_party_musl库中。
其中: openHarmonyMaster\third_party\musl\src\conf 这个路径下存放的是引入第三方库接口的原生代码。
所看到sysconf接口的源码:
在openHarmonyMaster\third_party\musl\porting\liteos_a\user\src\conf是内核开发者所移植第三方库的代码,并在移植的基础上做了一些扩展性的操作。
所看到开发者所扩展后sysconf的源码:
2.通过开发者所扩展后的源码到内核中去查找该接口的具体实现。
在该接口中可以看到是通过系统调用进入内核,在内核中,开发者所写的代码都存放在该库中
我们通过该路径kernel\liteos_a\syscall\syscall_lookup.h路径去看到sysconf接口是被系统怎么调用的。
当我们在查看到了该接口是怎么被系统调用之后,可以直接在LiteOs_a这个库中去搜索这个接口在内核中的具体实现的文件:
这个文件的路径:kernel\liteos_a\compat\posix\src\misc.c,在misc.c文件中可以看见sysconf这个接口在内核中具体的实现:
在引入的第三方文件里所存在的一些宏定义存放在该路径下: openHarmonyMaster\third_party\musl\porting\liteos_a\kernel\include\limits.h