Linux LITE QMUX  MBPL_SDK_R25_ENG3
QmiService.h
Go to the documentation of this file.
1 
6 #ifndef __QMI_SERVICE_H__
7 #define __QMI_SERVICE_H__
8 
9 #include <stdbool.h>
10 #include <pthread.h>
11 #include "QmiTransaction.h"
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
29 typedef void (*QMI_INDICATION_CALLBACK)(
30  uint8_t* qmiPacket,
31  uint16_t qmiPacketSize,
32  void* pIndicationCallbackContext
33  );
34 
35 // Forward decls.
36 struct QmuxTransport;
37 
38 #define QMI_TRANSACTION_POOL_SIZE 10
86 typedef struct QmiService
87 {
88  struct QmiService* pNext;
89  uint8_t serviceType;
90  uint8_t clientId;
91  struct QmuxTransport* pTransport;
92  uint16_t transactionId;
93  pthread_mutex_t transactionIdLock;
95  pthread_mutex_t transactionPoolLock;
96  QMI_INDICATION_CALLBACK pIndicationCallback;
97  void* pIndicationCallbackContext;
98 } QmiService;
99 
117  QmiService* pThis,
118  uint8_t serviceType,
119  uint8_t clientId,
120  struct QmuxTransport* pTransport,
121  QMI_INDICATION_CALLBACK pIndicationCallback,
122  void* pIndicationCallbackContext
123  );
124 
133 void QmiService_ShutDown(QmiService* pThis);
134 
144 
161  QmiService* pThis,
162  uint16_t transactionId,
163  uint8_t* qmiRequest,
164  uint16_t qmiRequestSize,
165  QMI_RESPONSE_CALLBACK pResponseCallback,
166  void* pResponseCallbackContext);
167 
176 void QmiService_CancelTransaction(QmiService* pThis, uint16_t transactionId);
177 
194  QmiService* pThis,
195  uint8_t serviceType,
196  uint8_t clientId,
197  uint8_t* qmiPacket,
198  uint16_t qmiPacketSize);
199 
200 
201 #ifdef __cplusplus
202 } /* extern "C" { */
203 #endif
204 
205 #endif //__QMI_SERVICE_H__
bool QmiService_HandleQmiPacket(QmiService *pThis, uint8_t serviceType, uint8_t clientId, uint8_t *qmiPacket, uint16_t qmiPacketSize)
void(* QMI_INDICATION_CALLBACK)(uint8_t *qmiPacket, uint16_t qmiPacketSize, void *pIndicationCallbackContext)
Definition: QmiService.h:29
#define QMI_TRANSACTION_POOL_SIZE
Definition: QmiService.h:38
void QmiService_Initialize(QmiService *pThis, uint8_t serviceType, uint8_t clientId, struct QmuxTransport *pTransport, QMI_INDICATION_CALLBACK pIndicationCallback, void *pIndicationCallbackContext)
void QmiService_ShutDown(QmiService *pThis)
Definition: QmiTransaction.h:61
struct QmiService QmiService
int QmiService_SendRequest(QmiService *pThis, uint16_t transactionId, uint8_t *qmiRequest, uint16_t qmiRequestSize, QMI_RESPONSE_CALLBACK pResponseCallback, void *pResponseCallbackContext)
Definition: QmiService.h:86
Definition: QmuxTransport.h:111
void(* QMI_RESPONSE_CALLBACK)(uint8_t *qmiPacket, uint16_t qmiPacketSize, void *pResponseCallbackContext)
Definition: QmiTransaction.h:29
uint16_t QmiService_GetNextTransactionId(QmiService *pThis)
void QmiService_CancelTransaction(QmiService *pThis, uint16_t transactionId)

Copyright (c) 2011-2020 Sierra Wireless, Inc. All rights reserved