学习笔记:【QC】Android Q qmi扩展nvReadItem/nvWriteItem

一、qmi初始化 流程图

初始化流程:

1、主入口:

vendor/qcom/proprietary/qcril-hal/qcrild/qcrild/rild.c

cpp 复制代码
int main(int argc, char **argv) {
const RIL_RadioFunctions *(*rilInit)(const struct RIL_Env *, int, char **);
rilInit = RIL_Init;
funcs = rilInit(&s_rilEnv, argc, rilArgv);
RIL_register(funcs);
}

2、其中RIL_Init的实现在:

vendor/qcom/proprietary/qcril-hal/modules/android/src/ril_api.cpp

在ril_api.cpp中还定义qcril_request_api:

cpp 复制代码
static const RIL_RadioFunctions qcril_request_api[] = {
{ QCRIL_RIL_VERSION, onRequest, currentState_rid, 
onSupports_rid, onCancel_rid, getVersion_rid }};
static RIL_Env *qcril_response_api[QCRIL_MAX_INSTANCE_ID];

3、最终,注册到IRadio:
s_vendorFunctions = callbacks;

这边callbacks实际上就是:
funcs:ril_api.cpp的qcril_request_api[]

这样就可以和Ril.java通信:
#define CALL_ONREQUEST(a, b, c, d, e)
s_vendorFunctions->onRequest((a), (b), (c), (d))

详细流程图:【高清图,保存后可以放大看】

二、nvReadItem/nvWriteItem 流程图

详细流程图:【高清图,保存后可以放大看】

相关推荐
JeffDingAI3 分钟前
【Datawhale学习笔记】动手学RNN及LSTM
笔记·rnn·学习
摘星编程14 分钟前
React Native for OpenHarmony 实战:DisplayInfo 显示信息详解
android·react native·react.js
_李小白28 分钟前
【Android 美颜相机】第六天:GPUImageView解析
android·数码相机
风之子npu1 小时前
CPU基础知识(1)
笔记
JeffDingAI1 小时前
【Datawhale学习笔记】预训练模型实战
笔记·学习
来生硬件工程师1 小时前
【PCB设计笔记】PCB布局时,如何快速互换器件位置?(Altium Designer 25)
笔记
ljt27249606611 小时前
Flutter笔记--ValueNotifier
笔记·flutter
GISer_Jing1 小时前
AI Coding学习——dw|ali(持续更新)
人工智能·学习·prompt·aigc
Mr_sun.1 小时前
Day04——权限认证-基础
android·服务器·数据库
振华说技能1 小时前
MasterCAM车铣复合都学哪些内容!
学习