Microchip® Advanced Software Framework

freertos-7.3.0/source/queue.c File Reference
#include <stdlib.h>
#include <string.h>
#include "include/FreeRTOS.h"
#include "include/task.h"

Data Structures

struct  QueueDefinition
 

Macros

#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
 
#define prvLockQueue(pxQueue)
 
#define pxMutexHolder   pcTail
 
#define queueDONT_BLOCK   ( ( portTickType ) 0U )
 
#define queueERRONEOUS_UNBLOCK   ( -1 )
 
#define queueLOCKED_UNMODIFIED   ( ( signed portBASE_TYPE ) 0 )
 
#define queueMUTEX_GIVE_BLOCK_TIME   ( ( portTickType ) 0U )
 
#define queueQUEUE_IS_MUTEX   NULL
 
#define queueQUEUE_TYPE_BASE   ( 0U )
 
#define queueQUEUE_TYPE_BINARY_SEMAPHORE   ( 3U )
 
#define queueQUEUE_TYPE_COUNTING_SEMAPHORE   ( 2U )
 
#define queueQUEUE_TYPE_MUTEX   ( 1U )
 
#define queueQUEUE_TYPE_RECURSIVE_MUTEX   ( 4U )
 
#define queueSEMAPHORE_QUEUE_ITEM_LENGTH   ( ( unsigned portBASE_TYPE ) 0 )
 
#define queueSEND_TO_BACK   ( 0 )
 
#define queueSEND_TO_FRONT   ( 1 )
 
#define queueUNLOCKED   ( ( signed portBASE_TYPE ) -1 )
 
#define uxQueueType   pcHead
 
#define uxRecursiveCallCount   pcReadFrom
 

Typedefs

typedef struct QueueDefinition xQUEUE
 
typedef xQUEUExQueueHandle
 

Functions

static void prvCopyDataFromQueue (xQUEUE *const pxQueue, const void *pvBuffer) PRIVILEGED_FUNCTION
 
static void prvCopyDataToQueue (xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition) PRIVILEGED_FUNCTION
 
static signed portBASE_TYPE prvIsQueueEmpty (const xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
static signed portBASE_TYPE prvIsQueueFull (const xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
static void prvUnlockQueue (xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
unsigned char ucQueueGetQueueNumber (xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
unsigned char ucQueueGetQueueType (xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
unsigned portBASE_TYPE uxQueueMessagesWaiting (const xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR (const xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
void vQueueDelete (xQueueHandle xQueue) PRIVILEGED_FUNCTION
 
void vQueueSetQueueNumber (xQueueHandle pxQueue, unsigned char ucQueueNumber) PRIVILEGED_FUNCTION
 
void vQueueWaitForMessageRestricted (xQueueHandle pxQueue, portTickType xTicksToWait) PRIVILEGED_FUNCTION
 
signed portBASE_TYPE xQueueAltGenericReceive (xQueueHandle pxQueue, void *const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking) PRIVILEGED_FUNCTION
 
signed portBASE_TYPE xQueueAltGenericSend (xQueueHandle pxQueue, const void *const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition) PRIVILEGED_FUNCTION
 
xQueueHandle xQueueCreateCountingSemaphore (unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount) PRIVILEGED_FUNCTION
 
xQueueHandle xQueueCreateMutex (unsigned char ucQueueType) PRIVILEGED_FUNCTION
 
xQueueHandle xQueueGenericCreate (unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize, unsigned char ucQueueType) PRIVILEGED_FUNCTION
 
signed portBASE_TYPE xQueueGenericReceive (xQueueHandle pxQueue, void *const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking) PRIVILEGED_FUNCTION
 
portBASE_TYPE xQueueGenericReset (xQueueHandle pxQueue, portBASE_TYPE xNewQueue) PRIVILEGED_FUNCTION
 
signed portBASE_TYPE xQueueGenericSend (xQueueHandle pxQueue, const void *const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition) PRIVILEGED_FUNCTION
 
signed portBASE_TYPE xQueueGenericSendFromISR (xQueueHandle pxQueue, const void *const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition) PRIVILEGED_FUNCTION
 
xTaskHandle xQueueGetMutexHolder (xQueueHandle xSemaphore) PRIVILEGED_FUNCTION
 
portBASE_TYPE xQueueGiveMutexRecursive (xQueueHandle xMutex) PRIVILEGED_FUNCTION
 
signed portBASE_TYPE xQueueIsQueueEmptyFromISR (const xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
signed portBASE_TYPE xQueueIsQueueFullFromISR (const xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
signed portBASE_TYPE xQueueReceiveFromISR (xQueueHandle pxQueue, void *const pvBuffer, signed portBASE_TYPE *pxHigherPriorityTaskWoken) PRIVILEGED_FUNCTION
 
portBASE_TYPE xQueueTakeMutexRecursive (xQueueHandle xMutex, portTickType xBlockTime) PRIVILEGED_FUNCTION
 

#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
#define prvLockQueue (   pxQueue)
Value:
{ \
if( ( pxQueue )->xRxLock == queueUNLOCKED ) \
{ \
( pxQueue )->xRxLock = queueLOCKED_UNMODIFIED; \
} \
if( ( pxQueue )->xTxLock == queueUNLOCKED ) \
{ \
( pxQueue )->xTxLock = queueLOCKED_UNMODIFIED; \
} \
} \
#define taskEXIT_CRITICAL()
Definition: freertos-7.3.0/source/include/task.h:187
#define queueLOCKED_UNMODIFIED
Definition: freertos-7.3.0/source/queue.c:92
#define queueUNLOCKED
Definition: freertos-7.3.0/source/queue.c:91
if(memp!=NULL)
Definition: src/core/memp.c:407
#define taskENTER_CRITICAL()
Definition: freertos-7.3.0/source/include/task.h:173

Referenced by xQueueGenericReceive(), and xQueueGenericSend().

#define pxMutexHolder   pcTail
#define queueDONT_BLOCK   ( ( portTickType ) 0U )
#define queueERRONEOUS_UNBLOCK   ( -1 )
#define queueLOCKED_UNMODIFIED   ( ( signed portBASE_TYPE ) 0 )

Referenced by prvUnlockQueue().

#define queueMUTEX_GIVE_BLOCK_TIME   ( ( portTickType ) 0U )
#define queueQUEUE_IS_MUTEX   NULL
#define queueQUEUE_TYPE_BASE   ( 0U )
#define queueQUEUE_TYPE_BINARY_SEMAPHORE   ( 3U )
#define queueQUEUE_TYPE_COUNTING_SEMAPHORE   ( 2U )
#define queueQUEUE_TYPE_MUTEX   ( 1U )
#define queueQUEUE_TYPE_RECURSIVE_MUTEX   ( 4U )
#define queueSEMAPHORE_QUEUE_ITEM_LENGTH   ( ( unsigned portBASE_TYPE ) 0 )
#define queueSEND_TO_BACK   ( 0 )
#define queueSEND_TO_FRONT   ( 1 )
#define queueUNLOCKED   ( ( signed portBASE_TYPE ) -1 )
#define uxQueueType   pcHead
#define uxRecursiveCallCount   pcReadFrom

typedef struct QueueDefinition xQUEUE
typedef xQUEUE* xQueueHandle

static void prvCopyDataFromQueue ( xQUEUE *const  pxQueue,
const void *  pvBuffer 
)
static
static signed portBASE_TYPE prvIsQueueEmpty ( const xQueueHandle  pxQueue)
static
static signed portBASE_TYPE prvIsQueueFull ( const xQueueHandle  pxQueue)
static
unsigned char ucQueueGetQueueNumber ( xQueueHandle  pxQueue)
unsigned char ucQueueGetQueueType ( xQueueHandle  pxQueue)
unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR ( const xQueueHandle  pxQueue)
void vQueueDelete ( xQueueHandle  xQueue)

Referenced by sys_mbox_free(), and sys_sem_free().

void vQueueSetQueueNumber ( xQueueHandle  pxQueue,
unsigned char  ucQueueNumber 
)
void vQueueWaitForMessageRestricted ( xQueueHandle  pxQueue,
portTickType  xTicksToWait 
)
signed portBASE_TYPE xQueueAltGenericReceive ( xQueueHandle  pxQueue,
void *const  pvBuffer,
portTickType  xTicksToWait,
portBASE_TYPE  xJustPeeking 
)
signed portBASE_TYPE xQueueAltGenericSend ( xQueueHandle  pxQueue,
const void *const  pvItemToQueue,
portTickType  xTicksToWait,
portBASE_TYPE  xCopyPosition 
)
xQueueHandle xQueueCreateCountingSemaphore ( unsigned portBASE_TYPE  uxCountValue,
unsigned portBASE_TYPE  uxInitialCount 
)
xQueueHandle xQueueCreateMutex ( unsigned char  ucQueueType)
xQueueHandle xQueueGenericCreate ( unsigned portBASE_TYPE  uxQueueLength,
unsigned portBASE_TYPE  uxItemSize,
unsigned char  ucQueueType 
)
signed portBASE_TYPE xQueueGenericReceive ( xQueueHandle  pxQueue,
void *const  pvBuffer,
portTickType  xTicksToWait,
portBASE_TYPE  xJustPeeking 
)
signed portBASE_TYPE xQueueGenericSend ( xQueueHandle  pxQueue,
const void *const  pvItemToQueue,
portTickType  xTicksToWait,
portBASE_TYPE  xCopyPosition 
)
signed portBASE_TYPE xQueueGenericSendFromISR ( xQueueHandle  pxQueue,
const void *const  pvItemToQueue,
signed portBASE_TYPE *  pxHigherPriorityTaskWoken,
portBASE_TYPE  xCopyPosition 
)
xTaskHandle xQueueGetMutexHolder ( xQueueHandle  xSemaphore)
portBASE_TYPE xQueueGiveMutexRecursive ( xQueueHandle  xMutex)
signed portBASE_TYPE xQueueIsQueueEmptyFromISR ( const xQueueHandle  pxQueue)
signed portBASE_TYPE xQueueIsQueueFullFromISR ( const xQueueHandle  pxQueue)
signed portBASE_TYPE xQueueReceiveFromISR ( xQueueHandle  pxQueue,
void *const  pvBuffer,
signed portBASE_TYPE *  pxHigherPriorityTaskWoken 
)
portBASE_TYPE xQueueTakeMutexRecursive ( xQueueHandle  xMutex,
portTickType  xBlockTime 
)