queue.c File Reference
`#include <stdlib.h>`
`#include <string.h>`
`#include "FreeRTOS.h"`
`#include "task.h"`
`#include "queue.h"`
Include dependency graph for queue.c:

## Data Structures

struct | QueueDefinition

## Macros

#define | MPU_WRAPPERS_INCLUDED_FROM_API_FILE
#define | queueUNLOCKED ( ( int8_t ) -1 )
#define | queueLOCKED_UNMODIFIED ( ( int8_t ) 0 )
#define | pxMutexHolder pcTail
#define | uxQueueType pcHead
#define | queueQUEUE_IS_MUTEX NULL
#define | queueSEMAPHORE_QUEUE_ITEM_LENGTH ( ( UBaseType_t ) 0 )
#define | queueMUTEX_GIVE_BLOCK_TIME ( ( TickType_t ) 0U )
#define | queueYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API()
#define | prvLockQueue(pxQueue)

## Typedefs

typedef struct QueueDefinition | xQUEUE
typedef xQUEUE | Queue_t

## Functions

static void | prvUnlockQueue (Queue_t *const pxQueue) PRIVILEGED_FUNCTION
static BaseType_t | prvIsQueueEmpty (const Queue_t *pxQueue) PRIVILEGED_FUNCTION
static BaseType_t | prvIsQueueFull (const Queue_t *pxQueue) PRIVILEGED_FUNCTION
static BaseType_t | prvCopyDataToQueue (Queue_t *const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition) PRIVILEGED_FUNCTION
static void | prvCopyDataFromQueue (Queue_t *const pxQueue, void *const pvBuffer) PRIVILEGED_FUNCTION
static void | prvInitialiseNewQueue (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, const uint8_t ucQueueType, Queue_t *pxNewQueue) PRIVILEGED_FUNCTION
BaseType_t | xQueueGenericReset (QueueHandle_t xQueue, BaseType_t xNewQueue)
QueueHandle_t | xQueueGenericCreate (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType)
BaseType_t | xQueueGenericSend (QueueHandle_t xQueue, const void *const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition)
BaseType_t | xQueueGenericSendFromISR (QueueHandle_t xQueue, const void *const pvItemToQueue, BaseType_t *const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition)
BaseType_t | xQueueGiveFromISR (QueueHandle_t xQueue, BaseType_t *const pxHigherPriorityTaskWoken)
BaseType_t | xQueueReceive (QueueHandle_t xQueue, void *const pvBuffer, TickType_t xTicksToWait)
BaseType_t | xQueueSemaphoreTake (QueueHandle_t xQueue, TickType_t xTicksToWait)
BaseType_t | xQueuePeek (QueueHandle_t xQueue, void *const pvBuffer, TickType_t xTicksToWait)
BaseType_t | xQueueReceiveFromISR (QueueHandle_t xQueue, void *const pvBuffer, BaseType_t *const pxHigherPriorityTaskWoken)
BaseType_t | xQueuePeekFromISR (QueueHandle_t xQueue, void *const pvBuffer)
UBaseType_t | uxQueueMessagesWaiting (const QueueHandle_t xQueue)
UBaseType_t | uxQueueSpacesAvailable (const QueueHandle_t xQueue)
UBaseType_t | uxQueueMessagesWaitingFromISR (const QueueHandle_t xQueue)
void | vQueueDelete (QueueHandle_t xQueue)
BaseType_t | xQueueIsQueueEmptyFromISR (const QueueHandle_t xQueue)
BaseType_t | xQueueIsQueueFullFromISR (const QueueHandle_t xQueue)

## Macro Definition Documentation

## MPU_WRAPPERS_INCLUDED_FROM_API_FILE

#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE

## prvLockQueue

#define prvLockQueue | ( |  | pxQueue | ) |

Value:
taskENTER_CRITICAL(); \
{ \
if( ( pxQueue )->cRxLock == queueUNLOCKED ) \
{ \
( pxQueue )->cRxLock = queueLOCKED_UNMODIFIED; \
} \
if( ( pxQueue )->cTxLock == queueUNLOCKED ) \
{ \
( pxQueue )->cTxLock = queueLOCKED_UNMODIFIED; \
} \
} \
taskEXIT_CRITICAL()

## pxMutexHolder

#define pxMutexHolder pcTail

## queueLOCKED_UNMODIFIED

#define queueLOCKED_UNMODIFIED ( ( int8_t ) 0 )

## queueMUTEX_GIVE_BLOCK_TIME

#define queueMUTEX_GIVE_BLOCK_TIME ( ( TickType_t ) 0U )

## queueQUEUE_IS_MUTEX

#define queueQUEUE_IS_MUTEX NULL

## queueSEMAPHORE_QUEUE_ITEM_LENGTH

#define queueSEMAPHORE_QUEUE_ITEM_LENGTH ( ( UBaseType_t ) 0 )

## queueUNLOCKED

#define queueUNLOCKED ( ( int8_t ) -1 )

## queueYIELD_IF_USING_PREEMPTION

#define queueYIELD_IF_USING_PREEMPTION | ( |  | ) | portYIELD_WITHIN_API()

## uxQueueType

#define uxQueueType pcHead

## Typedef Documentation

## Queue_t

typedef xQUEUE Queue_t

## xQUEUE

typedef struct QueueDefinition xQUEUE

## Function Documentation

## prvCopyDataFromQueue()

static void prvCopyDataFromQueue | ( | Queue_t *const | pxQueue,
|  | void *const | pvBuffer
| ) |  |

static

Here is the caller graph for this function:

## prvCopyDataToQueue()

static BaseType_t prvCopyDataToQueue | ( | Queue_t *const | pxQueue,
|  | const void * | pvItemToQueue,
|  | const BaseType_t | xPosition
| ) |  |

static

Here is the call graph for this function:
Here is the caller graph for this function:

## prvInitialiseNewQueue()

static void prvInitialiseNewQueue | ( | const UBaseType_t | uxQueueLength,
|  | const UBaseType_t | uxItemSize,
|  | uint8_t * | pucQueueStorage,
|  | const uint8_t | ucQueueType,
|  | Queue_t * | pxNewQueue
| ) |  |

static

Here is the call graph for this function:
Here is the caller graph for this function:

## prvIsQueueEmpty()

static BaseType_t prvIsQueueEmpty | ( | const Queue_t * | pxQueue | ) |

static

Here is the caller graph for this function:

## prvIsQueueFull()

static BaseType_t prvIsQueueFull | ( | const Queue_t * | pxQueue | ) |

static

Here is the caller graph for this function:

## prvUnlockQueue()

static void prvUnlockQueue | ( | Queue_t *const | pxQueue | ) |

static

Here is the call graph for this function:
Here is the caller graph for this function:

## uxQueueMessagesWaiting()

UBaseType_t uxQueueMessagesWaiting | ( | const QueueHandle_t | xQueue | ) |

## uxQueueMessagesWaitingFromISR()

UBaseType_t uxQueueMessagesWaitingFromISR | ( | const QueueHandle_t | xQueue | ) |

## uxQueueSpacesAvailable()

UBaseType_t uxQueueSpacesAvailable | ( | const QueueHandle_t | xQueue | ) |

## vQueueDelete()

void vQueueDelete | ( | QueueHandle_t | xQueue | ) |

Here is the call graph for this function:

## xQueueGenericCreate()

QueueHandle_t xQueueGenericCreate | ( | const UBaseType_t | uxQueueLength,
|  | const UBaseType_t | uxItemSize,
|  | const uint8_t | ucQueueType
| ) |  |

Here is the call graph for this function:

## xQueueGenericReset()

BaseType_t xQueueGenericReset | ( | QueueHandle_t | xQueue,
|  | BaseType_t | xNewQueue
| ) |  |

Here is the call graph for this function:
Here is the caller graph for this function:

## xQueueGenericSend()

BaseType_t xQueueGenericSend | ( | QueueHandle_t | xQueue,
|  | const void *const | pvItemToQueue,
|  | TickType_t | xTicksToWait,
|  | const BaseType_t | xCopyPosition
| ) |  |

Here is the call graph for this function:

## xQueueGenericSendFromISR()

BaseType_t xQueueGenericSendFromISR | ( | QueueHandle_t | xQueue,
|  | const void *const | pvItemToQueue,
|  | BaseType_t *const | pxHigherPriorityTaskWoken,
|  | const BaseType_t | xCopyPosition
| ) |  |

Here is the call graph for this function:

## xQueueGiveFromISR()

BaseType_t xQueueGiveFromISR | ( | QueueHandle_t | xQueue,
|  | BaseType_t *const | pxHigherPriorityTaskWoken
| ) |  |

Here is the call graph for this function:

## xQueueIsQueueEmptyFromISR()

BaseType_t xQueueIsQueueEmptyFromISR | ( | const QueueHandle_t | xQueue | ) |

## xQueueIsQueueFullFromISR()

BaseType_t xQueueIsQueueFullFromISR | ( | const QueueHandle_t | xQueue | ) |

## xQueuePeek()

BaseType_t xQueuePeek | ( | QueueHandle_t | xQueue,
|  | void *const | pvBuffer,
|  | TickType_t | xTicksToWait
| ) |  |

Here is the call graph for this function:

## xQueuePeekFromISR()

BaseType_t xQueuePeekFromISR | ( | QueueHandle_t | xQueue,
|  | void *const | pvBuffer
| ) |  |

Here is the call graph for this function:

## xQueueReceive()

BaseType_t xQueueReceive | ( | QueueHandle_t | xQueue,
|  | void *const | pvBuffer,
|  | TickType_t | xTicksToWait
| ) |  |

Here is the call graph for this function:
Here is the caller graph for this function:

## xQueueReceiveFromISR()

BaseType_t xQueueReceiveFromISR | ( | QueueHandle_t | xQueue,
|  | void *const | pvBuffer,
|  | BaseType_t *const | pxHigherPriorityTaskWoken
| ) |  |

Here is the call graph for this function:

## xQueueSemaphoreTake()

BaseType_t xQueueSemaphoreTake | ( | QueueHandle_t | xQueue,
|  | TickType_t | xTicksToWait
| ) |  |

Here is the call graph for this function:
queueLOCKED_UNMODIFIED
#define queueLOCKED_UNMODIFIED
Definition: queue.c:54
queueUNLOCKED
#define queueUNLOCKED
Definition: queue.c:53
taskENTER_CRITICAL
#define taskENTER_CRITICAL()
Definition: task.h:179