Microchip® Advanced Software Framework

queue.c File Reference
#include <stdlib.h>
#include <string.h>
#include "include/FreeRTOS.h"
#include "include/task.h"
#include "include/croutine.h"

Data Structures

struct  QueueDefinition
 

Macros

#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
 
#define prvLockQueue(pxQueue)
 
#define pxMutexHolder   pcTail
 
#define queueDONT_BLOCK   ( ( portTickType ) 0 )
 
#define queueERRONEOUS_UNBLOCK   ( -1 )
 
#define queueLOCKED_UNMODIFIED   ( ( signed portBASE_TYPE ) 0 )
 
#define queueMUTEX_GIVE_BLOCK_TIME   ( ( portTickType ) 0 )
 
#define queueQUEUE_IS_MUTEX   NULL
 
#define queueSEMAPHORE_QUEUE_ITEM_LENGTH   ( 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 portBASE_TYPE uxQueueMessagesWaiting (const xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR (const xQueueHandle pxQueue)
 
void vQueueAddToRegistry (xQueueHandle xQueue, signed char *pcQueueName) PRIVILEGED_FUNCTION
 
void vQueueDelete (xQueueHandle xQueue) PRIVILEGED_FUNCTION
 
static void vQueueUnregisterQueue (xQueueHandle xQueue) PRIVILEGED_FUNCTION
 
xQueueHandle xQueueCreate (unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize) PRIVILEGED_FUNCTION
 
xQueueHandle xQueueCreateMutex (void)
 
signed portBASE_TYPE xQueueGenericReceive (xQueueHandle pxQueue, void *const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking) PRIVILEGED_FUNCTION
 
signed portBASE_TYPE xQueueGenericSend (xQueueHandle xQueue, 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
 
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 *pxTaskWoken) PRIVILEGED_FUNCTION
 

Variables

xQueueRegistryItem xQueueRegistry [configQUEUE_REGISTRY_SIZE]
 
 xQueueRegistryItem
 

#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: queue.c:80
#define taskEXIT_CRITICAL()
Definition: task.h:169
#define queueUNLOCKED
Definition: queue.c:79
#define taskENTER_CRITICAL()
Definition: task.h:155

Referenced by xQueueGenericReceive(), and xQueueGenericSend().

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

Referenced by prvUnlockQueue().

#define queueMUTEX_GIVE_BLOCK_TIME   ( ( portTickType ) 0 )
#define queueQUEUE_IS_MUTEX   NULL
#define queueSEMAPHORE_QUEUE_ITEM_LENGTH   ( 0 )
#define queueSEND_TO_BACK   ( 0 )

Referenced by prvCopyDataToQueue().

#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 portBASE_TYPE uxQueueMessagesWaiting ( const xQueueHandle  pxQueue)
unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR ( const xQueueHandle  pxQueue)
void vQueueAddToRegistry ( xQueueHandle  xQueue,
signed char *  pcQueueName 
)
static void vQueueUnregisterQueue ( xQueueHandle  xQueue)
static

References configQUEUE_REGISTRY_SIZE.

Referenced by vQueueDelete().

xQueueHandle xQueueCreateMutex ( void  )
signed portBASE_TYPE xQueueIsQueueEmptyFromISR ( const xQueueHandle  pxQueue)
signed portBASE_TYPE xQueueIsQueueFullFromISR ( const xQueueHandle  pxQueue)

xQueueRegistryItem