1 /*
2 * Copyright (C) 2021-2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "hril_manager.h"
17
18 #include "hril_base.h"
19 #include "hril_event_map.h"
20 #include "hril_notification.h"
21 #include "hril_request.h"
22 #include "parameter.h"
23
24 namespace OHOS {
25 namespace Telephony {
26 constexpr const char *MODULE_HRIL_CALL = "hrilCall";
27 constexpr const char *MODULE_HRIL_DATA = "hrilData";
28 constexpr const char *MODULE_HRIL_MODEM = "hrilModem";
29 constexpr const char *MODULE_HRIL_SIM = "hrilSim";
30 constexpr const char *MODULE_HRIL_NETWORK = "hrilNetwork";
31 constexpr const char *MODULE_HRIL_SMS = "hrilSms";
32 const std::string RUNNINGLOCK_NAME = "HRilRunningLock";
33 static bool g_isHrilManagerDestory = false;
34 static pthread_mutex_t dispatchMutex = PTHREAD_MUTEX_INITIALIZER;
35 std::unordered_map<int32_t, int32_t> HRilManager::notificationMap_ = {
36 #include "hril_notification_map.h"
37 };
38
39 #ifdef ABILITY_POWER_SUPPORT
40 constexpr int32_t RUNNINGLOCK_TIMEOUTMS_LASTING = -1;
41 using namespace OHOS::HDI::Power::V1_2;
42 #endif
43
IsHrilManagerValid()44 static bool IsHrilManagerValid()
45 {
46 if (g_isHrilManagerDestory) {
47 return false;
48 }
49 return true;
50 }
51
GetInstance()52 HRilManager &HRilManager::GetInstance()
53 {
54 static HRilManager hrilManager;
55 return hrilManager;
56 }
57
GetMaxSimSlotCount()58 int32_t HRilManager::GetMaxSimSlotCount()
59 {
60 return hrilSimSlotCount_;
61 }
62
CreateHRilRequest(int32_t serial,int32_t slotId,int32_t request)63 ReqDataInfo *HRilManager::CreateHRilRequest(int32_t serial, int32_t slotId, int32_t request)
64 {
65 ReqDataInfo *requestInfo = nullptr;
66 HRilSimSlotId simSlotId = (HRilSimSlotId)slotId;
67 requestInfo = (ReqDataInfo *)malloc(sizeof(ReqDataInfo));
68 if (requestInfo == nullptr) {
69 return nullptr;
70 }
71 requestInfo->slotId = simSlotId;
72 requestInfo->request = request;
73 requestInfo->serial = serial;
74 std::lock_guard<std::mutex> lockRequest(requestListLock_);
75 auto iter = requestList_.find(request);
76 if (iter != requestList_.end()) {
77 std::list<ReqDataInfo *> &reqDataSet = iter->second;
78 reqDataSet.push_back(requestInfo);
79 TELEPHONY_LOGD("CreateHRilRequest requestId=%{public}d, list size: %{public}zu", request, reqDataSet.size());
80 } else {
81 TELEPHONY_LOGD("CreateHRilRequest create requestList, requestId=%{public}d", request);
82 std::list<ReqDataInfo *> reqDataSet;
83 reqDataSet.push_back(requestInfo);
84 requestList_.emplace(request, reqDataSet);
85 }
86 return requestInfo;
87 }
88
ReleaseHRilRequest(int32_t request,ReqDataInfo * requestInfo)89 void HRilManager::ReleaseHRilRequest(int32_t request, ReqDataInfo *requestInfo)
90 {
91 std::lock_guard<std::mutex> lockRequest(requestListLock_);
92 auto iter = requestList_.find(request);
93 if (iter != requestList_.end()) {
94 std::list<ReqDataInfo *> &reqDataSet = iter->second;
95 auto it = find(reqDataSet.begin(), reqDataSet.end(), requestInfo);
96 if (it != reqDataSet.end()) {
97 if (*it != nullptr) {
98 free(*it);
99 }
100 reqDataSet.erase(it);
101 }
102 }
103 }
104
105 template<typename ClassTypePtr, typename FuncType, typename... ParamTypes>
TaskSchedule(const std::string module,ClassTypePtr & _obj,FuncType && _func,ParamTypes &&..._args)106 inline int32_t HRilManager::TaskSchedule(
107 const std::string module, ClassTypePtr &_obj, FuncType &&_func, ParamTypes &&... _args)
108 {
109 pthread_mutex_lock(&dispatchMutex);
110 if (_func == nullptr || _obj == nullptr || g_isHrilManagerDestory) {
111 TELEPHONY_LOGE(
112 "%{public}s func or obj is null pointer or destroy %{public}d", module.c_str(), g_isHrilManagerDestory);
113 pthread_mutex_unlock(&dispatchMutex);
114 return HDF_FAILURE;
115 }
116 int32_t ret = (_obj.get()->*(_func))(std::forward<ParamTypes>(_args)...);
117 pthread_mutex_unlock(&dispatchMutex);
118 return ret;
119 }
120
RegisterCallFuncs(int32_t slotId,const HRilCallReq * callFuncs)121 void HRilManager::RegisterCallFuncs(int32_t slotId, const HRilCallReq *callFuncs)
122 {
123 if (hrilCall_[slotId] != nullptr) {
124 hrilCall_[slotId]->RegisterCallFuncs(callFuncs);
125 }
126 }
127
RegisterDataFuncs(int32_t slotId,const HRilDataReq * dataFuncs)128 void HRilManager::RegisterDataFuncs(int32_t slotId, const HRilDataReq *dataFuncs)
129 {
130 if (hrilData_[slotId] != nullptr) {
131 hrilData_[slotId]->RegisterDataFuncs(dataFuncs);
132 }
133 }
134
RegisterModemFuncs(int32_t slotId,const HRilModemReq * modemFuncs)135 void HRilManager::RegisterModemFuncs(int32_t slotId, const HRilModemReq *modemFuncs)
136 {
137 if (hrilModem_[slotId] != nullptr) {
138 hrilModem_[slotId]->RegisterModemFuncs(modemFuncs);
139 }
140 }
141
RegisterNetworkFuncs(int32_t slotId,const HRilNetworkReq * networkFuncs)142 void HRilManager::RegisterNetworkFuncs(int32_t slotId, const HRilNetworkReq *networkFuncs)
143 {
144 if (hrilNetwork_[slotId] != nullptr) {
145 hrilNetwork_[slotId]->RegisterNetworkFuncs(networkFuncs);
146 }
147 }
148
RegisterSimFuncs(int32_t slotId,const HRilSimReq * simFuncs)149 void HRilManager::RegisterSimFuncs(int32_t slotId, const HRilSimReq *simFuncs)
150 {
151 if (hrilSim_[slotId] != nullptr) {
152 hrilSim_[slotId]->RegisterSimFuncs(simFuncs);
153 }
154 }
155
RegisterSmsFuncs(int32_t slotId,const HRilSmsReq * smsFuncs)156 void HRilManager::RegisterSmsFuncs(int32_t slotId, const HRilSmsReq *smsFuncs)
157 {
158 if (hrilSms_[slotId] != nullptr) {
159 hrilSms_[slotId]->RegisterSmsFuncs(smsFuncs);
160 }
161 }
162
163 #ifdef ABILITY_POWER_SUPPORT
FillRunningLockInfo(const std::string & name,int32_t timeoutMs)164 static OHOS::HDI::Power::V1_2::RunningLockInfo FillRunningLockInfo(const std::string &name, int32_t timeoutMs)
165 {
166 OHOS::HDI::Power::V1_2::RunningLockInfo filledInfo {};
167 filledInfo.name = name;
168 filledInfo.type = OHOS::HDI::Power::V1_2::RunningLockType::RUNNINGLOCK_BACKGROUND_PHONE;
169 filledInfo.timeoutMs = timeoutMs;
170 filledInfo.uid = static_cast<int32_t>(getuid());
171 filledInfo.pid = static_cast<int32_t>(getpid());
172 return filledInfo;
173 }
174
RunningLockCallback(uint8_t * param)175 static void RunningLockCallback(uint8_t *param)
176 {
177 if (!IsHrilManagerValid() || param == nullptr) {
178 TELEPHONY_LOGE("check nullptr fail.");
179 return;
180 }
181 int serialNum = *reinterpret_cast<int *>(param);
182 delete param;
183 param = nullptr;
184 std::lock_guard<std::mutex> lockRequest(HRilManager::GetInstance().mutexRunningLock_);
185 TELEPHONY_LOGD("RunningLockCallback, serialNum:%{public}d, runningSerialNum_:%{public}d", serialNum,
186 static_cast<int>(HRilManager::GetInstance().runningSerialNum_));
187 if (HRilManager::GetInstance().powerInterface_ == nullptr ||
188 serialNum != static_cast<int>(HRilManager::GetInstance().runningSerialNum_)) {
189 return;
190 }
191 HRilManager::GetInstance().runningLockCount_ = 0;
192 OHOS::HDI::Power::V1_2::RunningLockInfo filledInfo = FillRunningLockInfo(
193 RUNNINGLOCK_NAME, RUNNINGLOCK_TIMEOUTMS_LASTING);
194 HRilManager::GetInstance().powerInterface_->UnholdRunningLock(filledInfo);
195 TELEPHONY_LOGD("RunningLockCallback, UnLock");
196 }
197 #endif
198
ApplyRunningLock(void)199 void HRilManager::ApplyRunningLock(void)
200 {
201 #ifdef ABILITY_POWER_SUPPORT
202 if (!IsHrilManagerValid() || timerCallback_ == nullptr) {
203 TELEPHONY_LOGE("check nullptr fail.");
204 return;
205 }
206
207 std::lock_guard<std::mutex> lockRequest(mutexRunningLock_);
208 if (powerInterface_ != nullptr) {
209 OHOS::HDI::Power::V1_2::RunningLockInfo filledInfo = FillRunningLockInfo(
210 RUNNINGLOCK_NAME, RUNNINGLOCK_TIMEOUTMS_LASTING);
211 powerInterface_->HoldRunningLock(filledInfo);
212 struct timeval tv = { 0, RUNNING_LOCK_DEFAULT_TIMEOUT_US };
213 runningLockCount_++;
214 runningSerialNum_++;
215 uint8_t *serialNum = reinterpret_cast<uint8_t *>(new int(runningSerialNum_));
216 timerCallback_->HRilSetTimerCallbackInfo(RunningLockCallback, serialNum, &tv);
217 TELEPHONY_LOGD("ApplyRunningLock, runningLockCount_:%{public}d, runningSerialNum_:%{public}d",
218 static_cast<int>(runningLockCount_), static_cast<int>(runningSerialNum_));
219 } else {
220 /* Since the power management subsystem starts slower than the RilAdapter,
221 * the wakelock needs to be recreated.
222 */
223 TELEPHONY_LOGW("The powerInterface_ is nullptr, needs to be recreated.");
224 powerInterface_ = IPowerInterface::Get();
225 if (powerInterface_ == nullptr) {
226 TELEPHONY_LOGE("failed to get power hdi interface");
227 }
228 }
229 #endif
230 }
231
ReleaseRunningLock(void)232 void HRilManager::ReleaseRunningLock(void)
233 {
234 #ifdef ABILITY_POWER_SUPPORT
235 std::lock_guard<std::mutex> lockRequest(mutexRunningLock_);
236 TELEPHONY_LOGD("ReleaseRunningLock, runningLockCount_:%{public}d", static_cast<int>(runningLockCount_));
237 if (powerInterface_ == nullptr) {
238 TELEPHONY_LOGE("powerInterface_ is nullptr");
239 return;
240 }
241 if (runningLockCount_ > 1) {
242 runningLockCount_--;
243 } else {
244 runningLockCount_ = 0;
245 OHOS::HDI::Power::V1_2::RunningLockInfo filledInfo = FillRunningLockInfo(
246 RUNNINGLOCK_NAME, RUNNINGLOCK_TIMEOUTMS_LASTING);
247 powerInterface_->UnholdRunningLock(filledInfo);
248 TELEPHONY_LOGD("ReleaseRunningLock UnLock");
249 }
250 #endif
251 }
252
253 template<typename T>
OnReport(std::vector<std::unique_ptr<T>> & subModules,int32_t slotId,const ReportInfo * reportInfo,const uint8_t * response,size_t responseLen)254 void HRilManager::OnReport(std::vector<std::unique_ptr<T>> &subModules, int32_t slotId, const ReportInfo *reportInfo,
255 const uint8_t *response, size_t responseLen)
256 {
257 if (reportInfo == nullptr) {
258 TELEPHONY_LOGE("OnReport reportInfo is null!!!");
259 return;
260 }
261 if (slotId < 0 || static_cast<uint32_t>(slotId) >= subModules.size()) {
262 TELEPHONY_LOGE("OnReport subModules out of bounds!!!");
263 return;
264 }
265 switch (reportInfo->type) {
266 case static_cast<int32_t>(ReportType::HRIL_RESPONSE):
267 ReportResponse(subModules, slotId, reportInfo, response, responseLen);
268 break;
269 case static_cast<int32_t>(ReportType::HRIL_NOTIFICATION):
270 ReportNotification(subModules, slotId, reportInfo, response, responseLen);
271 break;
272 default:
273 break;
274 }
275 }
276
277 template<typename T>
ReportResponse(std::vector<std::unique_ptr<T>> & subModules,int32_t slotId,const ReportInfo * reportInfo,const uint8_t * response,size_t responseLen)278 void HRilManager::ReportResponse(std::vector<std::unique_ptr<T>> &subModules, int32_t slotId,
279 const ReportInfo *reportInfo, const uint8_t *response, size_t responseLen)
280 {
281 ReqDataInfo *reqInfo = (ReqDataInfo *)reportInfo->requestInfo;
282 if (reqInfo == nullptr) {
283 TELEPHONY_LOGE("reqInfo is null!!!");
284 return;
285 }
286 auto iter = requestEventMap_.find(reqInfo->request);
287 if (iter != requestEventMap_.end()) {
288 TELEPHONY_LOGI("requestId:%{public}d, event:%{public}s", reqInfo->request, iter->second.c_str());
289 } else {
290 TELEPHONY_LOGD("requestId:%{public}d", reqInfo->request);
291 }
292 HDI::Ril::V1_1::RilRadioResponseInfo responseInfo = {};
293 responseInfo.serial = reqInfo->serial;
294 responseInfo.error = (HDI::Ril::V1_1::RilErrType)reportInfo->error;
295 responseInfo.type = HDI::Ril::V1_1::RIL_RESPONSE_REQUEST;
296 if (HRIL_NEED_ACK == reportInfo->ack) {
297 ApplyRunningLock();
298 responseInfo.type = HDI::Ril::V1_1::RIL_RESPONSE_REQUEST_MUST_ACK;
299 }
300 int32_t requestId = reqInfo->request;
301 ReleaseHRilRequest(requestId, reqInfo);
302 subModules[slotId]->template ProcessResponse<T>(requestId, responseInfo, response, responseLen);
303 }
304
305 template<typename T>
ReportNotification(std::vector<std::unique_ptr<T>> & subModules,int32_t slotId,const ReportInfo * reportInfo,const uint8_t * response,size_t responseLen)306 void HRilManager::ReportNotification(std::vector<std::unique_ptr<T>> &subModules, int32_t slotId,
307 const ReportInfo *reportInfo, const uint8_t *response, size_t responseLen)
308 {
309 int32_t notifyType = HDI::Ril::V1_1::RIL_RESPONSE_NOTICE;
310 auto iter = notificationMap_.find(reportInfo->notifyId);
311 auto event = notificationEventMap_.find(reportInfo->notifyId);
312 if (iter != notificationMap_.end()) {
313 if (reportInfo->notifyId == HNOTI_NETWORK_CS_REG_STATUS_UPDATED ||
314 reportInfo->notifyId == HNOTI_NETWORK_SIGNAL_STRENGTH_UPDATED ||
315 reportInfo->notifyId == HNOTI_CALL_EMERGENCY_NUMBER_REPORT ||
316 reportInfo->notifyId == HNOTI_MODEM_DSDS_MODE_UPDATED) {
317 TELEPHONY_LOGD("notifyId:%{public}d, event:%{public}s", reportInfo->notifyId, event->second.c_str());
318 } else {
319 TELEPHONY_LOGI("notifyId:%{public}d, event:%{public}s", reportInfo->notifyId, event->second.c_str());
320 }
321 if (NEED_LOCK == iter->second) {
322 ApplyRunningLock();
323 notifyType = HDI::Ril::V1_1::RIL_RESPONSE_NOTICE_MUST_ACK;
324 }
325 }
326 subModules[slotId]->template ProcessNotify<T>(notifyType, reportInfo, response, responseLen);
327 }
328
OnCallReport(int32_t slotId,const ReportInfo * reportInfo,const uint8_t * response,size_t responseLen)329 void HRilManager::OnCallReport(
330 int32_t slotId, const ReportInfo *reportInfo, const uint8_t *response, size_t responseLen)
331 {
332 OnReport(hrilCall_, slotId, reportInfo, response, responseLen);
333 }
334
OnDataReport(int32_t slotId,const ReportInfo * reportInfo,const uint8_t * response,size_t responseLen)335 void HRilManager::OnDataReport(
336 int32_t slotId, const ReportInfo *reportInfo, const uint8_t *response, size_t responseLen)
337 {
338 OnReport(hrilData_, slotId, reportInfo, response, responseLen);
339 }
340
OnModemReport(int32_t slotId,const ReportInfo * reportInfo,const uint8_t * response,size_t responseLen)341 void HRilManager::OnModemReport(
342 int32_t slotId, const ReportInfo *reportInfo, const uint8_t *response, size_t responseLen)
343 {
344 OnReport(hrilModem_, slotId, reportInfo, response, responseLen);
345 }
346
OnNetworkReport(int32_t slotId,const ReportInfo * reportInfo,const uint8_t * response,size_t responseLen)347 void HRilManager::OnNetworkReport(
348 int32_t slotId, const ReportInfo *reportInfo, const uint8_t *response, size_t responseLen)
349 {
350 OnReport(hrilNetwork_, slotId, reportInfo, response, responseLen);
351 }
352
OnSimReport(int32_t slotId,const ReportInfo * reportInfo,const uint8_t * response,size_t responseLen)353 void HRilManager::OnSimReport(int32_t slotId, const ReportInfo *reportInfo, const uint8_t *response, size_t responseLen)
354 {
355 OnReport(hrilSim_, slotId, reportInfo, response, responseLen);
356 }
357
OnSmsReport(int32_t slotId,const ReportInfo * reportInfo,const uint8_t * response,size_t responseLen)358 void HRilManager::OnSmsReport(int32_t slotId, const ReportInfo *reportInfo, const uint8_t *response, size_t responseLen)
359 {
360 OnReport(hrilSms_, slotId, reportInfo, response, responseLen);
361 }
362
HRilManager()363 HRilManager::HRilManager() : hrilSimSlotCount_(GetSimSlotCount())
364 {
365 for (int32_t slotId = HRIL_SIM_SLOT_0; slotId < hrilSimSlotCount_; slotId++) {
366 hrilCall_.push_back(std::make_unique<HRilCall>(slotId));
367 hrilModem_.push_back(std::make_unique<HRilModem>(slotId));
368 hrilNetwork_.push_back(std::make_unique<HRilNetwork>(slotId));
369 hrilSim_.push_back(std::make_unique<HRilSim>(slotId));
370 hrilSms_.push_back(std::make_unique<HRilSms>(slotId));
371 hrilData_.push_back(std::make_unique<HRilData>(slotId));
372 }
373 timerCallback_ = std::make_unique<HRilTimerCallback>();
374 }
375
SetRilCallback(sptr<OHOS::HDI::Ril::V1_3::IRilCallback> callback)376 void HRilManager::SetRilCallback(sptr<OHOS::HDI::Ril::V1_3::IRilCallback> callback)
377 {
378 TELEPHONY_LOGD("SetRilCallback");
379 for (int32_t slotId = HRIL_SIM_SLOT_0; slotId < hrilSimSlotCount_; slotId++) {
380 hrilCall_[slotId]->SetRilCallback(callback);
381 hrilModem_[slotId]->SetRilCallback(callback);
382 hrilNetwork_[slotId]->SetRilCallback(callback);
383 hrilSim_[slotId]->SetRilCallback(callback);
384 hrilSms_[slotId]->SetRilCallback(callback);
385 hrilData_[slotId]->SetRilCallback(callback);
386 if (callback == nullptr) {
387 continue;
388 }
389 HDI::Ril::V1_1::RilRadioResponseInfo responseInfo = { 0 };
390 responseInfo.slotId = slotId;
391 responseInfo.type = HDI::Ril::V1_1::RIL_RESPONSE_NOTICE;
392 callback->RadioStateUpdated(responseInfo, hrilModem_[slotId]->GetLastRadioState());
393 }
394 }
395
396 // Call
SetEmergencyCallList(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::EmergencyInfoList & emergencyInfoList)397 int32_t HRilManager::SetEmergencyCallList(
398 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::EmergencyInfoList &emergencyInfoList)
399 {
400 return TaskSchedule(
401 MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetEmergencyCallList, serialId, emergencyInfoList);
402 }
403
GetEmergencyCallList(int32_t slotId,int32_t serialId)404 int32_t HRilManager::GetEmergencyCallList(int32_t slotId, int32_t serialId)
405 {
406 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetEmergencyCallList, serialId);
407 }
408
GetCallList(int32_t slotId,int32_t serialId)409 int32_t HRilManager::GetCallList(int32_t slotId, int32_t serialId)
410 {
411 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetCallList, serialId);
412 }
413
Dial(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DialInfo & dialInfo)414 int32_t HRilManager::Dial(int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::DialInfo &dialInfo)
415 {
416 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::Dial, serialId, dialInfo);
417 }
418
Reject(int32_t slotId,int32_t serialId)419 int32_t HRilManager::Reject(int32_t slotId, int32_t serialId)
420 {
421 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::Reject, serialId);
422 }
423
Hangup(int32_t slotId,int32_t serialId,int32_t gsmIndex)424 int32_t HRilManager::Hangup(int32_t slotId, int32_t serialId, int32_t gsmIndex)
425 {
426 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::Hangup, serialId, gsmIndex);
427 }
428
Answer(int32_t slotId,int32_t serialId)429 int32_t HRilManager::Answer(int32_t slotId, int32_t serialId)
430 {
431 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::Answer, serialId);
432 }
433
HoldCall(int32_t slotId,int32_t serialId)434 int32_t HRilManager::HoldCall(int32_t slotId, int32_t serialId)
435 {
436 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::HoldCall, serialId);
437 }
438
UnHoldCall(int32_t slotId,int32_t serialId)439 int32_t HRilManager::UnHoldCall(int32_t slotId, int32_t serialId)
440 {
441 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::UnHoldCall, serialId);
442 }
443
SwitchCall(int32_t slotId,int32_t serialId)444 int32_t HRilManager::SwitchCall(int32_t slotId, int32_t serialId)
445 {
446 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SwitchCall, serialId);
447 }
448
CombineConference(int32_t slotId,int32_t serialId,int32_t callType)449 int32_t HRilManager::CombineConference(int32_t slotId, int32_t serialId, int32_t callType)
450 {
451 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::CombineConference, serialId, callType);
452 }
453
SeparateConference(int32_t slotId,int32_t serialId,int32_t callIndex,int32_t callType)454 int32_t HRilManager::SeparateConference(int32_t slotId, int32_t serialId, int32_t callIndex, int32_t callType)
455 {
456 return TaskSchedule(
457 MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SeparateConference, serialId, callIndex, callType);
458 }
459
GetCallWaiting(int32_t slotId,int32_t serialId)460 int32_t HRilManager::GetCallWaiting(int32_t slotId, int32_t serialId)
461 {
462 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetCallWaiting, serialId);
463 }
464
SetCallWaiting(int32_t slotId,int32_t serialId,int32_t activate)465 int32_t HRilManager::SetCallWaiting(int32_t slotId, int32_t serialId, int32_t activate)
466 {
467 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetCallWaiting, serialId, activate);
468 }
469
GetCallTransferInfo(int32_t slotId,int32_t serialId,int32_t reason)470 int32_t HRilManager::GetCallTransferInfo(int32_t slotId, int32_t serialId, int32_t reason)
471 {
472 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetCallTransferInfo, serialId, reason);
473 }
474
SetCallTransferInfo(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::CallForwardSetInfo & callForwardSetInfo)475 int32_t HRilManager::SetCallTransferInfo(
476 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::CallForwardSetInfo &callForwardSetInfo)
477 {
478 return TaskSchedule(
479 MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetCallTransferInfo, serialId, callForwardSetInfo);
480 }
481
GetCallRestriction(int32_t slotId,int32_t serialId,const std::string & fac)482 int32_t HRilManager::GetCallRestriction(int32_t slotId, int32_t serialId, const std::string &fac)
483 {
484 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetCallRestriction, serialId, fac);
485 }
486
SetCallRestriction(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::CallRestrictionInfo & callRestrictionInfo)487 int32_t HRilManager::SetCallRestriction(
488 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::CallRestrictionInfo &callRestrictionInfo)
489 {
490 return TaskSchedule(
491 MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetCallRestriction, serialId, callRestrictionInfo);
492 }
493
GetClip(int32_t slotId,int32_t serialId)494 int32_t HRilManager::GetClip(int32_t slotId, int32_t serialId)
495 {
496 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetClip, serialId);
497 }
498
SetClip(int32_t slotId,int32_t serialId,int32_t action)499 int32_t HRilManager::SetClip(int32_t slotId, int32_t serialId, int32_t action)
500 {
501 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetClip, serialId, action);
502 }
503
GetClir(int32_t slotId,int32_t serialId)504 int32_t HRilManager::GetClir(int32_t slotId, int32_t serialId)
505 {
506 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetClir, serialId);
507 }
508
SetClir(int32_t slotId,int32_t serialId,int32_t action)509 int32_t HRilManager::SetClir(int32_t slotId, int32_t serialId, int32_t action)
510 {
511 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetClir, serialId, action);
512 }
513
SetCallPreferenceMode(int32_t slotId,int32_t serialId,int32_t mode)514 int32_t HRilManager::SetCallPreferenceMode(int32_t slotId, int32_t serialId, int32_t mode)
515 {
516 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetCallPreferenceMode, serialId, mode);
517 }
518
GetCallPreferenceMode(int32_t slotId,int32_t serialId)519 int32_t HRilManager::GetCallPreferenceMode(int32_t slotId, int32_t serialId)
520 {
521 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetCallPreferenceMode, serialId);
522 }
523
SetUssd(int32_t slotId,int32_t serialId,const std::string & str)524 int32_t HRilManager::SetUssd(int32_t slotId, int32_t serialId, const std::string &str)
525 {
526 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetUssd, serialId, str);
527 }
528
GetUssd(int32_t slotId,int32_t serialId)529 int32_t HRilManager::GetUssd(int32_t slotId, int32_t serialId)
530 {
531 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetUssd, serialId);
532 }
533
SetMute(int32_t slotId,int32_t serialId,int32_t mute)534 int32_t HRilManager::SetMute(int32_t slotId, int32_t serialId, int32_t mute)
535 {
536 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetMute, serialId, mute);
537 }
538
GetMute(int32_t slotId,int32_t serialId)539 int32_t HRilManager::GetMute(int32_t slotId, int32_t serialId)
540 {
541 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetMute, serialId);
542 }
543
GetCallFailReason(int32_t slotId,int32_t serialId)544 int32_t HRilManager::GetCallFailReason(int32_t slotId, int32_t serialId)
545 {
546 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::GetCallFailReason, serialId);
547 }
548
CallSupplement(int32_t slotId,int32_t serialId,int32_t type)549 int32_t HRilManager::CallSupplement(int32_t slotId, int32_t serialId, int32_t type)
550 {
551 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::CallSupplement, serialId, type);
552 }
553
SendDtmf(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DtmfInfo & dtmfInfo)554 int32_t HRilManager::SendDtmf(int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::DtmfInfo &dtmfInfo)
555 {
556 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SendDtmf, serialId, dtmfInfo);
557 }
558
StartDtmf(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DtmfInfo & dtmfInfo)559 int32_t HRilManager::StartDtmf(int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::DtmfInfo &dtmfInfo)
560 {
561 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::StartDtmf, serialId, dtmfInfo);
562 }
563
StopDtmf(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DtmfInfo & dtmfInfo)564 int32_t HRilManager::StopDtmf(int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::DtmfInfo &dtmfInfo)
565 {
566 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::StopDtmf, serialId, dtmfInfo);
567 }
568
SetBarringPassword(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SetBarringInfo & setBarringInfo)569 int32_t HRilManager::SetBarringPassword(
570 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SetBarringInfo &setBarringInfo)
571 {
572 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetBarringPassword, serialId, setBarringInfo);
573 }
574
CloseUnFinishedUssd(int32_t slotId,int32_t serialId)575 int32_t HRilManager::CloseUnFinishedUssd(int32_t slotId, int32_t serialId)
576 {
577 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::CloseUnFinishedUssd, serialId);
578 }
579
SetVonrSwitch(int32_t slotId,int32_t serialId,int32_t status)580 int32_t HRilManager::SetVonrSwitch(int32_t slotId, int32_t serialId, int32_t status)
581 {
582 return TaskSchedule(MODULE_HRIL_CALL, hrilCall_[slotId], &HRilCall::SetVonrSwitch, serialId, status);
583 }
584
585 // Data
ActivatePdpContext(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DataCallInfo & dataCallInfo)586 int32_t HRilManager::ActivatePdpContext(
587 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::DataCallInfo &dataCallInfo)
588 {
589 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::ActivatePdpContext, serialId, dataCallInfo);
590 }
591
ActivatePdpContextWithApnTypes(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_3::DataCallInfoWithApnTypes & dataCallInfo)592 int32_t HRilManager::ActivatePdpContextWithApnTypes(
593 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_3::DataCallInfoWithApnTypes &dataCallInfo)
594 {
595 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::ActivatePdpContextWithApnTypes,
596 serialId, dataCallInfo);
597 }
598
DeactivatePdpContext(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::UniInfo & uniInfo)599 int32_t HRilManager::DeactivatePdpContext(
600 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::UniInfo &uniInfo)
601 {
602 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::DeactivatePdpContext, serialId, uniInfo);
603 }
604
GetPdpContextList(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::UniInfo & uniInfo)605 int32_t HRilManager::GetPdpContextList(int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::UniInfo &uniInfo)
606 {
607 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::GetPdpContextList, serialId, uniInfo);
608 }
609
SetInitApnInfo(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DataProfileDataInfo & dataProfileDataInfo)610 int32_t HRilManager::SetInitApnInfo(
611 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::DataProfileDataInfo &dataProfileDataInfo)
612 {
613 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::SetInitApnInfo, serialId, dataProfileDataInfo);
614 }
615
GetLinkBandwidthInfo(int32_t slotId,int32_t serialId,int32_t cid)616 int32_t HRilManager::GetLinkBandwidthInfo(int32_t slotId, int32_t serialId, int32_t cid)
617 {
618 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::GetLinkBandwidthInfo, serialId, cid);
619 }
620
GetLinkCapability(int32_t slotId,int32_t serialId)621 int32_t HRilManager::GetLinkCapability(int32_t slotId, int32_t serialId)
622 {
623 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::GetLinkCapability, serialId);
624 }
625
SetLinkBandwidthReportingRule(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DataLinkBandwidthReportingRule & dataLinkBandwidthReportingRule)626 int32_t HRilManager::SetLinkBandwidthReportingRule(int32_t slotId, int32_t serialId,
627 const OHOS::HDI::Ril::V1_1::DataLinkBandwidthReportingRule &dataLinkBandwidthReportingRule)
628 {
629 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::SetLinkBandwidthReportingRule, serialId,
630 dataLinkBandwidthReportingRule);
631 }
632
SetDataPermitted(int32_t slotId,int32_t serialId,int32_t dataPermitted)633 int32_t HRilManager::SetDataPermitted(int32_t slotId, int32_t serialId, int32_t dataPermitted)
634 {
635 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::SetDataPermitted, serialId, dataPermitted);
636 }
637
SetDataProfileInfo(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DataProfilesInfo & dataProfilesInfo)638 int32_t HRilManager::SetDataProfileInfo(
639 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::DataProfilesInfo &dataProfilesInfo)
640 {
641 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::SetDataProfileInfo, serialId, dataProfilesInfo);
642 }
643
SendDataPerformanceMode(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DataPerformanceInfo & dataPerformanceInfo)644 int32_t HRilManager::SendDataPerformanceMode(
645 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::DataPerformanceInfo &dataPerformanceInfo)
646 {
647 return TaskSchedule(
648 MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::SendDataPerformanceMode, serialId, dataPerformanceInfo);
649 }
650
SendDataSleepMode(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::DataSleepInfo & dataSleepInfo)651 int32_t HRilManager::SendDataSleepMode(
652 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::DataSleepInfo &dataSleepInfo)
653 {
654 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::SendDataSleepMode, serialId, dataSleepInfo);
655 }
656
CleanAllConnections(int32_t slotId,int32_t serialId)657 int32_t HRilManager::CleanAllConnections(int32_t slotId, int32_t serialId)
658 {
659 return TaskSchedule(MODULE_HRIL_DATA, hrilData_[slotId], &HRilData::CleanAllConnections, serialId);
660 }
661
662 // Modem
SetRadioState(int32_t slotId,int32_t serialId,int32_t fun,int32_t rst)663 int32_t HRilManager::SetRadioState(int32_t slotId, int32_t serialId, int32_t fun, int32_t rst)
664 {
665 return TaskSchedule(MODULE_HRIL_MODEM, hrilModem_[slotId], &HRilModem::SetRadioState, serialId, fun, rst);
666 }
667
GetRadioState(int32_t slotId,int32_t serialId)668 int32_t HRilManager::GetRadioState(int32_t slotId, int32_t serialId)
669 {
670 return TaskSchedule(MODULE_HRIL_MODEM, hrilModem_[slotId], &HRilModem::GetRadioState, serialId);
671 }
672
GetImei(int32_t slotId,int32_t serialId)673 int32_t HRilManager::GetImei(int32_t slotId, int32_t serialId)
674 {
675 return TaskSchedule(MODULE_HRIL_MODEM, hrilModem_[slotId], &HRilModem::GetImei, serialId);
676 }
677
GetImeiSv(int32_t slotId,int32_t serialId)678 int32_t HRilManager::GetImeiSv(int32_t slotId, int32_t serialId)
679 {
680 return TaskSchedule(MODULE_HRIL_MODEM, hrilModem_[slotId], &HRilModem::GetImeiSv, serialId);
681 }
682
GetMeid(int32_t slotId,int32_t serialId)683 int32_t HRilManager::GetMeid(int32_t slotId, int32_t serialId)
684 {
685 return TaskSchedule(MODULE_HRIL_MODEM, hrilModem_[slotId], &HRilModem::GetMeid, serialId);
686 }
687
GetVoiceRadioTechnology(int32_t slotId,int32_t serialId)688 int32_t HRilManager::GetVoiceRadioTechnology(int32_t slotId, int32_t serialId)
689 {
690 return TaskSchedule(MODULE_HRIL_MODEM, hrilModem_[slotId], &HRilModem::GetVoiceRadioTechnology, serialId);
691 }
692
GetBasebandVersion(int32_t slotId,int32_t serialId)693 int32_t HRilManager::GetBasebandVersion(int32_t slotId, int32_t serialId)
694 {
695 return TaskSchedule(MODULE_HRIL_MODEM, hrilModem_[slotId], &HRilModem::GetBasebandVersion, serialId);
696 }
697
ShutDown(int32_t slotId,int32_t serialId)698 int32_t HRilManager::ShutDown(int32_t slotId, int32_t serialId)
699 {
700 return TaskSchedule(MODULE_HRIL_MODEM, hrilModem_[slotId], &HRilModem::ShutDown, serialId);
701 }
702
GetSimIO(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SimIoRequestInfo & simIO)703 int32_t HRilManager::GetSimIO(int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SimIoRequestInfo &simIO)
704 {
705 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::GetSimIO, serialId, simIO);
706 }
707
GetSimStatus(int32_t slotId,int32_t serialId)708 int32_t HRilManager::GetSimStatus(int32_t slotId, int32_t serialId)
709 {
710 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::GetSimStatus, serialId);
711 }
712
GetImsi(int32_t slotId,int32_t serialId)713 int32_t HRilManager::GetImsi(int32_t slotId, int32_t serialId)
714 {
715 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::GetImsi, serialId);
716 }
717
GetSimLockStatus(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SimLockInfo & simLockInfo)718 int32_t HRilManager::GetSimLockStatus(
719 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SimLockInfo &simLockInfo)
720 {
721 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::GetSimLockStatus, serialId, simLockInfo);
722 }
723
SetSimLock(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SimLockInfo & simLockInfo)724 int32_t HRilManager::SetSimLock(int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SimLockInfo &simLockInfo)
725 {
726 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SetSimLock, serialId, simLockInfo);
727 }
728
ChangeSimPassword(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SimPasswordInfo & simPassword)729 int32_t HRilManager::ChangeSimPassword(
730 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SimPasswordInfo &simPassword)
731 {
732 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::ChangeSimPassword, serialId, simPassword);
733 }
734
UnlockPin(int32_t slotId,int32_t serialId,const std::string & pin)735 int32_t HRilManager::UnlockPin(int32_t slotId, int32_t serialId, const std::string &pin)
736 {
737 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::UnlockPin, serialId, pin);
738 }
739
UnlockPuk(int32_t slotId,int32_t serialId,const std::string & puk,const std::string & pin)740 int32_t HRilManager::UnlockPuk(int32_t slotId, int32_t serialId, const std::string &puk, const std::string &pin)
741 {
742 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::UnlockPuk, serialId, puk, pin);
743 }
744
UnlockPin2(int32_t slotId,int32_t serialId,const std::string & pin2)745 int32_t HRilManager::UnlockPin2(int32_t slotId, int32_t serialId, const std::string &pin2)
746 {
747 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::UnlockPin2, serialId, pin2);
748 }
749
UnlockPuk2(int32_t slotId,int32_t serialId,const std::string & puk2,const std::string & pin2)750 int32_t HRilManager::UnlockPuk2(int32_t slotId, int32_t serialId, const std::string &puk2, const std::string &pin2)
751 {
752 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::UnlockPuk2, serialId, puk2, pin2);
753 }
754
SetActiveSim(int32_t slotId,int32_t serialId,int32_t index,int32_t enable)755 int32_t HRilManager::SetActiveSim(int32_t slotId, int32_t serialId, int32_t index, int32_t enable)
756 {
757 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SetActiveSim, serialId, index, enable);
758 }
759
SimStkSendTerminalResponse(int32_t slotId,int32_t serialId,const std::string & strCmd)760 int32_t HRilManager::SimStkSendTerminalResponse(int32_t slotId, int32_t serialId, const std::string &strCmd)
761 {
762 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SimStkSendTerminalResponse, serialId, strCmd);
763 }
764
SimStkSendEnvelope(int32_t slotId,int32_t serialId,const std::string & strCmd)765 int32_t HRilManager::SimStkSendEnvelope(int32_t slotId, int32_t serialId, const std::string &strCmd)
766 {
767 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SimStkSendEnvelope, serialId, strCmd);
768 }
769
SimStkSendCallSetupRequestResult(int32_t slotId,int32_t serialId,int32_t accept)770 int32_t HRilManager::SimStkSendCallSetupRequestResult(int32_t slotId, int32_t serialId, int32_t accept)
771 {
772 return TaskSchedule(
773 MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SimStkSendCallSetupRequestResult, serialId, accept);
774 }
775
SimStkIsReady(int32_t slotId,int32_t serialId)776 int32_t HRilManager::SimStkIsReady(int32_t slotId, int32_t serialId)
777 {
778 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SimStkIsReady, serialId);
779 }
780
GetRadioProtocol(int32_t slotId,int32_t serialId)781 int32_t HRilManager::GetRadioProtocol(int32_t slotId, int32_t serialId)
782 {
783 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::GetRadioProtocol, serialId);
784 }
785
SetRadioProtocol(int32_t slotId,int32_t serialId,const HDI::Ril::V1_1::RadioProtocol & radioProtocol)786 int32_t HRilManager::SetRadioProtocol(
787 int32_t slotId, int32_t serialId, const HDI::Ril::V1_1::RadioProtocol &radioProtocol)
788 {
789 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SetRadioProtocol, serialId, radioProtocol);
790 }
791
SimOpenLogicalChannel(int32_t slotId,int32_t serialId,const std::string & appID,int32_t p2)792 int32_t HRilManager::SimOpenLogicalChannel(int32_t slotId, int32_t serialId, const std::string &appID, int32_t p2)
793 {
794 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SimOpenLogicalChannel, serialId, appID, p2);
795 }
796
SimCloseLogicalChannel(int32_t slotId,int32_t serialId,int32_t channelId)797 int32_t HRilManager::SimCloseLogicalChannel(int32_t slotId, int32_t serialId, int32_t channelId)
798 {
799 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SimCloseLogicalChannel, serialId, channelId);
800 }
801
SimTransmitApduLogicalChannel(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::ApduSimIORequestInfo & apduSimIO)802 int32_t HRilManager::SimTransmitApduLogicalChannel(
803 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::ApduSimIORequestInfo &apduSimIO)
804 {
805 return TaskSchedule(
806 MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SimTransmitApduLogicalChannel, serialId, apduSimIO);
807 }
808
SimTransmitApduBasicChannel(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::ApduSimIORequestInfo & apduSimIO)809 int32_t HRilManager::SimTransmitApduBasicChannel(
810 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::ApduSimIORequestInfo &apduSimIO)
811 {
812 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SimTransmitApduBasicChannel, serialId, apduSimIO);
813 }
814
SimAuthentication(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SimAuthenticationRequestInfo & simAuthInfo)815 int32_t HRilManager::SimAuthentication(
816 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SimAuthenticationRequestInfo &simAuthInfo)
817 {
818 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SimAuthentication, serialId, simAuthInfo);
819 }
820
UnlockSimLock(int32_t slotId,int32_t serialId,int32_t lockType,const std::string & key)821 int32_t HRilManager::UnlockSimLock(int32_t slotId, int32_t serialId, int32_t lockType, const std::string &key)
822 {
823 return TaskSchedule(MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::UnlockSimLock, serialId, lockType, key);
824 }
825
SendSimMatchedOperatorInfo(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_2::NcfgOperatorInfo & ncfgOperatorInfo)826 int32_t HRilManager::SendSimMatchedOperatorInfo(
827 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_2::NcfgOperatorInfo &ncfgOperatorInfo)
828 {
829 return TaskSchedule(
830 MODULE_HRIL_SIM, hrilSim_[slotId], &HRilSim::SendSimMatchedOperatorInfo, serialId, ncfgOperatorInfo);
831 }
832
833 // Network
GetSignalStrength(int32_t slotId,int32_t serialId)834 int32_t HRilManager::GetSignalStrength(int32_t slotId, int32_t serialId)
835 {
836 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetSignalStrength, serialId);
837 }
838
GetCsRegStatus(int32_t slotId,int32_t serialId)839 int32_t HRilManager::GetCsRegStatus(int32_t slotId, int32_t serialId)
840 {
841 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetCsRegStatus, serialId);
842 }
843
GetPsRegStatus(int32_t slotId,int32_t serialId)844 int32_t HRilManager::GetPsRegStatus(int32_t slotId, int32_t serialId)
845 {
846 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetPsRegStatus, serialId);
847 }
848
GetOperatorInfo(int32_t slotId,int32_t serialId)849 int32_t HRilManager::GetOperatorInfo(int32_t slotId, int32_t serialId)
850 {
851 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetOperatorInfo, serialId);
852 }
853
GetNetworkSearchInformation(int32_t slotId,int32_t serialId)854 int32_t HRilManager::GetNetworkSearchInformation(int32_t slotId, int32_t serialId)
855 {
856 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetNetworkSearchInformation, serialId);
857 }
858
GetNetworkSelectionMode(int32_t slotId,int32_t serialId)859 int32_t HRilManager::GetNetworkSelectionMode(int32_t slotId, int32_t serialId)
860 {
861 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetNetworkSelectionMode, serialId);
862 }
863
SetNetworkSelectionMode(int32_t slotId,int32_t serialId,const HDI::Ril::V1_1::SetNetworkModeInfo & networkModeInfo)864 int32_t HRilManager::SetNetworkSelectionMode(
865 int32_t slotId, int32_t serialId, const HDI::Ril::V1_1::SetNetworkModeInfo &networkModeInfo)
866 {
867 return TaskSchedule(
868 MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::SetNetworkSelectionMode, serialId, networkModeInfo);
869 }
870
GetNeighboringCellInfoList(int32_t slotId,int32_t serialId)871 int32_t HRilManager::GetNeighboringCellInfoList(int32_t slotId, int32_t serialId)
872 {
873 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetNeighboringCellInfoList, serialId);
874 }
875
GetCurrentCellInfo(int32_t slotId,int32_t serialId)876 int32_t HRilManager::GetCurrentCellInfo(int32_t slotId, int32_t serialId)
877 {
878 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetCurrentCellInfo, serialId);
879 }
880
SetPreferredNetwork(int32_t slotId,int32_t serialId,int32_t preferredNetworkType)881 int32_t HRilManager::SetPreferredNetwork(int32_t slotId, int32_t serialId, int32_t preferredNetworkType)
882 {
883 return TaskSchedule(
884 MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::SetPreferredNetwork, serialId, preferredNetworkType);
885 }
886
GetPreferredNetwork(int32_t slotId,int32_t serialId)887 int32_t HRilManager::GetPreferredNetwork(int32_t slotId, int32_t serialId)
888 {
889 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetPreferredNetwork, serialId);
890 }
891
GetPhysicalChannelConfig(int32_t slotId,int32_t serialId)892 int32_t HRilManager::GetPhysicalChannelConfig(int32_t slotId, int32_t serialId)
893 {
894 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetPhysicalChannelConfig, serialId);
895 }
896
SetLocateUpdates(int32_t slotId,int32_t serialId,const HDI::Ril::V1_1::RilRegNotifyMode mode)897 int32_t HRilManager::SetLocateUpdates(int32_t slotId, int32_t serialId, const HDI::Ril::V1_1::RilRegNotifyMode mode)
898 {
899 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::SetLocateUpdates, serialId, mode);
900 }
901
SetNotificationFilter(int32_t slotId,int32_t serialId,int32_t newFilter)902 int32_t HRilManager::SetNotificationFilter(int32_t slotId, int32_t serialId, int32_t newFilter)
903 {
904 return TaskSchedule(
905 MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::SetNotificationFilter, serialId, newFilter);
906 }
907
SetDeviceState(int32_t slotId,int32_t serialId,int32_t deviceStateType,int32_t deviceStateOn)908 int32_t HRilManager::SetDeviceState(int32_t slotId, int32_t serialId, int32_t deviceStateType, int32_t deviceStateOn)
909 {
910 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::SetDeviceState, serialId,
911 deviceStateType, deviceStateOn);
912 }
913
SetNrOptionMode(int32_t slotId,int32_t serialId,int32_t mode)914 int32_t HRilManager::SetNrOptionMode(int32_t slotId, int32_t serialId, int32_t mode)
915 {
916 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::SetNrOptionMode, serialId, mode);
917 }
918
GetNrOptionMode(int32_t slotId,int32_t serialId)919 int32_t HRilManager::GetNrOptionMode(int32_t slotId, int32_t serialId)
920 {
921 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetNrOptionMode, serialId);
922 }
923
GetRrcConnectionState(int32_t slotId,int32_t serialId)924 int32_t HRilManager::GetRrcConnectionState(int32_t slotId, int32_t serialId)
925 {
926 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetRrcConnectionState, serialId);
927 }
928
GetNrSsbId(int32_t slotId,int32_t serialId)929 int32_t HRilManager::GetNrSsbId(int32_t slotId, int32_t serialId)
930 {
931 return TaskSchedule(MODULE_HRIL_NETWORK, hrilNetwork_[slotId], &HRilNetwork::GetNrSsbId, serialId);
932 }
933
934 // Sms
SendGsmSms(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::GsmSmsMessageInfo & gsmSmsMessageInfo)935 int32_t HRilManager::SendGsmSms(
936 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::GsmSmsMessageInfo &gsmSmsMessageInfo)
937 {
938 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::SendGsmSms, serialId, gsmSmsMessageInfo);
939 }
940
SendCdmaSms(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SendCdmaSmsMessageInfo & cdmaSmsMessageInfo)941 int32_t HRilManager::SendCdmaSms(
942 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SendCdmaSmsMessageInfo &cdmaSmsMessageInfo)
943 {
944 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::SendCdmaSms, serialId, cdmaSmsMessageInfo);
945 }
946
AddSimMessage(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SmsMessageIOInfo & smsMessageIOInfo)947 int32_t HRilManager::AddSimMessage(
948 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SmsMessageIOInfo &smsMessageIOInfo)
949 {
950 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::AddSimMessage, serialId, smsMessageIOInfo);
951 }
952
DelSimMessage(int32_t slotId,int32_t serialId,int32_t index)953 int32_t HRilManager::DelSimMessage(int32_t slotId, int32_t serialId, int32_t index)
954 {
955 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::DelSimMessage, serialId, index);
956 }
957
UpdateSimMessage(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SmsMessageIOInfo & smsMessageIOInfo)958 int32_t HRilManager::UpdateSimMessage(
959 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SmsMessageIOInfo &smsMessageIOInfo)
960 {
961 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::UpdateSimMessage, serialId, smsMessageIOInfo);
962 }
963
AddCdmaSimMessage(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SmsMessageIOInfo & smsMessageIOInfo)964 int32_t HRilManager::AddCdmaSimMessage(
965 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SmsMessageIOInfo &smsMessageIOInfo)
966 {
967 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::AddCdmaSimMessage, serialId, smsMessageIOInfo);
968 }
969
DelCdmaSimMessage(int32_t slotId,int32_t serialId,int32_t index)970 int32_t HRilManager::DelCdmaSimMessage(int32_t slotId, int32_t serialId, int32_t index)
971 {
972 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::DelCdmaSimMessage, serialId, index);
973 }
974
UpdateCdmaSimMessage(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::SmsMessageIOInfo & smsMessageIOInfo)975 int32_t HRilManager::UpdateCdmaSimMessage(
976 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::SmsMessageIOInfo &smsMessageIOInfo)
977 {
978 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::UpdateCdmaSimMessage, serialId, smsMessageIOInfo);
979 }
980
SetSmscAddr(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::ServiceCenterAddress & serviceCenterAddress)981 int32_t HRilManager::SetSmscAddr(
982 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::ServiceCenterAddress &serviceCenterAddress)
983 {
984 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::SetSmscAddr, serialId, serviceCenterAddress);
985 }
986
GetSmscAddr(int32_t slotId,int32_t serialId)987 int32_t HRilManager::GetSmscAddr(int32_t slotId, int32_t serialId)
988 {
989 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::GetSmscAddr, serialId);
990 }
991
SetCBConfig(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::CBConfigInfo & cellBroadcastInfo)992 int32_t HRilManager::SetCBConfig(
993 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::CBConfigInfo &cellBroadcastInfo)
994 {
995 return HRilManager::TaskSchedule(
996 MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::SetCBConfig, serialId, cellBroadcastInfo);
997 }
998
GetCBConfig(int32_t slotId,int32_t serialId)999 int32_t HRilManager::GetCBConfig(int32_t slotId, int32_t serialId)
1000 {
1001 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::GetCBConfig, serialId);
1002 }
1003
SetCdmaCBConfig(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::CdmaCBConfigInfoList & cdmaCBConfigInfoList)1004 int32_t HRilManager::SetCdmaCBConfig(
1005 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::CdmaCBConfigInfoList &cdmaCBConfigInfoList)
1006 {
1007 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::SetCdmaCBConfig, serialId, cdmaCBConfigInfoList);
1008 }
1009
GetCdmaCBConfig(int32_t slotId,int32_t serialId)1010 int32_t HRilManager::GetCdmaCBConfig(int32_t slotId, int32_t serialId)
1011 {
1012 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::GetCdmaCBConfig, serialId);
1013 }
1014
SendSmsMoreMode(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::GsmSmsMessageInfo & gsmSmsMessageInfo)1015 int32_t HRilManager::SendSmsMoreMode(
1016 int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::GsmSmsMessageInfo &gsmSmsMessageInfo)
1017 {
1018 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::SendSmsMoreMode, serialId, gsmSmsMessageInfo);
1019 }
1020
SendSmsAck(int32_t slotId,int32_t serialId,const OHOS::HDI::Ril::V1_1::ModeData & modeData)1021 int32_t HRilManager::SendSmsAck(int32_t slotId, int32_t serialId, const OHOS::HDI::Ril::V1_1::ModeData &modeData)
1022 {
1023 return TaskSchedule(MODULE_HRIL_SMS, hrilSms_[slotId], &HRilSms::SendSmsAck, serialId, modeData);
1024 }
1025
SendRilAck()1026 int32_t HRilManager::SendRilAck()
1027 {
1028 ReleaseRunningLock();
1029 return HRIL_ERR_SUCCESS;
1030 }
1031
~HRilManager()1032 HRilManager::~HRilManager()
1033 {
1034 SetHrilManagerDestroy();
1035 if (timerCallback_ == nullptr || timerCallback_->event_ == nullptr ||
1036 timerCallback_->event_->IsNormalDestory()) {
1037 return;
1038 }
1039 timerCallback_->event_->SetNormalDestory(true);
1040 timerCallback_->OnTriggerEvent();
1041 if (eventLoop_ == nullptr || !eventLoop_->joinable()) {
1042 return;
1043 }
1044 eventLoop_->join();
1045 TELEPHONY_LOGI("~HRilManager end");
1046 }
1047
SetHrilManagerDestroy()1048 void HRilManager::SetHrilManagerDestroy()
1049 {
1050 pthread_mutex_lock(&dispatchMutex);
1051 g_isHrilManagerDestory = true;
1052 pthread_mutex_unlock(&dispatchMutex);
1053 }
1054
1055 #ifdef __cplusplus
1056 extern "C" {
1057 #endif
1058
GetSimSlotCount()1059 int32_t GetSimSlotCount()
1060 {
1061 char simSlotCount[HRIL_SYSPARA_SIZE] = { 0 };
1062 GetParameter(HRIL_TEL_SIM_SLOT_COUNT, HRIL_DEFAULT_SLOT_COUNT, simSlotCount, HRIL_SYSPARA_SIZE);
1063 int32_t simSlotCountNumber = std::atoi(simSlotCount);
1064 char vSimModemCount[HRIL_SYSPARA_SIZE] = { 0 };
1065 GetParameter(HRIL_VSIM_MODEM_COUNT_STR, HRIL_DEFAULT_VSIM_MODEM_COUNT, vSimModemCount, HRIL_SYSPARA_SIZE);
1066 int32_t vSimModemCountNumber = std::atoi(vSimModemCount);
1067 if (simSlotCountNumber == DUAL_SLOT_COUNT && vSimModemCountNumber == MAX_SLOT_COUNT) {
1068 simSlotCountNumber = MAX_SLOT_COUNT;
1069 }
1070 TELEPHONY_LOGI("GetSimSlotCount, %{public}d", simSlotCountNumber);
1071 return simSlotCountNumber;
1072 }
1073
HRilBootUpEventLoop()1074 static void HRilBootUpEventLoop()
1075 {
1076 if (!IsHrilManagerValid() || HRilManager::GetInstance().timerCallback_ == nullptr) {
1077 return;
1078 }
1079 HRilManager::GetInstance().timerCallback_->EventLoop();
1080 }
1081
HRilInit(void)1082 void HRilInit(void)
1083 {
1084 if (!IsHrilManagerValid()) {
1085 TELEPHONY_LOGE("HRilInit: hrilManager is invalid");
1086 return;
1087 }
1088 #ifdef ABILITY_POWER_SUPPORT
1089 if (HRilManager::GetInstance().powerInterface_ == nullptr) {
1090 HRilManager::GetInstance().powerInterface_ = IPowerInterface::Get();
1091 if (HRilManager::GetInstance().powerInterface_ == nullptr) {
1092 TELEPHONY_LOGE("failed to get power hdi interface");
1093 }
1094 }
1095 #endif
1096 if (HRilManager::GetInstance().eventLoop_ != nullptr) {
1097 TELEPHONY_LOGD("eventLoop_ has exit");
1098 return;
1099 }
1100 HRilManager::GetInstance().eventLoop_ = std::make_unique<std::thread>(HRilBootUpEventLoop);
1101 pthread_setname_np(HRilManager::GetInstance().eventLoop_.get()->native_handle(), "hril_eventLoop");
1102 }
1103
HRilRegOps(const HRilOps * hrilOps)1104 void HRilRegOps(const HRilOps *hrilOps)
1105 {
1106 static HRilOps callBacks = { 0 };
1107 static RegisterState rilRegisterStatus = RIL_REGISTER_IS_NONE;
1108
1109 if (hrilOps == nullptr || !IsHrilManagerValid()) {
1110 TELEPHONY_LOGE("HRilRegOps: param is nullptr");
1111 return;
1112 }
1113 if (rilRegisterStatus > RIL_REGISTER_IS_NONE) {
1114 TELEPHONY_LOGE("HRilRegOps is running!!!!");
1115 return;
1116 }
1117 rilRegisterStatus = RIL_REGISTER_IS_RUNNING;
1118 (void)memcpy_s(&callBacks, sizeof(HRilOps), hrilOps, sizeof(HRilOps));
1119 for (int32_t slotId = HRIL_SIM_SLOT_0; slotId < HRilManager::GetInstance().GetMaxSimSlotCount(); slotId++) {
1120 if (callBacks.smsOps != nullptr) {
1121 HRilManager::GetInstance().RegisterSmsFuncs(slotId, callBacks.smsOps);
1122 }
1123 if (callBacks.callOps != nullptr) {
1124 HRilManager::GetInstance().RegisterCallFuncs(slotId, callBacks.callOps);
1125 }
1126 if (callBacks.dataOps != nullptr) {
1127 HRilManager::GetInstance().RegisterDataFuncs(slotId, callBacks.dataOps);
1128 }
1129 if (callBacks.modemOps != nullptr) {
1130 HRilManager::GetInstance().RegisterModemFuncs(slotId, callBacks.modemOps);
1131 }
1132 if (callBacks.networkOps != nullptr) {
1133 HRilManager::GetInstance().RegisterNetworkFuncs(slotId, callBacks.networkOps);
1134 }
1135 if (callBacks.simOps != nullptr) {
1136 HRilManager::GetInstance().RegisterSimFuncs(slotId, callBacks.simOps);
1137 }
1138 }
1139 }
1140
OnCallReport(int32_t slotId,struct ReportInfo reportInfo,const uint8_t * response,size_t responseLen)1141 void OnCallReport(int32_t slotId, struct ReportInfo reportInfo, const uint8_t *response, size_t responseLen)
1142 {
1143 if (!IsHrilManagerValid()) {
1144 TELEPHONY_LOGE("HrilManager is nullptr, id:%{public}d", slotId);
1145 return;
1146 }
1147 HRilManager::GetInstance().OnCallReport(slotId, &reportInfo, response, responseLen);
1148 }
1149
OnDataReport(int32_t slotId,struct ReportInfo reportInfo,const uint8_t * response,size_t responseLen)1150 void OnDataReport(int32_t slotId, struct ReportInfo reportInfo, const uint8_t *response, size_t responseLen)
1151 {
1152 if (!IsHrilManagerValid()) {
1153 TELEPHONY_LOGE("HrilManager is nullptr, id:%{public}d", slotId);
1154 return;
1155 }
1156 HRilManager::GetInstance().OnDataReport(slotId, &reportInfo, response, responseLen);
1157 }
1158
OnModemReport(int32_t slotId,struct ReportInfo reportInfo,const uint8_t * response,size_t responseLen)1159 void OnModemReport(int32_t slotId, struct ReportInfo reportInfo, const uint8_t *response, size_t responseLen)
1160 {
1161 if (!IsHrilManagerValid()) {
1162 TELEPHONY_LOGE("HrilManager is nullptr, id:%{public}d", slotId);
1163 return;
1164 }
1165 HRilManager::GetInstance().OnModemReport(slotId, &reportInfo, response, responseLen);
1166 }
1167
OnNetworkReport(int32_t slotId,struct ReportInfo reportInfo,const uint8_t * response,size_t responseLen)1168 void OnNetworkReport(int32_t slotId, struct ReportInfo reportInfo, const uint8_t *response, size_t responseLen)
1169 {
1170 if (!IsHrilManagerValid()) {
1171 TELEPHONY_LOGE("HrilManager is nullptr, id:%{public}d", slotId);
1172 return;
1173 }
1174 HRilManager::GetInstance().OnNetworkReport(slotId, &reportInfo, response, responseLen);
1175 }
1176
OnSimReport(int32_t slotId,struct ReportInfo reportInfo,const uint8_t * response,size_t responseLen)1177 void OnSimReport(int32_t slotId, struct ReportInfo reportInfo, const uint8_t *response, size_t responseLen)
1178 {
1179 if (!IsHrilManagerValid()) {
1180 TELEPHONY_LOGE("HrilManager is nullptr, id:%{public}d", slotId);
1181 return;
1182 }
1183 HRilManager::GetInstance().OnSimReport(slotId, &reportInfo, response, responseLen);
1184 }
1185
OnSmsReport(int32_t slotId,struct ReportInfo reportInfo,const uint8_t * response,size_t responseLen)1186 void OnSmsReport(int32_t slotId, struct ReportInfo reportInfo, const uint8_t *response, size_t responseLen)
1187 {
1188 if (!IsHrilManagerValid()) {
1189 TELEPHONY_LOGE("HrilManager is nullptr, id:%{public}d", slotId);
1190 return;
1191 }
1192 HRilManager::GetInstance().OnSmsReport(slotId, &reportInfo, response, responseLen);
1193 }
1194
OnTimerCallback(HRilCallbackFun func,uint8_t * param,const struct timeval * tv)1195 void OnTimerCallback(HRilCallbackFun func, uint8_t *param, const struct timeval *tv)
1196 {
1197 if (!IsHrilManagerValid() || HRilManager::GetInstance().timerCallback_ == nullptr) {
1198 TELEPHONY_LOGE("HrilManager or timerCallback is nullptr");
1199 return;
1200 }
1201 HRilManager::GetInstance().timerCallback_->HRilSetTimerCallbackInfo(func, param, tv);
1202 }
1203
1204 #ifdef __cplusplus
1205 }
1206 #endif
1207 } // namespace Telephony
1208 } // namespace OHOS
1209