1 /*
2 * Copyright (C) 2022 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 #include "nci_adaptations.h"
16
17 #include "NfcAdaptation.h"
18
19 namespace OHOS {
20 namespace NFC {
21 namespace NCI {
NciAdaptations()22 NciAdaptations::NciAdaptations() {}
23
~NciAdaptations()24 NciAdaptations::~NciAdaptations() {}
25
NfaInit(tHAL_NFC_ENTRY * halEntryTbl)26 void NciAdaptations::NfaInit(tHAL_NFC_ENTRY* halEntryTbl)
27 {
28 NFA_Init(halEntryTbl);
29 }
30
NfaEnable(tNFA_DM_CBACK * dmCback,tNFA_CONN_CBACK * connCback)31 tNFA_STATUS NciAdaptations::NfaEnable(tNFA_DM_CBACK* dmCback, tNFA_CONN_CBACK* connCback)
32 {
33 return NFA_Enable(dmCback, connCback);
34 }
35
NfaDisable(bool graceful)36 tNFA_STATUS NciAdaptations::NfaDisable(bool graceful)
37 {
38 return NFA_Disable(graceful);
39 }
40
NfaEnablePolling(tNFA_TECHNOLOGY_MASK pollMask)41 tNFA_STATUS NciAdaptations::NfaEnablePolling(tNFA_TECHNOLOGY_MASK pollMask)
42 {
43 return NFA_EnablePolling(pollMask);
44 }
45
NfaDisablePolling(void)46 tNFA_STATUS NciAdaptations::NfaDisablePolling(void)
47 {
48 return NFA_DisablePolling();
49 }
50
NfaEnableListening(void)51 tNFA_STATUS NciAdaptations::NfaEnableListening(void)
52 {
53 return NFA_EnableListening();
54 }
55
NfaDisableListening(void)56 tNFA_STATUS NciAdaptations::NfaDisableListening(void)
57 {
58 return NFA_DisableListening();
59 }
60
NfaStartRfDiscovery(void)61 tNFA_STATUS NciAdaptations::NfaStartRfDiscovery(void)
62 {
63 return NFA_StartRfDiscovery();
64 }
65
NfaStopRfDiscovery(void)66 tNFA_STATUS NciAdaptations::NfaStopRfDiscovery(void)
67 {
68 return NFA_StopRfDiscovery();
69 }
70
NfaSetRfDiscoveryDuration(uint16_t discoveryPeriodMs)71 tNFA_STATUS NciAdaptations::NfaSetRfDiscoveryDuration(uint16_t discoveryPeriodMs)
72 {
73 return NFA_SetRfDiscoveryDuration(discoveryPeriodMs);
74 }
75
NfaSelect(uint8_t rfDiscId,tNFA_NFC_PROTOCOL protocol,tNFA_INTF_TYPE rfInterface)76 tNFA_STATUS NciAdaptations::NfaSelect(uint8_t rfDiscId, tNFA_NFC_PROTOCOL protocol, tNFA_INTF_TYPE rfInterface)
77 {
78 return NFA_Select(rfDiscId, protocol, rfInterface);
79 }
80
NfaDeactivate(bool sleepMode)81 tNFA_STATUS NciAdaptations::NfaDeactivate(bool sleepMode)
82 {
83 return NFA_Deactivate(sleepMode);
84 }
85
NfaSendRawFrame(uint8_t * rawData,uint16_t dataLen,uint16_t presenceCheckStartDelay)86 tNFA_STATUS NciAdaptations::NfaSendRawFrame(uint8_t* rawData, uint16_t dataLen, uint16_t presenceCheckStartDelay)
87 {
88 return NFA_SendRawFrame(rawData, dataLen, presenceCheckStartDelay);
89 }
90
NfaRegisterNDefTypeHandler(bool handleWholeMessage,tNFA_TNF tnf,uint8_t * typeName,uint8_t typeNameLen,tNFA_NDEF_CBACK * ndefCback)91 tNFA_STATUS NciAdaptations::NfaRegisterNDefTypeHandler(
92 bool handleWholeMessage, tNFA_TNF tnf, uint8_t* typeName, uint8_t typeNameLen, tNFA_NDEF_CBACK* ndefCback)
93 {
94 return NFA_RegisterNDefTypeHandler(handleWholeMessage, tnf, typeName, typeNameLen, ndefCback);
95 }
96
NfaRwDetectNdef(void)97 tNFA_STATUS NciAdaptations::NfaRwDetectNdef(void)
98 {
99 return NFA_RwDetectNDef();
100 }
101
NfaRwReadNdef(void)102 tNFA_STATUS NciAdaptations::NfaRwReadNdef(void)
103 {
104 return NFA_RwReadNDef();
105 }
106
NfaRwWriteNdef(uint8_t * data,uint32_t len)107 tNFA_STATUS NciAdaptations::NfaRwWriteNdef(uint8_t* data, uint32_t len)
108 {
109 return NFA_RwWriteNDef(data, len);
110 }
111
NfaRwPresenceCheck(tNFA_RW_PRES_CHK_OPTION option)112 tNFA_STATUS NciAdaptations::NfaRwPresenceCheck(tNFA_RW_PRES_CHK_OPTION option)
113 {
114 return NFA_RwPresenceCheck(option);
115 }
116
NfaRwFormatTag(void)117 tNFA_STATUS NciAdaptations::NfaRwFormatTag(void)
118 {
119 return NFA_RwFormatTag();
120 }
121
NfaRwSetTagReadOnly(bool hardLock)122 tNFA_STATUS NciAdaptations::NfaRwSetTagReadOnly(bool hardLock)
123 {
124 return NFA_RwSetTagReadOnly(hardLock);
125 }
126
NdefMsgInit(uint8_t * msg,uint32_t maxSize,uint32_t * curSize)127 void NciAdaptations::NdefMsgInit(uint8_t* msg, uint32_t maxSize, uint32_t* curSize)
128 {
129 NDEF_MsgInit(msg, maxSize, curSize);
130 }
131
NdefMsgAddRec(uint8_t * msg,uint32_t maxSize,uint32_t * curSize,uint8_t tnf,uint8_t * type,uint8_t typeLen,uint8_t * id,uint8_t idLen,uint8_t * payload,uint32_t payloadLen)132 tNDEF_STATUS NciAdaptations::NdefMsgAddRec(uint8_t* msg,
133 uint32_t maxSize,
134 uint32_t* curSize,
135 uint8_t tnf,
136 uint8_t* type,
137 uint8_t typeLen,
138 uint8_t* id,
139 uint8_t idLen,
140 uint8_t* payload,
141 uint32_t payloadLen)
142 {
143 return NDEF_MsgAddRec(msg, maxSize, curSize, tnf, type, typeLen, id, idLen, payload, payloadLen);
144 }
145
NfcGetNciVersion()146 uint8_t NciAdaptations::NfcGetNciVersion()
147 {
148 return NFC_GetNCIVersion();
149 }
150
NfcAdaptationInitialize()151 void NciAdaptations::NfcAdaptationInitialize()
152 {
153 NfcAdaptation& nfcAdaptInstance = NfcAdaptation::GetInstance();
154 nfcAdaptInstance.Initialize();
155 }
156
NfcAdaptationFinalize()157 void NciAdaptations::NfcAdaptationFinalize()
158 {
159 NfcAdaptation& nfcAdaptInstance = NfcAdaptation::GetInstance();
160 nfcAdaptInstance.Finalize();
161 }
162
NfcAdaptationGetHalEntryFuncs()163 tHAL_NFC_ENTRY* NciAdaptations::NfcAdaptationGetHalEntryFuncs()
164 {
165 NfcAdaptation& nfcAdaptInstance = NfcAdaptation::GetInstance();
166 return nfcAdaptInstance.GetHalEntryFuncs();
167 }
168
NfcAdaptationDownloadFirmware()169 void NciAdaptations::NfcAdaptationDownloadFirmware()
170 {
171 NfcAdaptation& nfcAdaptInstance = NfcAdaptation::GetInstance();
172 #if (NXP_EXTNS == TRUE)
173 nfcAdaptInstance.DownloadFirmware(nullptr, true);
174 #else
175 nfcAdaptInstance.DownloadFirmware();
176 #endif
177 }
178
NfcAdaptationDump(int fd)179 void NciAdaptations::NfcAdaptationDump(int fd)
180 {
181 NfcAdaptation& nfcAdaptInstance = NfcAdaptation::GetInstance();
182 nfcAdaptInstance.Dump(fd);
183 }
184
NfcAdaptationFactoryReset()185 void NciAdaptations::NfcAdaptationFactoryReset()
186 {
187 NfcAdaptation& nfcAdaptInstance = NfcAdaptation::GetInstance();
188 nfcAdaptInstance.FactoryReset();
189 }
190
NfcAdaptationDeviceShutdown()191 void NciAdaptations::NfcAdaptationDeviceShutdown()
192 {
193 NfcAdaptation& nfcAdaptInstance = NfcAdaptation::GetInstance();
194 nfcAdaptInstance.DeviceShutdown();
195 }
196
NfcHciRegister(char * appName,tNFA_HCI_CBACK * cback,bool sendConnEvts)197 tNFA_STATUS NciAdaptations::NfcHciRegister(char* appName, tNFA_HCI_CBACK* cback, bool sendConnEvts)
198 {
199 return NFA_HciRegister(appName, cback, sendConnEvts);
200 }
201
NfcEeGetInfo(uint8_t * numNfcee,tNFA_EE_INFO * info)202 tNFA_STATUS NciAdaptations::NfcEeGetInfo(uint8_t* numNfcee, tNFA_EE_INFO* info)
203 {
204 return NFA_EeGetInfo(numNfcee, info);
205 }
206
NfcEeRegister(tNFA_EE_CBACK * cback)207 tNFA_STATUS NciAdaptations::NfcEeRegister(tNFA_EE_CBACK* cback)
208 {
209 return NFA_EeRegister(cback);
210 }
211
NfcEeDeregister(tNFA_EE_CBACK * cback)212 tNFA_STATUS NciAdaptations::NfcEeDeregister(tNFA_EE_CBACK* cback)
213 {
214 return NFA_EeDeregister(cback);
215 }
216
NfcEeSetDefaultTechRouting(tNFA_HANDLE eeHandle,tNFA_TECHNOLOGY_MASK technologiesSwitchOn,tNFA_TECHNOLOGY_MASK technologiesSwitchOff,tNFA_TECHNOLOGY_MASK technologiesBatteryOff,tNFA_TECHNOLOGY_MASK technologiesScreenLock,tNFA_TECHNOLOGY_MASK technologiesScreenOff,tNFA_TECHNOLOGY_MASK technologiesScreenOffLock)217 tNFA_STATUS NciAdaptations::NfcEeSetDefaultTechRouting(tNFA_HANDLE eeHandle,
218 tNFA_TECHNOLOGY_MASK technologiesSwitchOn,
219 tNFA_TECHNOLOGY_MASK technologiesSwitchOff,
220 tNFA_TECHNOLOGY_MASK technologiesBatteryOff,
221 tNFA_TECHNOLOGY_MASK technologiesScreenLock,
222 tNFA_TECHNOLOGY_MASK technologiesScreenOff,
223 tNFA_TECHNOLOGY_MASK technologiesScreenOffLock)
224 {
225 return NFA_EeSetDefaultTechRouting(eeHandle,
226 technologiesSwitchOn,
227 technologiesSwitchOff,
228 technologiesBatteryOff,
229 technologiesScreenLock,
230 technologiesScreenOff,
231 technologiesScreenOffLock);
232 }
233
NfcEeClearDefaultTechRouting(tNFA_HANDLE eeHandle,tNFA_TECHNOLOGY_MASK clearTechnology)234 tNFA_STATUS NciAdaptations::NfcEeClearDefaultTechRouting(tNFA_HANDLE eeHandle, tNFA_TECHNOLOGY_MASK clearTechnology)
235 {
236 return NFA_EeClearDefaultTechRouting(eeHandle, clearTechnology);
237 }
238
NfcEeSetDefaultProtoRouting(tNFA_HANDLE eeHandle,tNFA_PROTOCOL_MASK protocolsSwitchOn,tNFA_PROTOCOL_MASK protocolsSwitchOff,tNFA_PROTOCOL_MASK protocolsBatteryOff,tNFA_PROTOCOL_MASK technologiesScreenLock,tNFA_PROTOCOL_MASK technologiesScreenOff,tNFA_PROTOCOL_MASK technologiesScreenOffLock)239 tNFA_STATUS NciAdaptations::NfcEeSetDefaultProtoRouting(tNFA_HANDLE eeHandle,
240 tNFA_PROTOCOL_MASK protocolsSwitchOn,
241 tNFA_PROTOCOL_MASK protocolsSwitchOff,
242 tNFA_PROTOCOL_MASK protocolsBatteryOff,
243 tNFA_PROTOCOL_MASK technologiesScreenLock,
244 tNFA_PROTOCOL_MASK technologiesScreenOff,
245 tNFA_PROTOCOL_MASK technologiesScreenOffLock)
246 {
247 return NFA_EeSetDefaultProtoRouting(eeHandle,
248 protocolsSwitchOn,
249 protocolsSwitchOff,
250 protocolsBatteryOff,
251 technologiesScreenLock,
252 technologiesScreenOff,
253 technologiesScreenOffLock);
254 }
255
NfcEeClearDefaultProtoRouting(tNFA_HANDLE eeHandle,tNFA_PROTOCOL_MASK clearProtocol)256 tNFA_STATUS NciAdaptations::NfcEeClearDefaultProtoRouting(tNFA_HANDLE eeHandle, tNFA_PROTOCOL_MASK clearProtocol)
257 {
258 return NFA_EeClearDefaultProtoRouting(eeHandle, clearProtocol);
259 }
260
NfcEeAddAidRouting(tNFA_HANDLE eeHandle,uint8_t aidLen,uint8_t * aid,tNFA_EE_PWR_STATE powerState,uint8_t aidInfo)261 tNFA_STATUS NciAdaptations::NfcEeAddAidRouting(
262 tNFA_HANDLE eeHandle, uint8_t aidLen, uint8_t* aid, tNFA_EE_PWR_STATE powerState, uint8_t aidInfo)
263 {
264 return NFA_EeAddAidRouting(eeHandle, aidLen, aid, powerState, aidInfo);
265 }
266
NfcEeRemoveAidRouting(uint8_t aidLen,uint8_t * aid)267 tNFA_STATUS NciAdaptations::NfcEeRemoveAidRouting(uint8_t aidLen, uint8_t* aid)
268 {
269 return NFA_EeRemoveAidRouting(aidLen, aid);
270 }
271
NfcEeUpdateNow(void)272 tNFA_STATUS NciAdaptations::NfcEeUpdateNow(void)
273 {
274 return NFA_EeUpdateNow();
275 }
276
NfcGetAidTableSize()277 uint16_t NciAdaptations::NfcGetAidTableSize()
278 {
279 return NFA_GetAidTableSize();
280 }
281
NfcEeModeSet(tNFA_HANDLE eeHandle,tNFA_EE_MD mode)282 tNFA_STATUS NciAdaptations::NfcEeModeSet(tNFA_HANDLE eeHandle, tNFA_EE_MD mode)
283 {
284 return NFA_EeModeSet(eeHandle, mode);
285 }
286
NfcCeSetIsoDepListenTech(tNFA_TECHNOLOGY_MASK techMask)287 tNFA_STATUS NciAdaptations::NfcCeSetIsoDepListenTech(tNFA_TECHNOLOGY_MASK techMask)
288 {
289 return NFA_CeSetIsoDepListenTech(techMask);
290 }
291
NfcCeRegisterAidOnDH(uint8_t aid[NFC_MAX_AID_LEN],uint8_t aidLen,tNFA_CONN_CBACK * connCback)292 tNFA_STATUS NciAdaptations::NfcCeRegisterAidOnDH(uint8_t aid[NFC_MAX_AID_LEN], uint8_t aidLen,
293 tNFA_CONN_CBACK* connCback)
294 {
295 return NFA_CeRegisterAidOnDH(aid, aidLen, connCback);
296 }
297
NfcSetPowerSubStateForScreenState(uint8_t screenState)298 tNFA_STATUS NciAdaptations::NfcSetPowerSubStateForScreenState(uint8_t screenState)
299 {
300 return NFA_SetPowerSubStateForScreenState(screenState);
301 }
302
NfcSetConfig(tNFA_PMID paramId,uint8_t length,uint8_t * data)303 tNFA_STATUS NciAdaptations::NfcSetConfig(tNFA_PMID paramId, uint8_t length, uint8_t* data)
304 {
305 return NFA_SetConfig(paramId, length, data);
306 }
307 } // namespace NCI
308 } // namespace NFC
309 } // namespace OHOS
310