]> git.sur5r.net Git - freertos/blobdiff - Demo/Common/ethernet/lwip-1.4.0/ports/win32/sys_arch.c
Update a few util functions in the common demo area.
[freertos] / Demo / Common / ethernet / lwip-1.4.0 / ports / win32 / sys_arch.c
index 4ac5542e916b9fc0a5036abe8e2518d3df3fb73d..bedf174a4747087050c4b6cae96ad4ea22a50df1 100644 (file)
 #include "lwip/mem.h"\r
 #include "lwip/stats.h"\r
 \r
-/*---------------------------------------------------------------------------*\r
- * Globals:\r
- *---------------------------------------------------------------------------*/\r
-\r
-#if 0\r
-_RB_\r
-struct timeoutlist\r
-{\r
-       struct sys_timeouts timeouts;\r
-       xTaskHandle pid;\r
-};\r
-\r
-/* This is the number of threads that can be started with sys_thread_new() */\r
-#define SYS_THREAD_MAX 4\r
-\r
-static u16_t s_nextthread = 0;\r
-\r
-static struct timeoutlist s_timeoutlist[SYS_THREAD_MAX];\r
-#endif\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-\r
 /*---------------------------------------------------------------------------*\r
  * Routine:  sys_mbox_new\r
  *---------------------------------------------------------------------------*\r
@@ -80,22 +58,19 @@ static struct timeoutlist s_timeoutlist[SYS_THREAD_MAX];
  * Outputs:\r
  *      sys_mbox_t              -- Handle to new mailbox\r
  *---------------------------------------------------------------------------*/\r
-err_t sys_mbox_new(sys_mbox_t *mbox, int size)\r
+err_t sys_mbox_new( sys_mbox_t *pxMailBox, int iSize )\r
 {\r
-err_t lwip_err= ERR_MEM;\r
+err_t xReturn = ERR_MEM;\r
 \r
-       *mbox = xQueueCreate( size, sizeof( void * ) );\r
+       *pxMailBox = xQueueCreate( iSize, sizeof( void * ) );\r
 \r
-       // Created succesfully?\r
-       if(*mbox != NULL)\r
+       if( *pxMailBox != NULL )\r
        {\r
-               lwip_err = ERR_OK;\r
-#if SYS_STATS\r
-               SYS_STATS_INC(mbox.used);\r
-#endif /* SYS_STATS */\r
+               xReturn = ERR_OK;\r
+               SYS_STATS_INC_USED( mbox );\r
        }\r
 \r
-       return lwip_err;\r
+       return xReturn;\r
 }\r
 \r
 \r
@@ -111,23 +86,25 @@ err_t lwip_err= ERR_MEM;
  * Outputs:\r
  *      sys_mbox_t              -- Handle to new mailbox\r
  *---------------------------------------------------------------------------*/\r
-void sys_mbox_free(sys_mbox_t *mbox)\r
+void sys_mbox_free( sys_mbox_t *pxMailBox )\r
 {\r
-unsigned portBASE_TYPE uxMessagesWaiting;\r
+unsigned long ulMessagesWaiting;\r
 \r
-       uxMessagesWaiting = uxQueueMessagesWaiting( *mbox );\r
-       configASSERT( ( uxMessagesWaiting == 0 ) );\r
+       ulMessagesWaiting = uxQueueMessagesWaiting( *pxMailBox );\r
+       configASSERT( ( ulMessagesWaiting == 0 ) );\r
 \r
-#if SYS_STATS\r
-       if (uxMessagesWaiting != 0U)\r
+       #if SYS_STATS\r
        {\r
-               SYS_STATS_INC(mbox.err);\r
-       }\r
+               if( ulMessagesWaiting != 0UL )\r
+               {\r
+                       SYS_STATS_INC( mbox.err );\r
+               }\r
 \r
-       SYS_STATS_DEC(mbox.used);\r
-#endif /* SYS_STATS */\r
+               SYS_STATS_DEC( mbox.used );\r
+       }\r
+       #endif /* SYS_STATS */\r
 \r
-       vQueueDelete( *mbox );\r
+       vQueueDelete( *pxMailBox );\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
@@ -139,9 +116,9 @@ unsigned portBASE_TYPE uxMessagesWaiting;
  *      sys_mbox_t mbox         -- Handle of mailbox\r
  *      void *data              -- Pointer to data to post\r
  *---------------------------------------------------------------------------*/\r
-void sys_mbox_post(sys_mbox_t *mbox, void *msg)\r
+void sys_mbox_post( sys_mbox_t *pxMailBox, void *pxMessageToPost )\r
 {\r
-       while( xQueueSendToBack( *mbox, &msg, portMAX_DELAY ) != pdTRUE );\r
+       while( xQueueSendToBack( *pxMailBox, &pxMessageToPost, portMAX_DELAY ) != pdTRUE );\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
@@ -157,23 +134,22 @@ void sys_mbox_post(sys_mbox_t *mbox, void *msg)
  *      err_t                   -- ERR_OK if message posted, else ERR_MEM\r
  *                                  if not.\r
  *---------------------------------------------------------------------------*/\r
-err_t sys_mbox_trypost(sys_mbox_t *mbox, void *msg)\r
+err_t sys_mbox_trypost( sys_mbox_t *pxMailBox, void *pxMessageToPost )\r
 {\r
-err_t result;\r
+err_t xReturn;\r
 \r
-       if ( xQueueSend( *mbox, &msg, 0 ) == pdPASS )\r
+       if( xQueueSend( *pxMailBox, &pxMessageToPost, 0UL ) == pdPASS )\r
        {\r
-               result = ERR_OK;\r
+               xReturn = ERR_OK;\r
        }\r
        else\r
-       {\r
-               // could not post, queue must be full\r
-               result = ERR_MEM;\r
-#if SYS_STATS\r
-               SYS_STATS_INC(mbox.err);\r
-#endif /* SYS_STATS */\r
+       {               \r
+               /* The queue was already full. */\r
+               xReturn = ERR_MEM;\r
+               SYS_STATS_INC( mbox.err );\r
        }\r
-       return result;\r
+\r
+       return xReturn;\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
@@ -201,48 +177,50 @@ err_t result;
  *      u32_t                   -- SYS_ARCH_TIMEOUT if timeout, else number\r
  *                                  of milliseconds until received.\r
  *---------------------------------------------------------------------------*/\r
-u32_t sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout)\r
+u32_t sys_arch_mbox_fetch( sys_mbox_t *pxMailBox, void **ppvBuffer, u32_t ulTimeOut )\r
 {\r
-void *dummyptr;\r
-portTickType StartTime, EndTime, Elapsed;\r
+void *pvDummy;\r
+portTickType xStartTime, xEndTime, xElapsed;\r
+unsigned long ulReturn;\r
 \r
-       StartTime = xTaskGetTickCount();\r
+       xStartTime = xTaskGetTickCount();\r
 \r
-       if (NULL == msg)\r
+       if( NULL == ppvBuffer )\r
        {\r
-               msg = &dummyptr;\r
+               ppvBuffer = &pvDummy;\r
        }\r
 \r
-       if (timeout != 0)\r
+       if( ulTimeOut != 0UL )\r
        {\r
-               if ( pdTRUE == xQueueReceive( *mbox, &(*msg), timeout / portTICK_RATE_MS ) )\r
+               if( pdTRUE == xQueueReceive( *pxMailBox, &( *ppvBuffer ), ulTimeOut/ portTICK_RATE_MS ) )\r
                {\r
-                       EndTime = xTaskGetTickCount();\r
-                       Elapsed = (EndTime - StartTime) * portTICK_RATE_MS;\r
+                       xEndTime = xTaskGetTickCount();\r
+                       xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS;\r
 \r
-                       return ( Elapsed );\r
+                       ulReturn = xElapsed;\r
                }\r
-               else // timed out blocking for message\r
+               else \r
                {\r
-                       *msg = NULL;\r
-\r
-                       return SYS_ARCH_TIMEOUT;\r
+                       /* Timed out. */\r
+                       *ppvBuffer = NULL;\r
+                       ulReturn = SYS_ARCH_TIMEOUT;\r
                }\r
        }\r
        else\r
        {\r
-               while( pdTRUE != xQueueReceive( mbox, &(*msg), portMAX_DELAY ) ); // time is arbitrary\r
-               EndTime = xTaskGetTickCount();\r
-               Elapsed = (EndTime - StartTime) * portTICK_RATE_MS;\r
+               while( pdTRUE != xQueueReceive( *pxMailBox, &( *ppvBuffer ), portMAX_DELAY ) );\r
+               xEndTime = xTaskGetTickCount();\r
+               xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS;\r
 \r
-               if (Elapsed == 0)\r
+               if( xElapsed == 0UL )\r
                {\r
-                       Elapsed = 1;\r
+                       xElapsed = 1UL;\r
                }\r
 \r
-               // return time blocked TBD test\r
-               return (Elapsed);\r
+               ulReturn = xElapsed;\r
        }\r
+\r
+       return ulReturn;\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
@@ -259,66 +237,63 @@ portTickType StartTime, EndTime, Elapsed;
  *      u32_t                   -- SYS_MBOX_EMPTY if no messages.  Otherwise,\r
  *                                  return ERR_OK.\r
  *---------------------------------------------------------------------------*/\r
-u32_t sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg)\r
+u32_t sys_arch_mbox_tryfetch( sys_mbox_t *pxMailBox, void **ppvBuffer )\r
 {\r
-       void *dummyptr;\r
+void *pvDummy;\r
+unsigned long ulReturn;\r
 \r
-       if (msg == NULL)\r
+       if( ppvBuffer== NULL )\r
        {\r
-               msg = &dummyptr;\r
+               ppvBuffer = &pvDummy;\r
        }\r
 \r
-       if ( pdTRUE == xQueueReceive( *mbox, &(*msg), 0 ) )\r
+       if( pdTRUE == xQueueReceive( *pxMailBox, &( *ppvBuffer ), 0UL ) )\r
        {\r
-               return ERR_OK;\r
+               ulReturn = ERR_OK;\r
        }\r
        else\r
        {\r
-               return SYS_MBOX_EMPTY;\r
+               ulReturn = SYS_MBOX_EMPTY;\r
        }\r
+\r
+       return ulReturn;\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
  * Routine:  sys_sem_new\r
  *---------------------------------------------------------------------------*\r
  * Description:\r
- *      Creates and returns a new semaphore. The "count" argument specifies\r
+ *      Creates and returns a new semaphore. The "ucCount" argument specifies\r
  *      the initial state of the semaphore.\r
  *      NOTE: Currently this routine only creates counts of 1 or 0\r
  * Inputs:\r
  *      sys_mbox_t mbox         -- Handle of mailbox\r
- *      u8_t count              -- Initial count of semaphore (1 or 0)\r
+ *      u8_t ucCount              -- Initial ucCount of semaphore (1 or 0)\r
  * Outputs:\r
  *      sys_sem_t               -- Created semaphore or 0 if could not create.\r
  *---------------------------------------------------------------------------*/\r
-err_t sys_sem_new(sys_sem_t *sem, u8_t count)\r
+err_t sys_sem_new( sys_sem_t *pxSemaphore, u8_t ucCount )\r
 {\r
-       err_t lwip_err = ERR_MEM;\r
+err_t xReturn = ERR_MEM;\r
 \r
-       vSemaphoreCreateBinary( (*sem) );\r
+       vSemaphoreCreateBinary( ( *pxSemaphore ) );\r
 \r
-       if( *sem != NULL )\r
+       if( *pxSemaphore != NULL )\r
        {\r
-               // Means it can't be taken\r
-               if (count == 0)\r
+               if( ucCount == 0U )\r
                {\r
-                       xSemaphoreTake(*sem, 1);\r
+                       xSemaphoreTake( *pxSemaphore, 1UL );\r
                }\r
 \r
-               lwip_err = ERR_OK;\r
-\r
-#if SYS_STATS\r
-               SYS_STATS_INC(sem.used);\r
-#endif\r
+               xReturn = ERR_OK;\r
+               SYS_STATS_INC_USED( sem );\r
        }\r
        else\r
        {\r
-#if SYS_STATS\r
-               SYS_STATS_INC(sem.err);\r
-#endif\r
+               SYS_STATS_INC( sem.err );\r
        }\r
 \r
-       return lwip_err;\r
+       return xReturn;\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
@@ -344,92 +319,86 @@ err_t sys_sem_new(sys_sem_t *sem, u8_t count)
  * Outputs:\r
  *      u32_t                   -- Time elapsed or SYS_ARCH_TIMEOUT.\r
  *---------------------------------------------------------------------------*/\r
-u32_t sys_arch_sem_wait(sys_sem_t *sem, u32_t timeout)\r
+u32_t sys_arch_sem_wait( sys_sem_t *pxSemaphore, u32_t ulTimeout )\r
 {\r
-portTickType StartTime, EndTime, Elapsed;\r
+portTickType xStartTime, xEndTime, xElapsed;\r
+unsigned long ulReturn;\r
 \r
-       StartTime = xTaskGetTickCount();\r
+       xStartTime = xTaskGetTickCount();\r
 \r
-       if (timeout != 0)\r
+       if( ulTimeout != 0UL )\r
        {\r
-               if( xSemaphoreTake( *sem, timeout / portTICK_RATE_MS ) == pdTRUE )\r
+               if( xSemaphoreTake( *pxSemaphore, ulTimeout / portTICK_RATE_MS ) == pdTRUE )\r
                {\r
-                       EndTime = xTaskGetTickCount();\r
-                       Elapsed = (EndTime - StartTime) * portTICK_RATE_MS;\r
-\r
-                       return (Elapsed); // return time blocked TODO test\r
+                       xEndTime = xTaskGetTickCount();\r
+                       xElapsed = (xEndTime - xStartTime) * portTICK_RATE_MS;\r
+                       ulReturn = xElapsed;\r
                }\r
                else\r
                {\r
-                       return SYS_ARCH_TIMEOUT;\r
+                       ulReturn = SYS_ARCH_TIMEOUT;\r
                }\r
-\r
        }\r
        else\r
        {\r
-               while( xSemaphoreTake( sem, portMAX_DELAY ) != pdTRUE );\r
-               EndTime = xTaskGetTickCount();\r
-               Elapsed = (EndTime - StartTime) * portTICK_RATE_MS;\r
+               while( xSemaphoreTake( *pxSemaphore, portMAX_DELAY ) != pdTRUE );\r
+               xEndTime = xTaskGetTickCount();\r
+               xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS;\r
 \r
-               if (Elapsed == 0)\r
+               if( xElapsed == 0UL )\r
                {\r
-                       Elapsed = 1;\r
+                       xElapsed = 1UL;\r
                }\r
 \r
-               // return time blocked\r
-               return (Elapsed);\r
+               ulReturn = xElapsed;\r
        }\r
+\r
+       return ulReturn;\r
 }\r
 \r
 /** Create a new mutex\r
  * @param mutex pointer to the mutex to create\r
  * @return a new mutex */\r
-err_t sys_mutex_new(sys_mutex_t *mutex\r
+err_t sys_mutex_new( sys_mutex_t *pxMutex \r
 {\r
-err_t lwip_err = ERR_MEM;\r
+err_t xReturn = ERR_MEM;\r
 \r
-       *mutex = xQueueCreateMutex();\r
+       *pxMutex = xQueueCreateMutex();\r
 \r
-       if( *mutex != NULL ) \r
+       if( *pxMutex != NULL ) \r
        {\r
-               lwip_err = ERR_OK;\r
-#if SYS_STATS\r
-               SYS_STATS_INC(mutex.used);\r
-#endif\r
+               xReturn = ERR_OK;\r
+               SYS_STATS_INC_USED( mutex );\r
        } \r
        else \r
        {\r
-#if SYS_STATS\r
-               SYS_STATS_INC(mutex.err);\r
-#endif\r
+               SYS_STATS_INC( mutex.err );\r
        }\r
        \r
-       return lwip_err;\r
+       return xReturn;\r
 }\r
 \r
 /** Lock a mutex\r
  * @param mutex the mutex to lock */\r
-void sys_mutex_lock(sys_mutex_t *mutex)\r
+void sys_mutex_lock( sys_mutex_t *pxMutex )\r
 {\r
-       while( xSemaphoreTake( *mutex, portMAX_DELAY ) != pdPASS );\r
+       while( xSemaphoreTake( *pxMutex, portMAX_DELAY ) != pdPASS );\r
 }\r
 \r
 /** Unlock a mutex\r
  * @param mutex the mutex to unlock */\r
-void sys_mutex_unlock(sys_mutex_t *mutex)\r
+void sys_mutex_unlock(sys_mutex_t *pxMutex )\r
 {\r
-       xSemaphoreGive(*mutex);\r
+       xSemaphoreGive( *pxMutex );\r
 }\r
 \r
 \r
 /** Delete a semaphore\r
  * @param mutex the mutex to delete */\r
-void sys_mutex_free(sys_mutex_t *mutex)\r
+void sys_mutex_free( sys_mutex_t *pxMutex )\r
 {\r
-#if SYS_STATS\r
-       SYS_STATS_DEC(mutex.used);\r
-#endif /* SYS_STATS */\r
-       vQueueDelete(*mutex);\r
+       SYS_STATS_DEC( mutex.used );\r
+       vQueueDelete( *pxMutex );\r
 }\r
 \r
 \r
@@ -441,10 +410,9 @@ void sys_mutex_free(sys_mutex_t *mutex)
  * Inputs:\r
  *      sys_sem_t sem           -- Semaphore to signal\r
  *---------------------------------------------------------------------------*/\r
-void sys_sem_signal(sys_sem_t * sem)\r
+void sys_sem_signal( sys_sem_t *pxSemaphore )\r
 {\r
-       //LWIP_ASSERT( "sys_sem_signal: sem != SYS_SEM_NULL", sem != SYS_SEM_NULL );\r
-       xSemaphoreGive(*sem);\r
+       xSemaphoreGive( *pxSemaphore );\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
@@ -455,15 +423,10 @@ void sys_sem_signal(sys_sem_t * sem)
  * Inputs:\r
  *      sys_sem_t sem           -- Semaphore to free\r
  *---------------------------------------------------------------------------*/\r
-void sys_sem_free(sys_sem_t * sem)\r
+void sys_sem_free( sys_sem_t *pxSemaphore )\r
 {\r
-       //LWIP_ASSERT( "sys_sem_free: sem != SYS_SEM_NULL", sem != SYS_SEM_NULL );\r
-\r
-#if SYS_STATS\r
        SYS_STATS_DEC(sem.used);\r
-#endif /* SYS_STATS */\r
-\r
-       vQueueDelete(*sem);\r
+       vQueueDelete( *pxSemaphore );\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
@@ -474,20 +437,6 @@ void sys_sem_free(sys_sem_t * sem)
  *---------------------------------------------------------------------------*/\r
 void sys_init(void)\r
 {\r
-#if 0\r
-       int i;\r
-\r
-       // Initialize the the per-thread sys_timeouts structures\r
-       // make sure there are no valid pids in the list\r
-       for (i = 0; i < SYS_THREAD_MAX; i++)\r
-       {\r
-               s_timeoutlist[i].pid = SYS_THREAD_NULL;\r
-       //      s_timeoutlist[i].timeouts.next = NULL;\r
-       }\r
-\r
-       // keep track of how many threads have been created\r
-       s_nextthread = 0;\r
-#endif\r
 }\r
 \r
 u32_t sys_now(void)\r
@@ -495,52 +444,6 @@ u32_t sys_now(void)
        return xTaskGetTickCount();\r
 }\r
 \r
-#if 0\r
-_RB_\r
-u32_t sys_jiffies(void)\r
-{\r
-       return UEZTickCounterGet();\r
-}\r
-#endif\r
-\r
-/*---------------------------------------------------------------------------*\r
- * Routine:  sys_arch_timeouts\r
- *---------------------------------------------------------------------------*\r
- * Description:\r
- *      Returns a pointer to the per-thread sys_timeouts structure. In lwIP,\r
- *      each thread has a list of timeouts which is represented as a linked\r
- *      list of sys_timeout structures. The sys_timeouts structure holds a\r
- *      pointer to a linked list of timeouts. This function is called by\r
- *      the lwIP timeout scheduler and must not return a NULL value.\r
- *\r
- *      In a single threaded sys_arch implementation, this function will\r
- *      simply return a pointer to a global sys_timeouts variable stored in\r
- *      the sys_arch module.\r
- * Outputs:\r
- *      sys_timeouts *          -- Pointer to per-thread timeouts.\r
- *---------------------------------------------------------------------------*/\r
-#if 0\r
-struct sys_timeouts *sys_arch_timeouts(void)\r
-{\r
-       int i;\r
-       T_uezTask pid;\r
-       struct timeoutlist *tl;\r
-\r
-       pid = UEZTaskGetCurrent();\r
-\r
-       for (i = 0; i < s_nextthread; i++)\r
-       {\r
-               tl = &(s_timeoutlist[i]);\r
-               if (tl->pid == pid)\r
-               {\r
-               //      return &(tl->timeouts);\r
-               }\r
-       }\r
-\r
-       // Error\r
-       return NULL;\r
-}\r
-#endif\r
 /*---------------------------------------------------------------------------*\r
  * Routine:  sys_thread_new\r
  *---------------------------------------------------------------------------*\r
@@ -559,21 +462,24 @@ struct sys_timeouts *sys_arch_timeouts(void)
  * Outputs:\r
  *      sys_thread_t            -- Pointer to per-thread timeouts.\r
  *---------------------------------------------------------------------------*/\r
-sys_thread_t sys_thread_new(const char *name, void(* thread)(void *arg), void *arg, int stacksize, int prio)\r
+sys_thread_t sys_thread_new( const char *pcName, void( *pxThread )( void *pvParameters ), void *pvArg, int iStackSize, int iPriority )\r
 {\r
-xTaskHandle CreatedTask;\r
-int result;\r
+xTaskHandle xCreatedTask;\r
+portBASE_TYPE xResult;\r
+sys_thread_t xReturn;\r
 \r
-       result = xTaskCreate( thread, ( signed portCHAR * ) name, stacksize, arg, prio, &CreatedTask );\r
+       xResult = xTaskCreate( pxThread, ( signed char * ) pcName, iStackSize, pvArg, iPriority, &xCreatedTask );\r
 \r
-       if(result == pdPASS)\r
+       if( xResult == pdPASS )\r
        {\r
-               return CreatedTask;\r
+               xReturn = xCreatedTask;\r
        }\r
        else\r
        {\r
-               return NULL;\r
+               xReturn = NULL;\r
        }\r
+\r
+       return xReturn;\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
@@ -595,10 +501,10 @@ int result;
  * Outputs:\r
  *      sys_prot_t              -- Previous protection level (not used here)\r
  *---------------------------------------------------------------------------*/\r
-sys_prot_t sys_arch_protect(void)\r
+sys_prot_t sys_arch_protect( void )\r
 {\r
        vPortEnterCritical();\r
-       return 1;\r
+       return ( sys_prot_t ) 1;\r
 }\r
 \r
 /*---------------------------------------------------------------------------*\r
@@ -612,18 +518,18 @@ sys_prot_t sys_arch_protect(void)
  * Inputs:\r
  *      sys_prot_t              -- Previous protection level (not used here)\r
  *---------------------------------------------------------------------------*/\r
-void sys_arch_unprotect(sys_prot_t pval)\r
+void sys_arch_unprotect( sys_prot_t xValue )\r
 {\r
-       (void) pval;\r
+       (void) xValue;\r
        taskEXIT_CRITICAL();\r
 }\r
 \r
 /*\r
  * Prints an assertion messages and aborts execution.\r
  */\r
-void sys_assert(const char *msg)\r
+void sys_assert( const char *pcMessage )\r
 {\r
-       (void) msg;\r
+       (void) pcMessage;\r
 \r
        for (;;)\r
        {\r