|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
#include <stdint.h>#include <string.h>#include "FreeRTOS.h"#include "task.h"#include "stream_buffer.h"Go to the source code of this file.
Classes | |
| struct | StreamBufferDef_t |
Macros | |
| #define | MPU_WRAPPERS_INCLUDED_FROM_API_FILE |
| #define | sbRECEIVE_COMPLETED(pxStreamBuffer) |
| #define | prvRECEIVE_COMPLETED(pxStreamBuffer) |
| #define | sbRECEIVE_COMPLETED_FROM_ISR(pxStreamBuffer, pxHigherPriorityTaskWoken) |
| #define | prvRECEIVE_COMPLETED_FROM_ISR(pxStreamBuffer, pxHigherPriorityTaskWoken) |
| #define | sbSEND_COMPLETED(pxStreamBuffer) |
| #define | prvSEND_COMPLETED(pxStreamBuffer) |
| #define | sbSEND_COMPLETE_FROM_ISR(pxStreamBuffer, pxHigherPriorityTaskWoken) |
| #define | prvSEND_COMPLETE_FROM_ISR(pxStreamBuffer, pxHigherPriorityTaskWoken) |
| #define | sbBYTES_TO_STORE_MESSAGE_LENGTH ( sizeof( configMESSAGE_BUFFER_LENGTH_TYPE ) ) |
| #define | sbFLAGS_IS_MESSAGE_BUFFER ( ( uint8_t ) 1 ) /* Set if the stream buffer was created as a message buffer, in which case it holds discrete messages rather than a stream. */ |
| #define | sbFLAGS_IS_STATICALLY_ALLOCATED ( ( uint8_t ) 2 ) /* Set if the stream buffer was created using statically allocated memory. */ |
Typedefs | |
| typedef struct StreamBufferDef_t | StreamBuffer_t |
Functions | |
| static size_t | prvBytesInBuffer (const StreamBuffer_t *const pxStreamBuffer) PRIVILEGED_FUNCTION |
| static size_t | prvWriteBytesToBuffer (StreamBuffer_t *const pxStreamBuffer, const uint8_t *pucData, size_t xCount, size_t xHead) PRIVILEGED_FUNCTION |
| static size_t | prvReadMessageFromBuffer (StreamBuffer_t *pxStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, size_t xBytesAvailable) PRIVILEGED_FUNCTION |
| static size_t | prvWriteMessageToBuffer (StreamBuffer_t *const pxStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, size_t xSpace, size_t xRequiredSpace) PRIVILEGED_FUNCTION |
| static size_t | prvReadBytesFromBuffer (StreamBuffer_t *pxStreamBuffer, uint8_t *pucData, size_t xCount, size_t xTail) PRIVILEGED_FUNCTION |
| static void | prvInitialiseNewStreamBuffer (StreamBuffer_t *const pxStreamBuffer, uint8_t *const pucBuffer, size_t xBufferSizeBytes, size_t xTriggerLevelBytes, uint8_t ucFlags, StreamBufferCallbackFunction_t pxSendCompletedCallback, StreamBufferCallbackFunction_t pxReceiveCompletedCallback) PRIVILEGED_FUNCTION |
| void | vStreamBufferDelete (StreamBufferHandle_t xStreamBuffer) |
| BaseType_t | xStreamBufferReset (StreamBufferHandle_t xStreamBuffer) |
| BaseType_t | xStreamBufferSetTriggerLevel (StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel) |
| size_t | xStreamBufferSpacesAvailable (StreamBufferHandle_t xStreamBuffer) |
| size_t | xStreamBufferBytesAvailable (StreamBufferHandle_t xStreamBuffer) |
| size_t | xStreamBufferSend (StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, TickType_t xTicksToWait) |
| size_t | xStreamBufferSendFromISR (StreamBufferHandle_t xStreamBuffer, const void *pvTxData, size_t xDataLengthBytes, BaseType_t *const pxHigherPriorityTaskWoken) |
| size_t | xStreamBufferReceive (StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, TickType_t xTicksToWait) |
| size_t | xStreamBufferNextMessageLengthBytes (StreamBufferHandle_t xStreamBuffer) |
| size_t | xStreamBufferReceiveFromISR (StreamBufferHandle_t xStreamBuffer, void *pvRxData, size_t xBufferLengthBytes, BaseType_t *const pxHigherPriorityTaskWoken) |
| BaseType_t | xStreamBufferIsEmpty (StreamBufferHandle_t xStreamBuffer) |
| BaseType_t | xStreamBufferIsFull (StreamBufferHandle_t xStreamBuffer) |
| BaseType_t | xStreamBufferSendCompletedFromISR (StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken) |
| BaseType_t | xStreamBufferReceiveCompletedFromISR (StreamBufferHandle_t xStreamBuffer, BaseType_t *pxHigherPriorityTaskWoken) |
| #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE |
Definition at line 36 of file stream_buffer.c.
| #define prvRECEIVE_COMPLETED | ( | pxStreamBuffer | ) |
Definition at line 92 of file stream_buffer.c.
Referenced by xStreamBufferReceive().
| #define prvRECEIVE_COMPLETED_FROM_ISR | ( | pxStreamBuffer, | |
| pxHigherPriorityTaskWoken ) |
Definition at line 130 of file stream_buffer.c.
Referenced by xStreamBufferReceiveFromISR().
| #define prvSEND_COMPLETE_FROM_ISR | ( | pxStreamBuffer, | |
| pxHigherPriorityTaskWoken ) |
Definition at line 207 of file stream_buffer.c.
Referenced by xStreamBufferSendFromISR().
| #define prvSEND_COMPLETED | ( | pxStreamBuffer | ) |
Definition at line 169 of file stream_buffer.c.
Referenced by xStreamBufferSend().
| #define sbBYTES_TO_STORE_MESSAGE_LENGTH ( sizeof( configMESSAGE_BUFFER_LENGTH_TYPE ) ) |
Definition at line 214 of file stream_buffer.c.
Referenced by prvReadMessageFromBuffer(), prvWriteMessageToBuffer(), xStreamBufferIsFull(), xStreamBufferNextMessageLengthBytes(), xStreamBufferReceive(), xStreamBufferReceiveFromISR(), xStreamBufferSend(), and xStreamBufferSendFromISR().
| #define sbFLAGS_IS_MESSAGE_BUFFER ( ( uint8_t ) 1 ) /* Set if the stream buffer was created as a message buffer, in which case it holds discrete messages rather than a stream. */ |
Definition at line 217 of file stream_buffer.c.
Referenced by prvReadMessageFromBuffer(), prvWriteMessageToBuffer(), xStreamBufferIsFull(), xStreamBufferNextMessageLengthBytes(), xStreamBufferReceive(), xStreamBufferReceiveFromISR(), xStreamBufferSend(), and xStreamBufferSendFromISR().
| #define sbFLAGS_IS_STATICALLY_ALLOCATED ( ( uint8_t ) 2 ) /* Set if the stream buffer was created using statically allocated memory. */ |
Definition at line 218 of file stream_buffer.c.
Referenced by vStreamBufferDelete().
| #define sbRECEIVE_COMPLETED | ( | pxStreamBuffer | ) |
Definition at line 62 of file stream_buffer.c.
| #define sbRECEIVE_COMPLETED_FROM_ISR | ( | pxStreamBuffer, | |
| pxHigherPriorityTaskWoken ) |
Definition at line 96 of file stream_buffer.c.
| #define sbSEND_COMPLETE_FROM_ISR | ( | pxStreamBuffer, | |
| pxHigherPriorityTaskWoken ) |
Definition at line 174 of file stream_buffer.c.
| #define sbSEND_COMPLETED | ( | pxStreamBuffer | ) |
Definition at line 139 of file stream_buffer.c.
| typedef struct StreamBufferDef_t StreamBuffer_t |
|
static |
Definition at line 1366 of file stream_buffer.c.
References mtCOVERAGE_TEST_MARKER, StreamBufferDef_t::xHead, StreamBufferDef_t::xLength, and StreamBufferDef_t::xTail.
Referenced by xStreamBufferBytesAvailable(), xStreamBufferNextMessageLengthBytes(), xStreamBufferReceive(), xStreamBufferReceiveFromISR(), xStreamBufferSend(), and xStreamBufferSendFromISR().
|
static |
Definition at line 1387 of file stream_buffer.c.
References configASSERT, StreamBufferDef_t::pucBuffer, StreamBufferDef_t::ucFlags, StreamBufferDef_t::xLength, and StreamBufferDef_t::xTriggerLevelBytes.
Referenced by xStreamBufferReset().
|
static |
Definition at line 1322 of file stream_buffer.c.
References configASSERT, configMIN, mtCOVERAGE_TEST_MARKER, StreamBufferDef_t::pucBuffer, and StreamBufferDef_t::xLength.
Referenced by prvReadMessageFromBuffer(), and xStreamBufferNextMessageLengthBytes().
|
static |
Definition at line 1103 of file stream_buffer.c.
References configMESSAGE_BUFFER_LENGTH_TYPE, configMIN, mtCOVERAGE_TEST_MARKER, prvReadBytesFromBuffer(), sbBYTES_TO_STORE_MESSAGE_LENGTH, sbFLAGS_IS_MESSAGE_BUFFER, StreamBufferDef_t::ucFlags, and StreamBufferDef_t::xTail.
Referenced by xStreamBufferReceive(), and xStreamBufferReceiveFromISR().
|
static |
Definition at line 1276 of file stream_buffer.c.
References configASSERT, configMIN, mtCOVERAGE_TEST_MARKER, StreamBufferDef_t::pucBuffer, and StreamBufferDef_t::xLength.
Referenced by prvWriteMessageToBuffer().
|
static |
Definition at line 852 of file stream_buffer.c.
References configASSERT, configMESSAGE_BUFFER_LENGTH_TYPE, configMIN, prvWriteBytesToBuffer(), sbBYTES_TO_STORE_MESSAGE_LENGTH, sbFLAGS_IS_MESSAGE_BUFFER, StreamBufferDef_t::ucFlags, and StreamBufferDef_t::xHead.
Referenced by xStreamBufferSend(), and xStreamBufferSendFromISR().
| void vStreamBufferDelete | ( | StreamBufferHandle_t | xStreamBuffer | ) |
Definition at line 505 of file stream_buffer.c.
References configASSERT, pdFALSE, sbFLAGS_IS_STATICALLY_ALLOCATED, traceSTREAM_BUFFER_DELETE, StreamBufferDef_t::ucFlags, and vPortFree().
| size_t xStreamBufferBytesAvailable | ( | StreamBufferHandle_t | xStreamBuffer | ) |
Definition at line 658 of file stream_buffer.c.
References configASSERT, and prvBytesInBuffer().
| BaseType_t xStreamBufferIsEmpty | ( | StreamBufferHandle_t | xStreamBuffer | ) |
Definition at line 1155 of file stream_buffer.c.
References configASSERT, pdFALSE, pdTRUE, StreamBufferDef_t::xHead, and StreamBufferDef_t::xTail.
| BaseType_t xStreamBufferIsFull | ( | StreamBufferHandle_t | xStreamBuffer | ) |
Definition at line 1179 of file stream_buffer.c.
References configASSERT, pdFALSE, pdTRUE, sbBYTES_TO_STORE_MESSAGE_LENGTH, sbFLAGS_IS_MESSAGE_BUFFER, StreamBufferDef_t::ucFlags, and xStreamBufferSpacesAvailable().
| size_t xStreamBufferNextMessageLengthBytes | ( | StreamBufferHandle_t | xStreamBuffer | ) |
Definition at line 1006 of file stream_buffer.c.
References configASSERT, configMESSAGE_BUFFER_LENGTH_TYPE, prvBytesInBuffer(), prvReadBytesFromBuffer(), sbBYTES_TO_STORE_MESSAGE_LENGTH, sbFLAGS_IS_MESSAGE_BUFFER, StreamBufferDef_t::ucFlags, and StreamBufferDef_t::xTail.
| size_t xStreamBufferReceive | ( | StreamBufferHandle_t | xStreamBuffer, |
| void * | pvRxData, | ||
| size_t | xBufferLengthBytes, | ||
| TickType_t | xTicksToWait ) |
Definition at line 902 of file stream_buffer.c.
References configASSERT, mtCOVERAGE_TEST_MARKER, NULL, prvBytesInBuffer(), prvReadMessageFromBuffer(), prvRECEIVE_COMPLETED, sbBYTES_TO_STORE_MESSAGE_LENGTH, sbFLAGS_IS_MESSAGE_BUFFER, taskENTER_CRITICAL, taskEXIT_CRITICAL, traceBLOCKING_ON_STREAM_BUFFER_RECEIVE, traceSTREAM_BUFFER_RECEIVE, traceSTREAM_BUFFER_RECEIVE_FAILED, StreamBufferDef_t::ucFlags, xTaskGetCurrentTaskHandle(), xTaskNotifyStateClear, xTaskNotifyWait, and StreamBufferDef_t::xTaskWaitingToReceive.
| BaseType_t xStreamBufferReceiveCompletedFromISR | ( | StreamBufferHandle_t | xStreamBuffer, |
| BaseType_t * | pxHigherPriorityTaskWoken ) |
Definition at line 1245 of file stream_buffer.c.
References configASSERT, eNoAction, NULL, pdFALSE, pdTRUE, portCLEAR_INTERRUPT_MASK_FROM_ISR, portSET_INTERRUPT_MASK_FROM_ISR, and xTaskNotifyFromISR.
| size_t xStreamBufferReceiveFromISR | ( | StreamBufferHandle_t | xStreamBuffer, |
| void * | pvRxData, | ||
| size_t | xBufferLengthBytes, | ||
| BaseType_t *const | pxHigherPriorityTaskWoken ) |
Definition at line 1046 of file stream_buffer.c.
References configASSERT, mtCOVERAGE_TEST_MARKER, prvBytesInBuffer(), prvReadMessageFromBuffer(), prvRECEIVE_COMPLETED_FROM_ISR, sbBYTES_TO_STORE_MESSAGE_LENGTH, sbFLAGS_IS_MESSAGE_BUFFER, traceSTREAM_BUFFER_RECEIVE_FROM_ISR, and StreamBufferDef_t::ucFlags.
| BaseType_t xStreamBufferReset | ( | StreamBufferHandle_t | xStreamBuffer | ) |
Definition at line 538 of file stream_buffer.c.
References configASSERT, NULL, pdFAIL, pdPASS, prvInitialiseNewStreamBuffer(), StreamBufferDef_t::pucBuffer, taskENTER_CRITICAL, taskEXIT_CRITICAL, traceSTREAM_BUFFER_RESET, StreamBufferDef_t::ucFlags, StreamBufferDef_t::xLength, StreamBufferDef_t::xTaskWaitingToReceive, StreamBufferDef_t::xTaskWaitingToSend, and StreamBufferDef_t::xTriggerLevelBytes.
| size_t xStreamBufferSend | ( | StreamBufferHandle_t | xStreamBuffer, |
| const void * | pvTxData, | ||
| size_t | xDataLengthBytes, | ||
| TickType_t | xTicksToWait ) |
Definition at line 670 of file stream_buffer.c.
References configASSERT, mtCOVERAGE_TEST_MARKER, NULL, pdFALSE, prvBytesInBuffer(), prvSEND_COMPLETED, prvWriteMessageToBuffer(), sbBYTES_TO_STORE_MESSAGE_LENGTH, sbFLAGS_IS_MESSAGE_BUFFER, taskENTER_CRITICAL, taskEXIT_CRITICAL, traceBLOCKING_ON_STREAM_BUFFER_SEND, traceSTREAM_BUFFER_SEND, traceSTREAM_BUFFER_SEND_FAILED, StreamBufferDef_t::ucFlags, vTaskSetTimeOutState(), StreamBufferDef_t::xLength, xStreamBufferSpacesAvailable(), xTaskCheckForTimeOut(), xTaskGetCurrentTaskHandle(), xTaskNotifyStateClear, xTaskNotifyWait, StreamBufferDef_t::xTaskWaitingToSend, and StreamBufferDef_t::xTriggerLevelBytes.
| BaseType_t xStreamBufferSendCompletedFromISR | ( | StreamBufferHandle_t | xStreamBuffer, |
| BaseType_t * | pxHigherPriorityTaskWoken ) |
Definition at line 1214 of file stream_buffer.c.
References configASSERT, eNoAction, NULL, pdFALSE, pdTRUE, portCLEAR_INTERRUPT_MASK_FROM_ISR, portSET_INTERRUPT_MASK_FROM_ISR, and xTaskNotifyFromISR.
| size_t xStreamBufferSendFromISR | ( | StreamBufferHandle_t | xStreamBuffer, |
| const void * | pvTxData, | ||
| size_t | xDataLengthBytes, | ||
| BaseType_t *const | pxHigherPriorityTaskWoken ) |
Definition at line 801 of file stream_buffer.c.
References configASSERT, mtCOVERAGE_TEST_MARKER, prvBytesInBuffer(), prvSEND_COMPLETE_FROM_ISR, prvWriteMessageToBuffer(), sbBYTES_TO_STORE_MESSAGE_LENGTH, sbFLAGS_IS_MESSAGE_BUFFER, traceSTREAM_BUFFER_SEND_FROM_ISR, StreamBufferDef_t::ucFlags, xStreamBufferSpacesAvailable(), and StreamBufferDef_t::xTriggerLevelBytes.
| BaseType_t xStreamBufferSetTriggerLevel | ( | StreamBufferHandle_t | xStreamBuffer, |
| size_t | xTriggerLevel ) |
Definition at line 595 of file stream_buffer.c.
References configASSERT, pdFALSE, pdPASS, and StreamBufferDef_t::xTriggerLevelBytes.
| size_t xStreamBufferSpacesAvailable | ( | StreamBufferHandle_t | xStreamBuffer | ) |
Definition at line 625 of file stream_buffer.c.
References configASSERT, mtCOVERAGE_TEST_MARKER, StreamBufferDef_t::xHead, StreamBufferDef_t::xLength, and StreamBufferDef_t::xTail.
Referenced by xStreamBufferIsFull(), xStreamBufferSend(), and xStreamBufferSendFromISR().