xref: /aosp_15_r20/external/libese/libese-teq1/tests/ese_operations_wrapper.cpp (revision 5c4dab75aa57366379dce576b1a9e082a44e2b3a)
1*5c4dab75SAndroid Build Coastguard Worker /*
2*5c4dab75SAndroid Build Coastguard Worker  * Copyright (C) 2017 The Android Open Source Project
3*5c4dab75SAndroid Build Coastguard Worker  *
4*5c4dab75SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*5c4dab75SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*5c4dab75SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*5c4dab75SAndroid Build Coastguard Worker  *
8*5c4dab75SAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*5c4dab75SAndroid Build Coastguard Worker  *
10*5c4dab75SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*5c4dab75SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*5c4dab75SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*5c4dab75SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*5c4dab75SAndroid Build Coastguard Worker  * limitations under the License.
15*5c4dab75SAndroid Build Coastguard Worker  *
16*5c4dab75SAndroid Build Coastguard Worker  */
17*5c4dab75SAndroid Build Coastguard Worker 
18*5c4dab75SAndroid Build Coastguard Worker #include <ese/ese.h>
19*5c4dab75SAndroid Build Coastguard Worker #include <ese/teq1.h>
20*5c4dab75SAndroid Build Coastguard Worker 
21*5c4dab75SAndroid Build Coastguard Worker #include "ese_operations_interface.h"
22*5c4dab75SAndroid Build Coastguard Worker #include "ese_operations_wrapper.h"
23*5c4dab75SAndroid Build Coastguard Worker 
InitializeEse(struct EseInterface * ese,EseOperationsInterface * ops_interface)24*5c4dab75SAndroid Build Coastguard Worker void EseOperationsWrapper::InitializeEse(
25*5c4dab75SAndroid Build Coastguard Worker     struct EseInterface *ese, EseOperationsInterface *ops_interface) {
26*5c4dab75SAndroid Build Coastguard Worker   EseOperationsWrapperData data;
27*5c4dab75SAndroid Build Coastguard Worker   data.ops_interface = ops_interface;
28*5c4dab75SAndroid Build Coastguard Worker   ese_init(ese, data.wrapper);
29*5c4dab75SAndroid Build Coastguard Worker }
30*5c4dab75SAndroid Build Coastguard Worker 
EseOpen(struct EseInterface * ese,void * data)31*5c4dab75SAndroid Build Coastguard Worker static int EseOpen(struct EseInterface *ese, void *data) {
32*5c4dab75SAndroid Build Coastguard Worker   return EseOperationsWrapperData::ops_interface->EseOpen(ese, data);
33*5c4dab75SAndroid Build Coastguard Worker }
34*5c4dab75SAndroid Build Coastguard Worker 
EseHwReceive(struct EseInterface * ese,uint8_t * data,uint32_t len,int complete)35*5c4dab75SAndroid Build Coastguard Worker static uint32_t EseHwReceive(struct EseInterface *ese, uint8_t *data, uint32_t len, int complete) {
36*5c4dab75SAndroid Build Coastguard Worker   return EseOperationsWrapperData::ops_interface->EseHwReceive(ese, data, len, complete);
37*5c4dab75SAndroid Build Coastguard Worker }
38*5c4dab75SAndroid Build Coastguard Worker 
EseHwTransmit(struct EseInterface * ese,const uint8_t * data,uint32_t len,int complete)39*5c4dab75SAndroid Build Coastguard Worker static uint32_t EseHwTransmit(struct EseInterface *ese, const uint8_t *data, uint32_t len, int complete) {
40*5c4dab75SAndroid Build Coastguard Worker   return EseOperationsWrapperData::ops_interface->EseHwTransmit(ese, data, len, complete);
41*5c4dab75SAndroid Build Coastguard Worker }
42*5c4dab75SAndroid Build Coastguard Worker 
EseReset(struct EseInterface * ese)43*5c4dab75SAndroid Build Coastguard Worker static int EseReset(struct EseInterface *ese) {
44*5c4dab75SAndroid Build Coastguard Worker   return EseOperationsWrapperData::ops_interface->EseReset(ese);
45*5c4dab75SAndroid Build Coastguard Worker }
46*5c4dab75SAndroid Build Coastguard Worker 
EseTransceive(struct EseInterface * ese,const struct EseSgBuffer * tx_sg,uint32_t tx_nsg,struct EseSgBuffer * rx_sg,uint32_t rx_nsg)47*5c4dab75SAndroid Build Coastguard Worker static uint32_t EseTransceive(struct EseInterface *ese, const struct EseSgBuffer *tx_sg, uint32_t tx_nsg,
48*5c4dab75SAndroid Build Coastguard Worker                                struct EseSgBuffer *rx_sg, uint32_t rx_nsg) {
49*5c4dab75SAndroid Build Coastguard Worker   return EseOperationsWrapperData::ops_interface->EseTransceive(ese, tx_sg, tx_nsg, rx_sg, rx_nsg);
50*5c4dab75SAndroid Build Coastguard Worker }
51*5c4dab75SAndroid Build Coastguard Worker 
EsePoll(struct EseInterface * ese,uint8_t poll_for,float timeout,int complete)52*5c4dab75SAndroid Build Coastguard Worker static int EsePoll(struct EseInterface *ese, uint8_t poll_for, float timeout, int complete) {
53*5c4dab75SAndroid Build Coastguard Worker   return EseOperationsWrapperData::ops_interface->EsePoll(ese, poll_for, timeout, complete);
54*5c4dab75SAndroid Build Coastguard Worker }
55*5c4dab75SAndroid Build Coastguard Worker 
EseClose(struct EseInterface * ese)56*5c4dab75SAndroid Build Coastguard Worker static void EseClose(struct EseInterface *ese) {
57*5c4dab75SAndroid Build Coastguard Worker   return EseOperationsWrapperData::ops_interface->EseClose(ese);
58*5c4dab75SAndroid Build Coastguard Worker }
59*5c4dab75SAndroid Build Coastguard Worker 
60*5c4dab75SAndroid Build Coastguard Worker EseOperationsInterface *EseOperationsWrapperData::ops_interface = NULL;
61*5c4dab75SAndroid Build Coastguard Worker 
62*5c4dab75SAndroid Build Coastguard Worker static const char *kErrors[] = {
63*5c4dab75SAndroid Build Coastguard Worker     TEQ1_ERROR_MESSAGES,
64*5c4dab75SAndroid Build Coastguard Worker };
65*5c4dab75SAndroid Build Coastguard Worker 
66*5c4dab75SAndroid Build Coastguard Worker const struct EseOperations EseOperationsWrapperData::ops = {
67*5c4dab75SAndroid Build Coastguard Worker   .name = "EseOperationsWrapper HW",
68*5c4dab75SAndroid Build Coastguard Worker   .open = &EseOpen,
69*5c4dab75SAndroid Build Coastguard Worker   .hw_receive = &EseHwReceive,
70*5c4dab75SAndroid Build Coastguard Worker   .hw_transmit = &EseHwTransmit,
71*5c4dab75SAndroid Build Coastguard Worker   .hw_reset = &EseReset,
72*5c4dab75SAndroid Build Coastguard Worker   .poll = &EsePoll,
73*5c4dab75SAndroid Build Coastguard Worker   .transceive = &EseTransceive,
74*5c4dab75SAndroid Build Coastguard Worker   .close = &EseClose,
75*5c4dab75SAndroid Build Coastguard Worker   .opts = NULL,
76*5c4dab75SAndroid Build Coastguard Worker   .errors = kErrors,
77*5c4dab75SAndroid Build Coastguard Worker   .errors_count = sizeof(kErrors),
78*5c4dab75SAndroid Build Coastguard Worker };
79*5c4dab75SAndroid Build Coastguard Worker const struct EseOperations *EseOperationsWrapperData::wrapper_ops =
80*5c4dab75SAndroid Build Coastguard Worker   &EseOperationsWrapperData::ops;
81