Renesas PTX1xxR IoT-Reader API Version 7.3.1
Renesas Software Stack for IoT-Reader Applications
ptx_IoRq.h
Go to the documentation of this file.
1
65#ifndef PTX_IO_RQ_H
66#define PTX_IO_RQ_H
67
68/*
69 * ####################################################################################################################
70 * INCLUDES
71 * ####################################################################################################################
72 */
73
74#include "ptx_Platform.h"
75#include "ptx_Status.h"
76#include "ptxBufferPool.h"
77
78
79#ifdef __cplusplus
80extern "C"
81{
82#endif
83
84
85/*
86 * ####################################################################################################################
87 * DEFINES / TYPES / INTERNALS
88 * ####################################################################################################################
89 */
90
97#define PTX_IORQ_EMPTY 0
98#define PTX_IORQ_NUM_STACK_LOCATIONS 8
99#define PTX_IORQ_DATA_POP ((size_t)-1)
101#define PTX_IORQ_STATE_DISPOSED (uint8_t)0
102#define PTX_IORQ_STATE_LOCKED (uint8_t)1
103#define PTX_IORQ_STATE_LOCKED_RELEASE_BUFFER (uint8_t)2
104#define PTX_IORQ_STATE_INVALID (uint8_t)0xFF
118struct ptxIoRq;
119
124struct ptxOsal;
125
130struct ptxLog;
131
143typedef void (*pptxIoRqCompletion_t)(struct ptxIoRq *ioRq, void *cplUpperLayer, void *data, size_t dataLength, ptxStatus_t cplStatus);
144
164
169
173typedef ptxStatus_t (*pptxIoRq_Push_t) (ptxIoRq_t *ioCpl, pptxIoRqCompletion_t ioCompletionFn, uint8_t *ioData, uint8_t dataLength, void *ioCompletionComp);
174
178typedef ptxStatus_t (*pptxIoRq_Pop_t) (ptxIoRq_t *ioCpl, pptxIoRqCompletion_t *ioCompletionFn, void **ioData, uint8_t *ioDataLength, void **ioCompletionComp);
179
180
181/*
182 * ####################################################################################################################
183 * API FUNCTIONS
184 * ####################################################################################################################
185 */
186
199struct ptxIoRq *ptxIoRq_GetItem(struct ptxOsal *osalCtx);
200
208void ptxIoRq_ReturnItem(struct ptxOsal *osalCtx, struct ptxIoRq *ioRqItem);
209
223
242ptxStatus_t ptxIoRq_Push(ptxIoRq_t *ioCpl, pptxIoRqCompletion_t ioCompletionFn, void *ioData, size_t ioDataLength, void *ioCompletionComp);
243
262ptxStatus_t ptxIoRq_Pop(ptxIoRq_t *ioCpl, pptxIoRqCompletion_t *ioCompletionFn, void **ioData, size_t *ioDataLength, void **ioCompletionComp);
263
273ptxStatus_t ptxIoRq_SetItemState(struct ptxIoRq *ioRqItem, uint8_t ioState);
274
290 pptxIoRqCompletion_t followingCompletion,
291 struct ptxIoRq *ioRq,
292 void *cplUpperLayer,
293 void *data,
294 size_t dataLength,
295 ptxStatus_t cplStatus);
296
318 struct ptxIoRq *ioRq,
319 struct ptxLog *logComp,
320 void *ioData,
321 size_t ioDataLength,
322 ptxStatus_t cplStatus);
323
335
346
347 // grp_stack_io
348
349#ifdef __cplusplus
350}
351#endif
352
353#endif
354
355
uint16_t ptxStatus_t
Status Type.
Definition ptx_Status.h:82
ptxBufferPool_Item_t * ptxIoRq_GetPoolItem(ptxIoRq_t *ioRqItem)
Get buffer item linked to the IO RQ object.
ptxStatus_t ptxIoRq_Init(ptxIoRq_t *ioCpl)
Initialise the I/O Request Structure.
ptxStatus_t ptxIoRq_PopCallCompletion(struct ptxIoRq *ioRq, struct ptxLog *logComp, void *ioData, size_t ioDataLength, ptxStatus_t cplStatus)
Pop next item and call following completion.
ptxStatus_t ptxIoRq_CallCompletion(pptxIoRqCompletion_t followingCompletion, struct ptxIoRq *ioRq, void *cplUpperLayer, void *data, size_t dataLength, ptxStatus_t cplStatus)
I/O Completion Callback Invocation Helper.
void(* pptxIoRqCompletion_t)(struct ptxIoRq *ioRq, void *cplUpperLayer, void *data, size_t dataLength, ptxStatus_t cplStatus)
I/O Completion Callback.
Definition ptx_IoRq.h:143
ptxStatus_t ptxIoRq_Push(ptxIoRq_t *ioCpl, pptxIoRqCompletion_t ioCompletionFn, void *ioData, size_t ioDataLength, void *ioCompletionComp)
Push a new stack location to the I/O request object.
ptxStatus_t ptxIoRq_Pop(ptxIoRq_t *ioCpl, pptxIoRqCompletion_t *ioCompletionFn, void **ioData, size_t *ioDataLength, void **ioCompletionComp)
Pop the next stack location from the I/O request object.
ptxStatus_t ptxIoRq_SetPoolItem(ptxIoRq_t *ioRqItem, ptxBufferPool_Item_t *bufferItem)
Set buffer item linked to the IO RQ object.
struct ptxIoRq ptxIoRq_t
I/O Request structure.
ptxStatus_t(* pptxIoRq_Pop_t)(ptxIoRq_t *ioCpl, pptxIoRqCompletion_t *ioCompletionFn, void **ioData, uint8_t *ioDataLength, void **ioCompletionComp)
Function pointer declaration according to ptxIoRq_Pop.
Definition ptx_IoRq.h:178
struct ptxIoRq * ptxIoRq_GetItem(struct ptxOsal *osalCtx)
Allocate or get from a pool an I/O Request Item.
#define PTX_IORQ_NUM_STACK_LOCATIONS
Definition ptx_IoRq.h:98
ptxStatus_t(* pptxIoRq_Init_t)(ptxIoRq_t *ioCpl)
Function pointer declaration according to ptxIoRq_Init.
Definition ptx_IoRq.h:168
ptxStatus_t(* pptxIoRq_Push_t)(ptxIoRq_t *ioCpl, pptxIoRqCompletion_t ioCompletionFn, uint8_t *ioData, uint8_t dataLength, void *ioCompletionComp)
Function pointer declaration according to ptxIoRq_Push.
Definition ptx_IoRq.h:173
ptxStatus_t ptxIoRq_SetItemState(struct ptxIoRq *ioRqItem, uint8_t ioState)
Set state of an I/O Request Item.
void ptxIoRq_ReturnItem(struct ptxOsal *osalCtx, struct ptxIoRq *ioRqItem)
De-allocate or return to a pool an I/O Request Item.
Buffer Pool Item structure.
Definition ptxBufferPool.h:114
I/O Request structure.
Definition ptx_IoRq.h:154
pptxIoRqCompletion_t IoCompletion[PTX_IORQ_NUM_STACK_LOCATIONS]
Definition ptx_IoRq.h:155
size_t dataLength[PTX_IORQ_NUM_STACK_LOCATIONS]
Definition ptx_IoRq.h:158
void * data[PTX_IORQ_NUM_STACK_LOCATIONS]
Definition ptx_IoRq.h:157
uint8_t N
Definition ptx_IoRq.h:160
uint8_t State
Definition ptx_IoRq.h:161
ptxBufferPool_Item_t * bufferItem
Definition ptx_IoRq.h:162
uint8_t Type
Definition ptx_IoRq.h:159
void * Layer[PTX_IORQ_NUM_STACK_LOCATIONS]
Definition ptx_IoRq.h:156
Logger Component Structure.
Definition ptxLog.h:208