queue.h
Go to the documentation of this file.
1 /*
2  * FreeRTOS Kernel V10.0.0
3  * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of
6  * this software and associated documentation files (the "Software"), to deal in
7  * the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9  * the Software, and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in all
13  * copies or substantial portions of the Software. If you wish to use our Amazon
14  * FreeRTOS name, please do so in a fair use way that does not cause confusion.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22  *
23  * http://www.FreeRTOS.org
24  * http://aws.amazon.com/freertos
25  *
26  * 1 tab == 4 spaces!
27  */
28 
29 
30 #ifndef QUEUE_H
31 #define QUEUE_H
32 
33 #ifndef INC_FREERTOS_H
34  #error "include FreeRTOS.h" must appear in source files before "include queue.h"
35 #endif
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 
47 typedef void * QueueHandle_t;
48 
54 typedef void * QueueSetHandle_t;
55 
61 typedef void * QueueSetMemberHandle_t;
62 
63 /* For internal use only. */
64 #define queueSEND_TO_BACK ( ( BaseType_t ) 0 )
65 #define queueSEND_TO_FRONT ( ( BaseType_t ) 1 )
66 #define queueOVERWRITE ( ( BaseType_t ) 2 )
67 
68 /* For internal use only. These definitions *must* match those in queue.c. */
69 #define queueQUEUE_TYPE_BASE ( ( uint8_t ) 0U )
70 #define queueQUEUE_TYPE_SET ( ( uint8_t ) 0U )
71 #define queueQUEUE_TYPE_MUTEX ( ( uint8_t ) 1U )
72 #define queueQUEUE_TYPE_COUNTING_SEMAPHORE ( ( uint8_t ) 2U )
73 #define queueQUEUE_TYPE_BINARY_SEMAPHORE ( ( uint8_t ) 3U )
74 #define queueQUEUE_TYPE_RECURSIVE_MUTEX ( ( uint8_t ) 4U )
75 
144 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
145  #define xQueueCreate( uxQueueLength, uxItemSize ) xQueueGenericCreate( ( uxQueueLength ), ( uxItemSize ), ( queueQUEUE_TYPE_BASE ) )
146 #endif
147 
230 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
231  #define xQueueCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxQueueBuffer ) xQueueGenericCreateStatic( ( uxQueueLength ), ( uxItemSize ), ( pucQueueStorage ), ( pxQueueBuffer ), ( queueQUEUE_TYPE_BASE ) )
232 #endif /* configSUPPORT_STATIC_ALLOCATION */
233 
312 #define xQueueSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_FRONT )
313 
394 #define xQueueSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK )
395 
478 #define xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK )
479 
561 #define xQueueOverwrite( xQueue, pvItemToQueue ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), 0, queueOVERWRITE )
562 
563 
649 BaseType_t xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition ) PRIVILEGED_FUNCTION;
650 
743 BaseType_t xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
744 
776 BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue, void * const pvBuffer ) PRIVILEGED_FUNCTION;
777 
867 BaseType_t xQueueReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
868 
882 UBaseType_t uxQueueMessagesWaiting( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
883 
899 UBaseType_t uxQueueSpacesAvailable( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
900 
913 void vQueueDelete( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
914 
983 #define xQueueSendToFrontFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_FRONT )
984 
985 
1054 #define xQueueSendToBackFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK )
1055 
1141 #define xQueueOverwriteFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueOVERWRITE )
1142 
1215 #define xQueueSendFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK )
1216 
1294 BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition ) PRIVILEGED_FUNCTION;
1295 BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue, BaseType_t * const pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION;
1296 
1384 BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken ) PRIVILEGED_FUNCTION;
1385 
1386 /*
1387  * Utilities to query queues that are safe to use from an ISR. These utilities
1388  * should be used only from witin an ISR, or within a critical section.
1389  */
1390 BaseType_t xQueueIsQueueEmptyFromISR( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
1391 BaseType_t xQueueIsQueueFullFromISR( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
1392 UBaseType_t uxQueueMessagesWaitingFromISR( const QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
1393 
1394 /*
1395  * The functions defined above are for passing data to and from tasks. The
1396  * functions below are the equivalents for passing data to and from
1397  * co-routines.
1398  *
1399  * These functions are called from the co-routine macro implementation and
1400  * should not be called directly from application code. Instead use the macro
1401  * wrappers defined within croutine.h.
1402  */
1403 BaseType_t xQueueCRSendFromISR( QueueHandle_t xQueue, const void *pvItemToQueue, BaseType_t xCoRoutinePreviouslyWoken );
1404 BaseType_t xQueueCRReceiveFromISR( QueueHandle_t xQueue, void *pvBuffer, BaseType_t *pxTaskWoken );
1405 BaseType_t xQueueCRSend( QueueHandle_t xQueue, const void *pvItemToQueue, TickType_t xTicksToWait );
1406 BaseType_t xQueueCRReceive( QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait );
1407 
1408 /*
1409  * For internal use only. Use xSemaphoreCreateMutex(),
1410  * xSemaphoreCreateCounting() or xSemaphoreGetMutexHolder() instead of calling
1411  * these functions directly.
1412  */
1413 QueueHandle_t xQueueCreateMutex( const uint8_t ucQueueType ) PRIVILEGED_FUNCTION;
1414 QueueHandle_t xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue ) PRIVILEGED_FUNCTION;
1415 QueueHandle_t xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount ) PRIVILEGED_FUNCTION;
1416 QueueHandle_t xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue ) PRIVILEGED_FUNCTION;
1417 BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
1418 void* xQueueGetMutexHolder( QueueHandle_t xSemaphore ) PRIVILEGED_FUNCTION;
1419 void* xQueueGetMutexHolderFromISR( QueueHandle_t xSemaphore ) PRIVILEGED_FUNCTION;
1420 
1421 /*
1422  * For internal use only. Use xSemaphoreTakeMutexRecursive() or
1423  * xSemaphoreGiveMutexRecursive() instead of calling these functions directly.
1424  */
1425 BaseType_t xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
1427 
1428 /*
1429  * Reset a queue back to its original empty state. The return value is now
1430  * obsolete and is always set to pdPASS.
1431  */
1432 #define xQueueReset( xQueue ) xQueueGenericReset( xQueue, pdFALSE )
1433 
1434 /*
1435  * The registry is provided as a means for kernel aware debuggers to
1436  * locate queues, semaphores and mutexes. Call vQueueAddToRegistry() add
1437  * a queue, semaphore or mutex handle to the registry if you want the handle
1438  * to be available to a kernel aware debugger. If you are not using a kernel
1439  * aware debugger then this function can be ignored.
1440  *
1441  * configQUEUE_REGISTRY_SIZE defines the maximum number of handles the
1442  * registry can hold. configQUEUE_REGISTRY_SIZE must be greater than 0
1443  * within FreeRTOSConfig.h for the registry to be available. Its value
1444  * does not effect the number of queues, semaphores and mutexes that can be
1445  * created - just the number that the registry can hold.
1446  *
1447  * @param xQueue The handle of the queue being added to the registry. This
1448  * is the handle returned by a call to xQueueCreate(). Semaphore and mutex
1449  * handles can also be passed in here.
1450  *
1451  * @param pcName The name to be associated with the handle. This is the
1452  * name that the kernel aware debugger will display. The queue registry only
1453  * stores a pointer to the string - so the string must be persistent (global or
1454  * preferably in ROM/Flash), not on the stack.
1455  */
1456 #if( configQUEUE_REGISTRY_SIZE > 0 )
1457  void vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcName ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
1458 #endif
1459 
1460 /*
1461  * The registry is provided as a means for kernel aware debuggers to
1462  * locate queues, semaphores and mutexes. Call vQueueAddToRegistry() add
1463  * a queue, semaphore or mutex handle to the registry if you want the handle
1464  * to be available to a kernel aware debugger, and vQueueUnregisterQueue() to
1465  * remove the queue, semaphore or mutex from the register. If you are not using
1466  * a kernel aware debugger then this function can be ignored.
1467  *
1468  * @param xQueue The handle of the queue being removed from the registry.
1469  */
1470 #if( configQUEUE_REGISTRY_SIZE > 0 )
1471  void vQueueUnregisterQueue( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
1472 #endif
1473 
1474 /*
1475  * The queue registry is provided as a means for kernel aware debuggers to
1476  * locate queues, semaphores and mutexes. Call pcQueueGetName() to look
1477  * up and return the name of a queue in the queue registry from the queue's
1478  * handle.
1479  *
1480  * @param xQueue The handle of the queue the name of which will be returned.
1481  * @return If the queue is in the registry then a pointer to the name of the
1482  * queue is returned. If the queue is not in the registry then NULL is
1483  * returned.
1484  */
1485 #if( configQUEUE_REGISTRY_SIZE > 0 )
1486  const char *pcQueueGetName( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
1487 #endif
1488 
1489 /*
1490  * Generic version of the function used to creaet a queue using dynamic memory
1491  * allocation. This is called by other functions and macros that create other
1492  * RTOS objects that use the queue structure as their base.
1493  */
1494 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
1495  QueueHandle_t xQueueGenericCreate( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType ) PRIVILEGED_FUNCTION;
1496 #endif
1497 
1498 /*
1499  * Generic version of the function used to creaet a queue using dynamic memory
1500  * allocation. This is called by other functions and macros that create other
1501  * RTOS objects that use the queue structure as their base.
1502  */
1503 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
1504  QueueHandle_t xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType ) PRIVILEGED_FUNCTION;
1505 #endif
1506 
1507 /*
1508  * Queue sets provide a mechanism to allow a task to block (pend) on a read
1509  * operation from multiple queues or semaphores simultaneously.
1510  *
1511  * See FreeRTOS/Source/Demo/Common/Minimal/QueueSet.c for an example using this
1512  * function.
1513  *
1514  * A queue set must be explicitly created using a call to xQueueCreateSet()
1515  * before it can be used. Once created, standard FreeRTOS queues and semaphores
1516  * can be added to the set using calls to xQueueAddToSet().
1517  * xQueueSelectFromSet() is then used to determine which, if any, of the queues
1518  * or semaphores contained in the set is in a state where a queue read or
1519  * semaphore take operation would be successful.
1520  *
1521  * Note 1: See the documentation on http://wwwFreeRTOS.org/RTOS-queue-sets.html
1522  * for reasons why queue sets are very rarely needed in practice as there are
1523  * simpler methods of blocking on multiple objects.
1524  *
1525  * Note 2: Blocking on a queue set that contains a mutex will not cause the
1526  * mutex holder to inherit the priority of the blocked task.
1527  *
1528  * Note 3: An additional 4 bytes of RAM is required for each space in a every
1529  * queue added to a queue set. Therefore counting semaphores that have a high
1530  * maximum count value should not be added to a queue set.
1531  *
1532  * Note 4: A receive (in the case of a queue) or take (in the case of a
1533  * semaphore) operation must not be performed on a member of a queue set unless
1534  * a call to xQueueSelectFromSet() has first returned a handle to that set member.
1535  *
1536  * @param uxEventQueueLength Queue sets store events that occur on
1537  * the queues and semaphores contained in the set. uxEventQueueLength specifies
1538  * the maximum number of events that can be queued at once. To be absolutely
1539  * certain that events are not lost uxEventQueueLength should be set to the
1540  * total sum of the length of the queues added to the set, where binary
1541  * semaphores and mutexes have a length of 1, and counting semaphores have a
1542  * length set by their maximum count value. Examples:
1543  * + If a queue set is to hold a queue of length 5, another queue of length 12,
1544  * and a binary semaphore, then uxEventQueueLength should be set to
1545  * (5 + 12 + 1), or 18.
1546  * + If a queue set is to hold three binary semaphores then uxEventQueueLength
1547  * should be set to (1 + 1 + 1 ), or 3.
1548  * + If a queue set is to hold a counting semaphore that has a maximum count of
1549  * 5, and a counting semaphore that has a maximum count of 3, then
1550  * uxEventQueueLength should be set to (5 + 3), or 8.
1551  *
1552  * @return If the queue set is created successfully then a handle to the created
1553  * queue set is returned. Otherwise NULL is returned.
1554  */
1555 QueueSetHandle_t xQueueCreateSet( const UBaseType_t uxEventQueueLength ) PRIVILEGED_FUNCTION;
1556 
1557 /*
1558  * Adds a queue or semaphore to a queue set that was previously created by a
1559  * call to xQueueCreateSet().
1560  *
1561  * See FreeRTOS/Source/Demo/Common/Minimal/QueueSet.c for an example using this
1562  * function.
1563  *
1564  * Note 1: A receive (in the case of a queue) or take (in the case of a
1565  * semaphore) operation must not be performed on a member of a queue set unless
1566  * a call to xQueueSelectFromSet() has first returned a handle to that set member.
1567  *
1568  * @param xQueueOrSemaphore The handle of the queue or semaphore being added to
1569  * the queue set (cast to an QueueSetMemberHandle_t type).
1570  *
1571  * @param xQueueSet The handle of the queue set to which the queue or semaphore
1572  * is being added.
1573  *
1574  * @return If the queue or semaphore was successfully added to the queue set
1575  * then pdPASS is returned. If the queue could not be successfully added to the
1576  * queue set because it is already a member of a different queue set then pdFAIL
1577  * is returned.
1578  */
1579 BaseType_t xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) PRIVILEGED_FUNCTION;
1580 
1581 /*
1582  * Removes a queue or semaphore from a queue set. A queue or semaphore can only
1583  * be removed from a set if the queue or semaphore is empty.
1584  *
1585  * See FreeRTOS/Source/Demo/Common/Minimal/QueueSet.c for an example using this
1586  * function.
1587  *
1588  * @param xQueueOrSemaphore The handle of the queue or semaphore being removed
1589  * from the queue set (cast to an QueueSetMemberHandle_t type).
1590  *
1591  * @param xQueueSet The handle of the queue set in which the queue or semaphore
1592  * is included.
1593  *
1594  * @return If the queue or semaphore was successfully removed from the queue set
1595  * then pdPASS is returned. If the queue was not in the queue set, or the
1596  * queue (or semaphore) was not empty, then pdFAIL is returned.
1597  */
1598 BaseType_t xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) PRIVILEGED_FUNCTION;
1599 
1600 /*
1601  * xQueueSelectFromSet() selects from the members of a queue set a queue or
1602  * semaphore that either contains data (in the case of a queue) or is available
1603  * to take (in the case of a semaphore). xQueueSelectFromSet() effectively
1604  * allows a task to block (pend) on a read operation on all the queues and
1605  * semaphores in a queue set simultaneously.
1606  *
1607  * See FreeRTOS/Source/Demo/Common/Minimal/QueueSet.c for an example using this
1608  * function.
1609  *
1610  * Note 1: See the documentation on http://wwwFreeRTOS.org/RTOS-queue-sets.html
1611  * for reasons why queue sets are very rarely needed in practice as there are
1612  * simpler methods of blocking on multiple objects.
1613  *
1614  * Note 2: Blocking on a queue set that contains a mutex will not cause the
1615  * mutex holder to inherit the priority of the blocked task.
1616  *
1617  * Note 3: A receive (in the case of a queue) or take (in the case of a
1618  * semaphore) operation must not be performed on a member of a queue set unless
1619  * a call to xQueueSelectFromSet() has first returned a handle to that set member.
1620  *
1621  * @param xQueueSet The queue set on which the task will (potentially) block.
1622  *
1623  * @param xTicksToWait The maximum time, in ticks, that the calling task will
1624  * remain in the Blocked state (with other tasks executing) to wait for a member
1625  * of the queue set to be ready for a successful queue read or semaphore take
1626  * operation.
1627  *
1628  * @return xQueueSelectFromSet() will return the handle of a queue (cast to
1629  * a QueueSetMemberHandle_t type) contained in the queue set that contains data,
1630  * or the handle of a semaphore (cast to a QueueSetMemberHandle_t type) contained
1631  * in the queue set that is available, or NULL if no such queue or semaphore
1632  * exists before before the specified block time expires.
1633  */
1634 QueueSetMemberHandle_t xQueueSelectFromSet( QueueSetHandle_t xQueueSet, const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;
1635 
1636 /*
1637  * A version of xQueueSelectFromSet() that can be used from an ISR.
1638  */
1639 QueueSetMemberHandle_t xQueueSelectFromSetFromISR( QueueSetHandle_t xQueueSet ) PRIVILEGED_FUNCTION;
1640 
1641 /* Not public API functions. */
1642 void vQueueWaitForMessageRestricted( QueueHandle_t xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely ) PRIVILEGED_FUNCTION;
1643 BaseType_t xQueueGenericReset( QueueHandle_t xQueue, BaseType_t xNewQueue ) PRIVILEGED_FUNCTION;
1644 void vQueueSetQueueNumber( QueueHandle_t xQueue, UBaseType_t uxQueueNumber ) PRIVILEGED_FUNCTION;
1645 UBaseType_t uxQueueGetQueueNumber( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
1646 uint8_t ucQueueGetQueueType( QueueHandle_t xQueue ) PRIVILEGED_FUNCTION;
1647 
1648 
1649 #ifdef __cplusplus
1650 }
1651 #endif
1652 
1653 #endif /* QUEUE_H */
1654 
BaseType_t xQueueAddToSet(QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet) PRIVILEGED_FUNCTION
BaseType_t xQueueTakeMutexRecursive(QueueHandle_t xMutex, TickType_t xTicksToWait) PRIVILEGED_FUNCTION
BaseType_t xQueueCRSendFromISR(QueueHandle_t xQueue, const void *pvItemToQueue, BaseType_t xCoRoutinePreviouslyWoken)
QueueHandle_t xQueueCreateMutexStatic(const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue) PRIVILEGED_FUNCTION
void vQueueDelete(QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:1942
void * QueueSetMemberHandle_t
Definition: queue.h:61
void vQueueSetQueueNumber(QueueHandle_t xQueue, UBaseType_t uxQueueNumber) PRIVILEGED_FUNCTION
BaseType_t xQueueIsQueueEmptyFromISR(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:2279
BaseType_t xQueueGenericSend(QueueHandle_t xQueue, const void *const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition) PRIVILEGED_FUNCTION
Definition: queue.c:726
BaseType_t xQueueGenericReset(QueueHandle_t xQueue, BaseType_t xNewQueue) PRIVILEGED_FUNCTION
Definition: queue.c:248
void * xQueueGetMutexHolder(QueueHandle_t xSemaphore) PRIVILEGED_FUNCTION
BaseType_t xQueueSemaphoreTake(QueueHandle_t xQueue, TickType_t xTicksToWait) PRIVILEGED_FUNCTION
Definition: queue.c:1382
#define vQueueUnregisterQueue(xQueue)
Definition: FreeRTOS.h:284
QueueSetHandle_t xQueueCreateSet(const UBaseType_t uxEventQueueLength) PRIVILEGED_FUNCTION
void * QueueSetHandle_t
Definition: queue.h:54
void * xQueueGetMutexHolderFromISR(QueueHandle_t xSemaphore) PRIVILEGED_FUNCTION
unsigned long UBaseType_t
Definition: portmacro.h:58
uint32_t TickType_t
Definition: portmacro.h:64
BaseType_t xQueueReceive(QueueHandle_t xQueue, void *const pvBuffer, TickType_t xTicksToWait) PRIVILEGED_FUNCTION
Definition: queue.c:1240
QueueSetMemberHandle_t xQueueSelectFromSet(QueueSetHandle_t xQueueSet, const TickType_t xTicksToWait) PRIVILEGED_FUNCTION
QueueSetMemberHandle_t xQueueSelectFromSetFromISR(QueueSetHandle_t xQueueSet) PRIVILEGED_FUNCTION
#define pcQueueGetName(xQueue)
Definition: FreeRTOS.h:285
#define vQueueAddToRegistry(xQueue, pcName)
Definition: FreeRTOS.h:283
void vQueueWaitForMessageRestricted(QueueHandle_t xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) PRIVILEGED_FUNCTION
BaseType_t xQueueGenericSendFromISR(QueueHandle_t xQueue, const void *const pvItemToQueue, BaseType_t *const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition) PRIVILEGED_FUNCTION
Definition: queue.c:924
long BaseType_t
Definition: portmacro.h:57
BaseType_t xQueueGiveMutexRecursive(QueueHandle_t pxMutex) PRIVILEGED_FUNCTION
UBaseType_t uxQueueGetQueueNumber(QueueHandle_t xQueue) PRIVILEGED_FUNCTION
BaseType_t xQueueCRReceiveFromISR(QueueHandle_t xQueue, void *pvBuffer, BaseType_t *pxTaskWoken)
uint8_t ucQueueGetQueueType(QueueHandle_t xQueue) PRIVILEGED_FUNCTION
void * QueueHandle_t
Definition: queue.h:47
BaseType_t xQueueGiveFromISR(QueueHandle_t xQueue, BaseType_t *const pxHigherPriorityTaskWoken) PRIVILEGED_FUNCTION
Definition: queue.c:1075
BaseType_t xQueueIsQueueFullFromISR(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:2318
UBaseType_t uxQueueSpacesAvailable(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:1912
UBaseType_t uxQueueMessagesWaitingFromISR(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:1930
BaseType_t xQueueReceiveFromISR(QueueHandle_t xQueue, void *const pvBuffer, BaseType_t *const pxHigherPriorityTaskWoken) PRIVILEGED_FUNCTION
Definition: queue.c:1751
BaseType_t xQueuePeekFromISR(QueueHandle_t xQueue, void *const pvBuffer) PRIVILEGED_FUNCTION
Definition: queue.c:1842
UBaseType_t uxQueueMessagesWaiting(const QueueHandle_t xQueue) PRIVILEGED_FUNCTION
Definition: queue.c:1896
BaseType_t xQueueCRSend(QueueHandle_t xQueue, const void *pvItemToQueue, TickType_t xTicksToWait)
QueueHandle_t xQueueCreateMutex(const uint8_t ucQueueType) PRIVILEGED_FUNCTION
BaseType_t xQueuePeek(QueueHandle_t xQueue, void *const pvBuffer, TickType_t xTicksToWait) PRIVILEGED_FUNCTION
Definition: queue.c:1601
BaseType_t xQueueRemoveFromSet(QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet) PRIVILEGED_FUNCTION
QueueHandle_t xQueueCreateCountingSemaphoreStatic(const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue) PRIVILEGED_FUNCTION
#define PRIVILEGED_FUNCTION
Definition: mpu_wrappers.h:174
BaseType_t xQueueCRReceive(QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait)
QueueHandle_t xQueueCreateCountingSemaphore(const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount) PRIVILEGED_FUNCTION


inertial_sense_ros
Author(s):
autogenerated on Sun Feb 28 2021 03:17:58