Microchip® Advanced Software Framework

freertos-7.4.2/Source/queue.c File Reference
#include <stdlib.h>
#include <string.h>
#include "include/FreeRTOS.h"
#include "include/task.h"
#include "include/queue.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 queueSEMAPHORE_QUEUE_ITEM_LENGTH   ( ( unsigned portBASE_TYPE ) 0 )
 
#define queueUNLOCKED   ( ( signed portBASE_TYPE ) -1 )
 
#define uxQueueType   pcHead
 
#define uxRecursiveCallCount   pcReadFrom
 

Typedefs

typedef struct QueueDefinition xQUEUE
 

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 xQUEUE *pxQueue) PRIVILEGED_FUNCTION
 
static signed portBASE_TYPE prvIsQueueFull (const xQUEUE *pxQueue) PRIVILEGED_FUNCTION
 
static void prvUnlockQueue (xQUEUE *pxQueue) PRIVILEGED_FUNCTION
 
unsigned portBASE_TYPE uxQueueMessagesWaiting (const xQueueHandle xQueue)
 
unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR (const xQueueHandle xQueue)
 
void vQueueDelete (xQueueHandle xQueue)
 
xQueueHandle xQueueGenericCreate (unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize, unsigned char ucQueueType)
 
signed portBASE_TYPE xQueueGenericReceive (xQueueHandle xQueue, void *const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking)
 
portBASE_TYPE xQueueGenericReset (xQueueHandle xQueue, portBASE_TYPE xNewQueue)
 
signed portBASE_TYPE xQueueGenericSend (xQueueHandle xQueue, const void *const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition)
 
signed portBASE_TYPE xQueueGenericSendFromISR (xQueueHandle xQueue, const void *const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition)
 
signed portBASE_TYPE xQueueIsQueueEmptyFromISR (const xQueueHandle xQueue)
 
signed portBASE_TYPE xQueueIsQueueFullFromISR (const xQueueHandle xQueue)
 
signed portBASE_TYPE xQueueReceiveFromISR (xQueueHandle xQueue, void *const pvBuffer, signed portBASE_TYPE *pxHigherPriorityTaskWoken)
 

#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 queueLOCKED_UNMODIFIED
Definition: freertos-7.4.2/Source/queue.c:95
#define queueUNLOCKED
Definition: freertos-7.4.2/Source/queue.c:94
#define taskENTER_CRITICAL()
Definition: freertos-7.5.2/Source/include/task.h:192
#define taskEXIT_CRITICAL()
Definition: freertos-7.5.2/Source/include/task.h:206
if(memp!=NULL)
Definition: memp.c:407

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 queueSEMAPHORE_QUEUE_ITEM_LENGTH   ( ( unsigned portBASE_TYPE ) 0 )
#define queueUNLOCKED   ( ( signed portBASE_TYPE ) -1 )
#define uxQueueType   pcHead
#define uxRecursiveCallCount   pcReadFrom

typedef struct QueueDefinition xQUEUE

static void prvCopyDataFromQueue ( xQUEUE *const  pxQueue,
const void *  pvBuffer 
)
static
static signed portBASE_TYPE prvIsQueueEmpty ( const xQUEUE pxQueue)
static
static signed portBASE_TYPE prvIsQueueFull ( const xQUEUE pxQueue)
static
unsigned portBASE_TYPE uxQueueMessagesWaiting ( const xQueueHandle  xQueue)
unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR ( const xQueueHandle  xQueue)

References configASSERT.

void vQueueDelete ( xQueueHandle  xQueue)
xQueueHandle xQueueGenericCreate ( unsigned portBASE_TYPE  uxQueueLength,
unsigned portBASE_TYPE  uxItemSize,
unsigned char  ucQueueType 
)
signed portBASE_TYPE xQueueGenericReceive ( xQueueHandle  xQueue,
void *const  pvBuffer,
portTickType  xTicksToWait,
portBASE_TYPE  xJustPeeking 
)
signed portBASE_TYPE xQueueIsQueueEmptyFromISR ( const xQueueHandle  xQueue)

References configASSERT, pdFALSE, and pdTRUE.

signed portBASE_TYPE xQueueIsQueueFullFromISR ( const xQueueHandle  xQueue)

References configASSERT, pdFALSE, and pdTRUE.

signed portBASE_TYPE xQueueReceiveFromISR ( xQueueHandle  xQueue,
void *const  pvBuffer,
signed portBASE_TYPE *  pxHigherPriorityTaskWoken 
)