Microchip® Advanced Software Framework

freertos-7.0.0/source/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)
 
static void prvCopyDataToQueue (xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition)
 
static signed portBASE_TYPE prvIsQueueEmpty (const xQueueHandle pxQueue)
 
static signed portBASE_TYPE prvIsQueueFull (const xQueueHandle pxQueue)
 
static void prvUnlockQueue (xQueueHandle pxQueue)
 
unsigned portBASE_TYPE uxQueueMessagesWaiting (const xQueueHandle pxQueue) PRIVILEGED_FUNCTION
 
unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR (const xQueueHandle pxQueue)
 
void vQueueDelete (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
 

#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 queueUNLOCKED
Definition: freertos-7.0.0/source/queue.c:79
if(memp!=NULL)
Definition: src/core/memp.c:407
#define queueLOCKED_UNMODIFIED
Definition: freertos-7.0.0/source/queue.c:80
#define taskENTER_CRITICAL()
Definition: freertos-7.3.0/source/include/task.h:173
#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 )

Referenced by prvUnlockQueue().

#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)
xQueueHandle xQueueCreate ( unsigned portBASE_TYPE  uxQueueLength,
unsigned portBASE_TYPE  uxItemSize 
)
xQueueHandle xQueueCreateMutex ( void  )
signed portBASE_TYPE xQueueIsQueueEmptyFromISR ( const xQueueHandle  pxQueue)
signed portBASE_TYPE xQueueIsQueueFullFromISR ( const xQueueHandle  pxQueue)