]> git.sur5r.net Git - freertos/blobdiff - Source/include/queue.h
Continue work on the timers module.
[freertos] / Source / include / queue.h
index 8c176547b5a736f8f0c2f26f001199e9991601fb..b044d04de4afe04ca30ebe17fdbe6fc73e4a67ba 100644 (file)
@@ -1,48 +1,54 @@
 /*\r
-       FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.\r
-\r
-       This file is part of the FreeRTOS distribution.\r
-\r
-       FreeRTOS is free software; you can redistribute it and/or modify it     under\r
-       the terms of the GNU General Public License (version 2) as published by the\r
-       Free Software Foundation and modified by the FreeRTOS exception.\r
-       **NOTE** The exception to the GPL is included to allow you to distribute a\r
-       combined work that includes FreeRTOS without being obliged to provide the\r
-       source code for proprietary components outside of the FreeRTOS kernel.\r
-       Alternative commercial license and support terms are also available upon\r
-       request.  See the licensing section of http://www.FreeRTOS.org for full\r
-       license details.\r
-\r
-       FreeRTOS is distributed in the hope that it will be useful,     but WITHOUT\r
-       ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
-       FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
-       more details.\r
-\r
-       You should have received a copy of the GNU General Public License along\r
-       with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59\r
-       Temple Place, Suite 330, Boston, MA  02111-1307  USA.\r
-\r
-\r
-       ***************************************************************************\r
-       *                                                                                                                                                *\r
-       * Looking for a quick start?  Then check out the FreeRTOS eBook!                  *\r
-       * See http://www.FreeRTOS.org/Documentation for details                            *\r
-       *                                                                                                                                                *\r
-       ***************************************************************************\r
-\r
-       1 tab == 4 spaces!\r
-\r
-       Please ensure to read the configuration and relevant port sections of the\r
-       online documentation.\r
-\r
-       http://www.FreeRTOS.org - Documentation, latest information, license and\r
-       contact details.\r
-\r
-       http://www.SafeRTOS.com - A version that is certified for use in safety\r
-       critical systems.\r
-\r
-       http://www.OpenRTOS.com - Commercial support, development, porting,\r
-       licensing and training services.\r
+    FreeRTOS V6.1.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS books - available as PDF or paperback  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public \r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it \r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained \r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
 */\r
 \r
 #ifndef INC_FREERTOS_H\r
@@ -98,8 +104,8 @@ typedef void * xQueueHandle;
    <pre>\r
  struct AMessage\r
  {\r
-       portCHAR ucMessageID;\r
-       portCHAR ucData[ 20 ];\r
+       char ucMessageID;\r
+       char ucData[ 20 ];\r
  };\r
 \r
  void vATask( void *pvParameters )\r
@@ -107,7 +113,7 @@ typedef void * xQueueHandle;
  xQueueHandle xQueue1, xQueue2;\r
 \r
        // Create a queue capable of containing 10 unsigned long values.\r
-       xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+       xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );\r
        if( xQueue1 == 0 )\r
        {\r
                // Queue was not created and must not be used.\r
@@ -165,11 +171,11 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
    <pre>\r
  struct AMessage\r
  {\r
-       portCHAR ucMessageID;\r
-       portCHAR ucData[ 20 ];\r
+       char ucMessageID;\r
+       char ucData[ 20 ];\r
  } xMessage;\r
 \r
- unsigned portLONG ulVar = 10UL;\r
+ unsigned long ulVar = 10UL;\r
 \r
  void vATask( void *pvParameters )\r
  {\r
@@ -177,7 +183,7 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
  struct AMessage *pxMessage;\r
 \r
        // Create a queue capable of containing 10 unsigned long values.\r
-       xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+       xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );\r
 \r
        // Create a queue capable of containing 10 pointers to AMessage structures.\r
        // These should be passed by pointer as they contain a lot of data.\r
@@ -247,11 +253,11 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
    <pre>\r
  struct AMessage\r
  {\r
-       portCHAR ucMessageID;\r
-       portCHAR ucData[ 20 ];\r
+       char ucMessageID;\r
+       char ucData[ 20 ];\r
  } xMessage;\r
 \r
- unsigned portLONG ulVar = 10UL;\r
+ unsigned long ulVar = 10UL;\r
 \r
  void vATask( void *pvParameters )\r
  {\r
@@ -259,7 +265,7 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
  struct AMessage *pxMessage;\r
 \r
        // Create a queue capable of containing 10 unsigned long values.\r
-       xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+       xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );\r
 \r
        // Create a queue capable of containing 10 pointers to AMessage structures.\r
        // These should be passed by pointer as they contain a lot of data.\r
@@ -331,11 +337,11 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
    <pre>\r
  struct AMessage\r
  {\r
-       portCHAR ucMessageID;\r
-       portCHAR ucData[ 20 ];\r
+       char ucMessageID;\r
+       char ucData[ 20 ];\r
  } xMessage;\r
 \r
- unsigned portLONG ulVar = 10UL;\r
+ unsigned long ulVar = 10UL;\r
 \r
  void vATask( void *pvParameters )\r
  {\r
@@ -343,7 +349,7 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
  struct AMessage *pxMessage;\r
 \r
        // Create a queue capable of containing 10 unsigned long values.\r
-       xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+       xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );\r
 \r
        // Create a queue capable of containing 10 pointers to AMessage structures.\r
        // These should be passed by pointer as they contain a lot of data.\r
@@ -419,11 +425,11 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
    <pre>\r
  struct AMessage\r
  {\r
-       portCHAR ucMessageID;\r
-       portCHAR ucData[ 20 ];\r
+       char ucMessageID;\r
+       char ucData[ 20 ];\r
  } xMessage;\r
 \r
- unsigned portLONG ulVar = 10UL;\r
+ unsigned long ulVar = 10UL;\r
 \r
  void vATask( void *pvParameters )\r
  {\r
@@ -431,7 +437,7 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
  struct AMessage *pxMessage;\r
 \r
        // Create a queue capable of containing 10 unsigned long values.\r
-       xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+       xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );\r
 \r
        // Create a queue capable of containing 10 pointers to AMessage structures.\r
        // These should be passed by pointer as they contain a lot of data.\r
@@ -463,7 +469,7 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
  * \defgroup xQueueSend xQueueSend\r
  * \ingroup QueueManagement\r
  */\r
-signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
+signed portBASE_TYPE xQueueGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
 \r
 /**\r
  * queue. h\r
@@ -506,8 +512,8 @@ signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const
    <pre>\r
  struct AMessage\r
  {\r
-       portCHAR ucMessageID;\r
-       portCHAR ucData[ 20 ];\r
+       char ucMessageID;\r
+       char ucData[ 20 ];\r
  } xMessage;\r
 \r
  xQueueHandle xQueue;\r
@@ -599,8 +605,8 @@ signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const
    <pre>\r
  struct AMessage\r
  {\r
-       portCHAR ucMessageID;\r
-       portCHAR ucData[ 20 ];\r
+       char ucMessageID;\r
+       char ucData[ 20 ];\r
  } xMessage;\r
 \r
  xQueueHandle xQueue;\r
@@ -698,8 +704,8 @@ signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const
    <pre>\r
  struct AMessage\r
  {\r
-       portCHAR ucMessageID;\r
-       portCHAR ucData[ 20 ];\r
+       char ucMessageID;\r
+       char ucData[ 20 ];\r
  } xMessage;\r
 \r
  xQueueHandle xQueue;\r
@@ -778,7 +784,7 @@ unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue );
  * \page vQueueDelete vQueueDelete\r
  * \ingroup QueueManagement\r
  */\r
-void vQueueDelete( xQueueHandle xQueue );\r
+void vQueueDelete( xQueueHandle pxQueue );\r
 \r
 /**\r
  * queue. h\r
@@ -820,7 +826,7 @@ void vQueueDelete( xQueueHandle xQueue );
    <pre>\r
  void vBufferISR( void )\r
  {\r
portCHAR cIn;\r
char cIn;\r
  portBASE_TYPE xHigherPrioritTaskWoken;\r
 \r
        // We have not woken a task at the start of the ISR.\r
@@ -891,7 +897,7 @@ void vQueueDelete( xQueueHandle xQueue );
    <pre>\r
  void vBufferISR( void )\r
  {\r
portCHAR cIn;\r
char cIn;\r
  portBASE_TYPE xHigherPriorityTaskWoken;\r
 \r
        // We have not woken a task at the start of the ISR.\r
@@ -964,7 +970,7 @@ void vQueueDelete( xQueueHandle xQueue );
    <pre>\r
  void vBufferISR( void )\r
  {\r
portCHAR cIn;\r
char cIn;\r
  portBASE_TYPE xHigherPriorityTaskWoken;\r
 \r
        // We have not woken a task at the start of the ISR.\r
@@ -1042,7 +1048,7 @@ void vQueueDelete( xQueueHandle xQueue );
    <pre>\r
  void vBufferISR( void )\r
  {\r
portCHAR cIn;\r
char cIn;\r
  portBASE_TYPE xHigherPriorityTaskWokenByPost;\r
 \r
        // We have not woken a task at the start of the ISR.\r
@@ -1108,11 +1114,11 @@ signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void
  // Function to create a queue and post some values.\r
  void vAFunction( void *pvParameters )\r
  {\r
portCHAR cValueToPost;\r
char cValueToPost;\r
  const portTickType xBlockTime = ( portTickType )0xff;\r
 \r
        // Create a queue capable of containing 10 characters.\r
-       xQueue = xQueueCreate( 10, sizeof( portCHAR ) );\r
+       xQueue = xQueueCreate( 10, sizeof( char ) );\r
        if( xQueue == 0 )\r
        {\r
                // Failed to create the queue.\r
@@ -1138,7 +1144,7 @@ signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void
  void vISR_Routine( void )\r
  {\r
  portBASE_TYPE xTaskWokenByReceive = pdFALSE;\r
portCHAR cRxedChar;\r
char cRxedChar;\r
 \r
        while( xQueueReceiveFromISR( xQueue, ( void * ) &cRxedChar, &xTaskWokenByReceive) )\r
        {\r
@@ -1151,7 +1157,7 @@ signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void
                // task will be woken.\r
        }\r
 \r
-       if( cTaskWokenByPost != ( portCHAR ) pdFALSE;\r
+       if( cTaskWokenByPost != ( char ) pdFALSE;\r
        {\r
                taskYIELD ();\r
        }\r
@@ -1217,8 +1223,8 @@ xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue,
  * For internal use only.  Use xSemaphoreTakeMutexRecursive() or\r
  * xSemaphoreGiveMutexRecursive() instead of calling these functions directly.\r
  */\r
-portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime );\r
-portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle xMutex );\r
+portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle pxMutex, portTickType xBlockTime );\r
+portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle pxMutex );\r
 \r
 /*\r
  * The registry is provided as a means for kernel aware debuggers to\r
@@ -1241,7 +1247,7 @@ portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle xMutex );
  * name that the kernel aware debugger will display.\r
  */\r
 #if configQUEUE_REGISTRY_SIZE > 0\r
-       void vQueueAddToRegistry( xQueueHandle xQueue, signed portCHAR *pcName );\r
+       void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcName );\r
 #endif\r
 \r
 \r