Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FreeRTOS/FreeRTOS-Kernel.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSoren Ptak <ptaksoren@gmail.com>2023-12-07 19:40:50 +0300
committerGitHub <noreply@github.com>2023-12-07 19:40:50 +0300
commitbcf7bdaa13c38cee1de25fdce4426a6b0b3c3c88 (patch)
tree0ef67a54c933d6ba5fb4655422b20855117eecb0
parent0debe8c6691da615320bb833da70a5c7aa7a91b0 (diff)
Revert Portable/oWatcom formatting (#829)
Revert the formatting on oWatcom ports
-rw-r--r--portable/oWatcom/16BitDOS/Flsh186/port.c101
-rw-r--r--portable/oWatcom/16BitDOS/Flsh186/portmacro.h64
-rw-r--r--portable/oWatcom/16BitDOS/PC/port.c140
-rw-r--r--portable/oWatcom/16BitDOS/PC/portmacro.h66
-rw-r--r--portable/oWatcom/16BitDOS/common/portasm.h106
-rw-r--r--portable/oWatcom/16BitDOS/common/portcomn.c79
6 files changed, 270 insertions, 286 deletions
diff --git a/portable/oWatcom/16BitDOS/Flsh186/port.c b/portable/oWatcom/16BitDOS/Flsh186/port.c
index 03feb21e6..cc8863d1d 100644
--- a/portable/oWatcom/16BitDOS/Flsh186/port.c
+++ b/portable/oWatcom/16BitDOS/Flsh186/port.c
@@ -27,27 +27,27 @@
*/
/*
- * Changes from V1.00:
- *
- + Call to taskYIELD() from within tick ISR has been replaced by the more
- + efficient portSWITCH_CONTEXT().
- + ISR function definitions renamed to include the prv prefix.
- +
- + Changes from V1.2.0:
- +
- + portRESET_PIC() is now called last thing before the end of the preemptive
- + tick routine.
- +
- + Changes from V2.6.1
- +
- + Replaced the sUsingPreemption variable with the configUSE_PREEMPTION
- + macro to be consistent with the later ports.
- */
+Changes from V1.00:
+
+ + Call to taskYIELD() from within tick ISR has been replaced by the more
+ efficient portSWITCH_CONTEXT().
+ + ISR function definitions renamed to include the prv prefix.
+
+Changes from V1.2.0:
+
+ + portRESET_PIC() is now called last thing before the end of the preemptive
+ tick routine.
+
+Changes from V2.6.1
+
+ + Replaced the sUsingPreemption variable with the configUSE_PREEMPTION
+ macro to be consistent with the later ports.
+*/
/*-----------------------------------------------------------
-* Implementation of functions defined in portable.h for the Flashlite 186
-* port.
-*----------------------------------------------------------*/
+ * Implementation of functions defined in portable.h for the Flashlite 186
+ * port.
+ *----------------------------------------------------------*/
#include <stdlib.h>
#include <i86.h>
@@ -60,9 +60,9 @@
/*lint -e950 Non ANSI reserved words okay in this file only. */
-#define portTIMER_EOI_TYPE ( 8 )
-#define portRESET_PIC() portOUTPUT_WORD( ( uint16_t ) 0xff22, portTIMER_EOI_TYPE )
-#define portTIMER_INT_NUMBER 0x12
+#define portTIMER_EOI_TYPE ( 8 )
+#define portRESET_PIC() portOUTPUT_WORD( ( uint16_t ) 0xff22, portTIMER_EOI_TYPE )
+#define portTIMER_INT_NUMBER 0x12
#define portTIMER_1_CONTROL_REGISTER ( ( uint16_t ) 0xff5e )
#define portTIMER_0_CONTROL_REGISTER ( ( uint16_t ) 0xff56 )
@@ -75,14 +75,12 @@ static void prvSetTickFrequency( uint32_t ulTickRateHz );
static void prvExitFunction( void );
#if configUSE_PREEMPTION == 1
-
-/* Tick service routine used by the scheduler when preemptive scheduling is
- * being used. */
+ /* Tick service routine used by the scheduler when preemptive scheduling is
+ being used. */
static void __interrupt __far prvPreemptiveTick( void );
#else
-
-/* Tick service routine used by the scheduler when cooperative scheduling is
- * being used. */
+ /* Tick service routine used by the scheduler when cooperative scheduling is
+ being used. */
static void __interrupt __far prvNonPreemptiveTick( void );
#endif
@@ -95,7 +93,7 @@ static void __interrupt __far prvYieldProcessor( void );
static int16_t sSchedulerRunning = pdFALSE;
/* Points to the original routine installed on the vector we use for manual context switches. This is then used to restore the original routine during prvExitFunction(). */
-static void( __interrupt __far * pxOldSwitchISR )();
+static void ( __interrupt __far *pxOldSwitchISR )();
/* Used to restore the original DOS context when the scheduler is ended. */
static jmp_buf xJumpBuf;
@@ -108,11 +106,11 @@ BaseType_t xPortStartScheduler( void )
/* This is called with interrupts already disabled. */
/* Remember what was on the interrupts we are going to use
- * so we can put them back later if required. */
+ so we can put them back later if required. */
pxOldSwitchISR = _dos_getvect( portSWITCH_INT_NUMBER );
/* Put our manual switch (yield) function on a known
- * vector. */
+ vector. */
_dos_setvect( portSWITCH_INT_NUMBER, prvYieldProcessor );
#if configUSE_PREEMPTION == 1
@@ -148,7 +146,7 @@ BaseType_t xPortStartScheduler( void )
/*-----------------------------------------------------------*/
/* The tick ISR used depend on whether or not the preemptive or cooperative
- * kernel is being used. */
+kernel is being used. */
#if configUSE_PREEMPTION == 1
static void __interrupt __far prvPreemptiveTick( void )
{
@@ -162,15 +160,15 @@ BaseType_t xPortStartScheduler( void )
/* Reset the PIC ready for the next time. */
portRESET_PIC();
}
-#else /* if configUSE_PREEMPTION == 1 */
+#else
static void __interrupt __far prvNonPreemptiveTick( void )
{
/* Same as preemptive tick, but the cooperative scheduler is being used
- * so we don't have to switch in the context of the next task. */
+ so we don't have to switch in the context of the next task. */
xTaskIncrementTick();
portRESET_PIC();
}
-#endif /* if configUSE_PREEMPTION == 1 */
+#endif
/*-----------------------------------------------------------*/
static void __interrupt __far prvYieldProcessor( void )
@@ -183,31 +181,30 @@ static void __interrupt __far prvYieldProcessor( void )
void vPortEndScheduler( void )
{
/* Jump back to the processor state prior to starting the
- * scheduler. This means we are not going to be using a
- * task stack frame so the task can be deleted. */
+ scheduler. This means we are not going to be using a
+ task stack frame so the task can be deleted. */
longjmp( xJumpBuf, 1 );
}
/*-----------------------------------------------------------*/
static void prvExitFunction( void )
{
- const uint16_t usTimerDisable = 0x0000;
- uint16_t usTimer0Control;
+const uint16_t usTimerDisable = 0x0000;
+uint16_t usTimer0Control;
/* Interrupts should be disabled here anyway - but no
- * harm in making sure. */
+ harm in making sure. */
portDISABLE_INTERRUPTS();
-
if( sSchedulerRunning == pdTRUE )
{
/* Put back the switch interrupt routines that was in place
- * before the scheduler started. */
+ before the scheduler started. */
_dos_setvect( portSWITCH_INT_NUMBER, pxOldSwitchISR );
}
/* Disable the timer used for the tick to ensure the scheduler is
- * not called before restoring interrupts. There was previously nothing
- * on this timer so there is no old ISR to restore. */
+ not called before restoring interrupts. There was previously nothing
+ on this timer so there is no old ISR to restore. */
portOUTPUT_WORD( portTIMER_1_CONTROL_REGISTER, usTimerDisable );
/* Restart the DOS tick. */
@@ -222,18 +219,18 @@ static void prvExitFunction( void )
static void prvSetTickFrequency( uint32_t ulTickRateHz )
{
- const uint16_t usMaxCountRegister = 0xff5a;
- const uint16_t usTimerPriorityRegister = 0xff32;
- const uint16_t usTimerEnable = 0xC000;
- const uint16_t usRetrigger = 0x0001;
- const uint16_t usTimerHighPriority = 0x0000;
- uint16_t usTimer0Control;
+const uint16_t usMaxCountRegister = 0xff5a;
+const uint16_t usTimerPriorityRegister = 0xff32;
+const uint16_t usTimerEnable = 0xC000;
+const uint16_t usRetrigger = 0x0001;
+const uint16_t usTimerHighPriority = 0x0000;
+uint16_t usTimer0Control;
/* ( CPU frequency / 4 ) / clock 2 max count [inpw( 0xff62 ) = 7] */
- const uint32_t ulClockFrequency = 0x7f31a0;
+const uint32_t ulClockFrequency = 0x7f31a0;
- uint32_t ulTimerCount = ulClockFrequency / ulTickRateHz;
+uint32_t ulTimerCount = ulClockFrequency / ulTickRateHz;
portOUTPUT_WORD( portTIMER_1_CONTROL_REGISTER, usTimerEnable | portTIMER_INTERRUPT_ENABLE | usRetrigger );
portOUTPUT_WORD( usMaxCountRegister, ( uint16_t ) ulTimerCount );
diff --git a/portable/oWatcom/16BitDOS/Flsh186/portmacro.h b/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
index 0488fd8b7..952e3f680 100644
--- a/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
+++ b/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
@@ -47,24 +47,24 @@
/* Type definitions. */
-#define portCHAR char
-#define portFLOAT float
-#define portDOUBLE long
-#define portLONG long
-#define portSHORT int
-#define portSTACK_TYPE uint16_t
-#define portBASE_TYPE short
-
-typedef portSTACK_TYPE StackType_t;
-typedef short BaseType_t;
-typedef unsigned short UBaseType_t;
-
-
-#if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
- typedef uint16_t TickType_t;
- #define portMAX_DELAY ( TickType_t ) 0xffff
-#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
- typedef uint32_t TickType_t;
+#define portCHAR char
+#define portFLOAT float
+#define portDOUBLE long
+#define portLONG long
+#define portSHORT int
+#define portSTACK_TYPE uint16_t
+#define portBASE_TYPE short
+
+typedef portSTACK_TYPE StackType_t;
+typedef short BaseType_t;
+typedef unsigned short UBaseType_t;
+
+
+#if( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
+ typedef uint16_t TickType_t;
+ #define portMAX_DELAY ( TickType_t ) 0xffff
+#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
+ typedef uint32_t TickType_t;
#define portMAX_DELAY ( TickType_t ) 0xffffffffUL
#else
#error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
@@ -74,7 +74,7 @@ typedef unsigned short UBaseType_t;
/* Critical section management. */
void portENTER_CRITICAL( void );
#pragma aux portENTER_CRITICAL = "pushf" \
- "cli";
+ "cli";
void portEXIT_CRITICAL( void );
#pragma aux portEXIT_CRITICAL = "popf";
@@ -87,25 +87,25 @@ void portENABLE_INTERRUPTS( void );
/*-----------------------------------------------------------*/
/* Architecture specifics. */
-#define portSTACK_GROWTH ( -1 )
-#define portSWITCH_INT_NUMBER 0x80
-#define portYIELD() __asm { int portSWITCH_INT_NUMBER }
-#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
-#define portBYTE_ALIGNMENT 2
-#define portINITIAL_SW ( ( portSTACK_TYPE ) 0x0202 ) /* Start the tasks with interrupts enabled. */
-#define portNOP() __asm { nop }
+#define portSTACK_GROWTH ( -1 )
+#define portSWITCH_INT_NUMBER 0x80
+#define portYIELD() __asm{ int portSWITCH_INT_NUMBER }
+#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
+#define portBYTE_ALIGNMENT 2
+#define portINITIAL_SW ( ( portSTACK_TYPE ) 0x0202 ) /* Start the tasks with interrupts enabled. */
+#define portNOP() __asm{ nop }
/*-----------------------------------------------------------*/
/* Compiler specifics. */
-#define portINPUT_BYTE( xAddr ) inp( xAddr )
-#define portOUTPUT_BYTE( xAddr, ucValue ) outp( xAddr, ucValue )
-#define portINPUT_WORD( xAddr ) inpw( xAddr )
-#define portOUTPUT_WORD( xAddr, usValue ) outpw( xAddr, usValue )
+#define portINPUT_BYTE( xAddr ) inp( xAddr )
+#define portOUTPUT_BYTE( xAddr, ucValue ) outp( xAddr, ucValue )
+#define portINPUT_WORD( xAddr ) inpw( xAddr )
+#define portOUTPUT_WORD( xAddr, usValue ) outpw( xAddr, usValue )
/*-----------------------------------------------------------*/
/* Task function macros as described on the FreeRTOS.org WEB site. */
-#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void * pvParameters )
-#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void * pvParameters )
+#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters )
+#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )
/* *INDENT-OFF* */
#ifdef __cplusplus
diff --git a/portable/oWatcom/16BitDOS/PC/port.c b/portable/oWatcom/16BitDOS/PC/port.c
index 4c4011aa9..6cb2de9e8 100644
--- a/portable/oWatcom/16BitDOS/PC/port.c
+++ b/portable/oWatcom/16BitDOS/PC/port.c
@@ -27,27 +27,27 @@
*/
/*
- * Changes from V1.00:
- *
- + Call to taskYIELD() from within tick ISR has been replaced by the more
- + efficient portSWITCH_CONTEXT().
- + ISR function definitions renamed to include the prv prefix.
- +
- + Changes from V1.2.0:
- +
- + prvPortResetPIC() is now called last thing before the end of the
- + preemptive tick routine.
- +
- + Changes from V2.6.1
- +
- + Replaced the sUsingPreemption variable with the configUSE_PREEMPTION
- + macro to be consistent with the later ports.
- +
- + Changes from V4.0.1
- +
- + Add function prvSetTickFrequencyDefault() to set the DOS tick back to
- + its proper value when the scheduler exits.
- */
+Changes from V1.00:
+
+ + Call to taskYIELD() from within tick ISR has been replaced by the more
+ efficient portSWITCH_CONTEXT().
+ + ISR function definitions renamed to include the prv prefix.
+
+Changes from V1.2.0:
+
+ + prvPortResetPIC() is now called last thing before the end of the
+ preemptive tick routine.
+
+Changes from V2.6.1
+
+ + Replaced the sUsingPreemption variable with the configUSE_PREEMPTION
+ macro to be consistent with the later ports.
+
+Changes from V4.0.1
+
+ + Add function prvSetTickFrequencyDefault() to set the DOS tick back to
+ its proper value when the scheduler exits.
+*/
#include <stdlib.h>
#include <stdio.h>
@@ -60,9 +60,9 @@
#include "portasm.h"
/*-----------------------------------------------------------
-* Implementation of functions defined in portable.h for the industrial
-* PC port.
-*----------------------------------------------------------*/
+ * Implementation of functions defined in portable.h for the industrial
+ * PC port.
+ *----------------------------------------------------------*/
/*lint -e950 Non ANSI reserved words okay in this file only. */
@@ -75,28 +75,26 @@ static void prvSetTickFrequency( uint32_t ulTickRateHz );
static void prvExitFunction( void );
/* Either chain to the DOS tick (which itself clears the PIC) or clear the PIC
- * directly. We chain to the DOS tick as close as possible to the standard DOS
- * tick rate. */
+directly. We chain to the DOS tick as close as possible to the standard DOS
+tick rate. */
static void prvPortResetPIC( void );
/* The tick ISR used depends on whether the preemptive or cooperative scheduler
- * is being used. */
+is being used. */
#if configUSE_PREEMPTION == 1
-
-/* Tick service routine used by the scheduler when preemptive scheduling is
- * being used. */
+ /* Tick service routine used by the scheduler when preemptive scheduling is
+ being used. */
static void __interrupt __far prvPreemptiveTick( void );
#else
-
-/* Tick service routine used by the scheduler when cooperative scheduling is
- * being used. */
+ /* Tick service routine used by the scheduler when cooperative scheduling is
+ being used. */
static void __interrupt __far prvNonPreemptiveTick( void );
#endif
/* Trap routine used by taskYIELD() to manually cause a context switch. */
static void __interrupt __far prvYieldProcessor( void );
/* Set the tick frequency back so the floppy drive works correctly when the
- * scheduler exits. */
+scheduler exits. */
static void prvSetTickFrequencyDefault( void );
/*lint -e956 File scopes necessary here. */
@@ -108,10 +106,10 @@ static int16_t sDOSTickCounter;
static int16_t sSchedulerRunning = pdFALSE;
/* Points to the original routine installed on the vector we use for manual context switches. This is then used to restore the original routine during prvExitFunction(). */
-static void( __interrupt __far * pxOldSwitchISR )();
+static void ( __interrupt __far *pxOldSwitchISR )();
/* Points to the original routine installed on the vector we use to chain to the DOS tick. This is then used to restore the original routine during prvExitFunction(). */
-static void( __interrupt __far * pxOldSwitchISRPlus1 )();
+static void ( __interrupt __far *pxOldSwitchISRPlus1 )();
/* Used to restore the original DOS context when the scheduler is ended. */
static jmp_buf xJumpBuf;
@@ -121,12 +119,12 @@ static jmp_buf xJumpBuf;
/*-----------------------------------------------------------*/
BaseType_t xPortStartScheduler( void )
{
- pxISR pxOriginalTickISR;
+pxISR pxOriginalTickISR;
/* This is called with interrupts already disabled. */
/* Remember what was on the interrupts we are going to use
- * so we can put them back later if required. */
+ so we can put them back later if required. */
pxOldSwitchISR = _dos_getvect( portSWITCH_INT_NUMBER );
pxOriginalTickISR = _dos_getvect( portTIMER_INT_NUMBER );
pxOldSwitchISRPlus1 = _dos_getvect( portSWITCH_INT_NUMBER + 1 );
@@ -134,11 +132,11 @@ BaseType_t xPortStartScheduler( void )
prvSetTickFrequency( configTICK_RATE_HZ );
/* Put our manual switch (yield) function on a known
- * vector. */
+ vector. */
_dos_setvect( portSWITCH_INT_NUMBER, prvYieldProcessor );
/* Put the old tick on a different interrupt number so we can
- * call it when we want. */
+ call it when we want. */
_dos_setvect( portSWITCH_INT_NUMBER + 1, pxOriginalTickISR );
#if configUSE_PREEMPTION == 1
@@ -154,8 +152,8 @@ BaseType_t xPortStartScheduler( void )
#endif
/* Setup a counter that is used to call the DOS interrupt as close
- * to it's original frequency as can be achieved given our chosen tick
- * frequency. */
+ to it's original frequency as can be achieved given our chosen tick
+ frequency. */
sDOSTickCounter = portTICKS_PER_DOS_TICK;
/* Clean up function if we want to return to DOS. */
@@ -177,11 +175,10 @@ BaseType_t xPortStartScheduler( void )
/*-----------------------------------------------------------*/
/* The tick ISR used depends on whether the preemptive or cooperative scheduler
- * is being used. */
+is being used. */
#if configUSE_PREEMPTION == 1
-
-/* Tick service routine used by the scheduler when preemptive scheduling is
- * being used. */
+ /* Tick service routine used by the scheduler when preemptive scheduling is
+ being used. */
static void __interrupt __far prvPreemptiveTick( void )
{
/* Get the scheduler to update the task states following the tick. */
@@ -194,15 +191,15 @@ BaseType_t xPortStartScheduler( void )
/* Reset the PIC ready for the next time. */
prvPortResetPIC();
}
-#else /* if configUSE_PREEMPTION == 1 */
+#else
static void __interrupt __far prvNonPreemptiveTick( void )
{
/* Same as preemptive tick, but the cooperative scheduler is being used
- * so we don't have to switch in the context of the next task. */
+ so we don't have to switch in the context of the next task. */
xTaskIncrementTick();
prvPortResetPIC();
}
-#endif /* if configUSE_PREEMPTION == 1 */
+#endif
/*-----------------------------------------------------------*/
@@ -216,22 +213,19 @@ static void __interrupt __far prvYieldProcessor( void )
static void prvPortResetPIC( void )
{
/* We are going to call the DOS tick interrupt at as close a
- * frequency to the normal DOS tick as possible. */
+ frequency to the normal DOS tick as possible. */
/* WE SHOULD NOT DO THIS IF YIELD WAS CALLED. */
--sDOSTickCounter;
-
if( sDOSTickCounter <= 0 )
{
sDOSTickCounter = ( int16_t ) portTICKS_PER_DOS_TICK;
- __asm {
- int portSWITCH_INT_NUMBER + 1
- };
+ __asm{ int portSWITCH_INT_NUMBER + 1 };
}
else
{
/* Reset the PIC as the DOS tick is not being called to
- * do it. */
+ do it. */
__asm
{
mov al, 20H
@@ -244,20 +238,19 @@ static void prvPortResetPIC( void )
void vPortEndScheduler( void )
{
/* Jump back to the processor state prior to starting the
- * scheduler. This means we are not going to be using a
- * task stack frame so the task can be deleted. */
+ scheduler. This means we are not going to be using a
+ task stack frame so the task can be deleted. */
longjmp( xJumpBuf, 1 );
}
/*-----------------------------------------------------------*/
static void prvExitFunction( void )
{
- void( __interrupt __far * pxOriginalTickISR )();
+void ( __interrupt __far *pxOriginalTickISR )();
/* Interrupts should be disabled here anyway - but no
- * harm in making sure. */
+ harm in making sure. */
portDISABLE_INTERRUPTS();
-
if( sSchedulerRunning == pdTRUE )
{
/* Set the DOS tick back onto the timer ticker. */
@@ -266,30 +259,29 @@ static void prvExitFunction( void )
prvSetTickFrequencyDefault();
/* Put back the switch interrupt routines that was in place
- * before the scheduler started. */
+ before the scheduler started. */
_dos_setvect( portSWITCH_INT_NUMBER, pxOldSwitchISR );
_dos_setvect( portSWITCH_INT_NUMBER + 1, pxOldSwitchISRPlus1 );
}
-
/* The tick timer is back how DOS wants it. We can re-enable
- * interrupts without the scheduler being called. */
+ interrupts without the scheduler being called. */
portENABLE_INTERRUPTS();
}
/*-----------------------------------------------------------*/
static void prvSetTickFrequency( uint32_t ulTickRateHz )
{
- const uint16_t usPIT_MODE = ( uint16_t ) 0x43;
- const uint16_t usPIT0 = ( uint16_t ) 0x40;
- const uint32_t ulPIT_CONST = ( uint32_t ) 1193180;
- const uint16_t us8254_CTR0_MODE3 = ( uint16_t ) 0x36;
- uint32_t ulOutput;
+const uint16_t usPIT_MODE = ( uint16_t ) 0x43;
+const uint16_t usPIT0 = ( uint16_t ) 0x40;
+const uint32_t ulPIT_CONST = ( uint32_t ) 1193180;
+const uint16_t us8254_CTR0_MODE3 = ( uint16_t ) 0x36;
+uint32_t ulOutput;
/* Setup the 8245 to tick at the wanted frequency. */
portOUTPUT_BYTE( usPIT_MODE, us8254_CTR0_MODE3 );
ulOutput = ulPIT_CONST / ulTickRateHz;
- portOUTPUT_BYTE( usPIT0, ( uint16_t ) ( ulOutput & ( uint32_t ) 0xff ) );
+ portOUTPUT_BYTE( usPIT0, ( uint16_t )( ulOutput & ( uint32_t ) 0xff ) );
ulOutput >>= 8;
portOUTPUT_BYTE( usPIT0, ( uint16_t ) ( ulOutput & ( uint32_t ) 0xff ) );
}
@@ -297,13 +289,13 @@ static void prvSetTickFrequency( uint32_t ulTickRateHz )
static void prvSetTickFrequencyDefault( void )
{
- const uint16_t usPIT_MODE = ( uint16_t ) 0x43;
- const uint16_t usPIT0 = ( uint16_t ) 0x40;
- const uint16_t us8254_CTR0_MODE3 = ( uint16_t ) 0x36;
+const uint16_t usPIT_MODE = ( uint16_t ) 0x43;
+const uint16_t usPIT0 = ( uint16_t ) 0x40;
+const uint16_t us8254_CTR0_MODE3 = ( uint16_t ) 0x36;
portOUTPUT_BYTE( usPIT_MODE, us8254_CTR0_MODE3 );
- portOUTPUT_BYTE( usPIT0, 0 );
- portOUTPUT_BYTE( usPIT0, 0 );
+ portOUTPUT_BYTE( usPIT0,0 );
+ portOUTPUT_BYTE( usPIT0,0 );
}
diff --git a/portable/oWatcom/16BitDOS/PC/portmacro.h b/portable/oWatcom/16BitDOS/PC/portmacro.h
index f2c585a14..2fb753411 100644
--- a/portable/oWatcom/16BitDOS/PC/portmacro.h
+++ b/portable/oWatcom/16BitDOS/PC/portmacro.h
@@ -46,24 +46,24 @@
*/
/* Type definitions. */
-#define portCHAR char
-#define portFLOAT float
-#define portDOUBLE double
-#define portLONG long
-#define portSHORT int
-#define portSTACK_TYPE uint16_t
-#define portBASE_TYPE short
-
-typedef portSTACK_TYPE StackType_t;
-typedef short BaseType_t;
-typedef unsigned short UBaseType_t;
-
-
-#if ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
- typedef uint16_t TickType_t;
- #define portMAX_DELAY ( TickType_t ) 0xffff
-#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
- typedef uint32_t TickType_t;
+#define portCHAR char
+#define portFLOAT float
+#define portDOUBLE double
+#define portLONG long
+#define portSHORT int
+#define portSTACK_TYPE uint16_t
+#define portBASE_TYPE short
+
+typedef portSTACK_TYPE StackType_t;
+typedef short BaseType_t;
+typedef unsigned short UBaseType_t;
+
+
+#if( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_16_BITS )
+ typedef uint16_t TickType_t;
+ #define portMAX_DELAY ( TickType_t ) 0xffff
+#elif ( configTICK_TYPE_WIDTH_IN_BITS == TICK_TYPE_WIDTH_32_BITS )
+ typedef uint32_t TickType_t;
#define portMAX_DELAY ( TickType_t ) 0xffffffffUL
#else
#error configTICK_TYPE_WIDTH_IN_BITS set to unsupported tick type width.
@@ -71,11 +71,11 @@ typedef unsigned short UBaseType_t;
/*-----------------------------------------------------------*/
/* Critical section definitions. portENTER_CRITICAL() must be defined as a
- * macro for portable.h to work properly. */
+macro for portable.h to work properly. */
void portLOCAL_ENTER_CRITICAL( void );
#pragma aux portLOCAL_ENTER_CRITICAL = "pushf" \
- "cli";
-#define portENTER_CRITICAL() portLOCAL_ENTER_CRITICAL()
+ "cli";
+#define portENTER_CRITICAL() portLOCAL_ENTER_CRITICAL()
void portEXIT_CRITICAL( void );
#pragma aux portEXIT_CRITICAL = "popf";
@@ -88,25 +88,25 @@ void portENABLE_INTERRUPTS( void );
/*-----------------------------------------------------------*/
/* Architecture specifics. */
-#define portSTACK_GROWTH ( -1 )
-#define portSWITCH_INT_NUMBER 0x80
-#define portYIELD() __asm { int portSWITCH_INT_NUMBER }
-#define portDOS_TICK_RATE ( 18.20648 )
+#define portSTACK_GROWTH ( -1 )
+#define portSWITCH_INT_NUMBER 0x80
+#define portYIELD() __asm{ int portSWITCH_INT_NUMBER }
+#define portDOS_TICK_RATE ( 18.20648 )
#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
-#define portTICKS_PER_DOS_TICK ( ( uint16_t ) ( ( ( portDOUBLE ) configTICK_RATE_HZ / portDOS_TICK_RATE ) + 0.5 ) )
-#define portINITIAL_SW ( ( portSTACK_TYPE ) 0x0202 ) /* Start the tasks with interrupts enabled. */
-#define portBYTE_ALIGNMENT ( 2 )
+#define portTICKS_PER_DOS_TICK ( ( uint16_t ) ( ( ( portDOUBLE ) configTICK_RATE_HZ / portDOS_TICK_RATE ) + 0.5 ) )
+#define portINITIAL_SW ( ( portSTACK_TYPE ) 0x0202 ) /* Start the tasks with interrupts enabled. */
+#define portBYTE_ALIGNMENT ( 2 )
/*-----------------------------------------------------------*/
/* Compiler specifics. */
-#define portINPUT_BYTE( xAddr ) inp( xAddr )
-#define portOUTPUT_BYTE( xAddr, ucValue ) outp( xAddr, ucValue )
-#define portNOP() __asm { nop }
+#define portINPUT_BYTE( xAddr ) inp( xAddr )
+#define portOUTPUT_BYTE( xAddr, ucValue ) outp( xAddr, ucValue )
+#define portNOP() __asm{ nop }
/*-----------------------------------------------------------*/
/* Task function macros as described on the FreeRTOS.org WEB site. */
-#define portTASK_FUNCTION_PROTO( vTaskFunction, pvParameters ) void vTaskFunction( void * pvParameters )
-#define portTASK_FUNCTION( vTaskFunction, pvParameters ) void vTaskFunction( void * pvParameters )
+#define portTASK_FUNCTION_PROTO( vTaskFunction, pvParameters ) void vTaskFunction( void *pvParameters )
+#define portTASK_FUNCTION( vTaskFunction, pvParameters ) void vTaskFunction( void *pvParameters )
/* *INDENT-OFF* */
#ifdef __cplusplus
diff --git a/portable/oWatcom/16BitDOS/common/portasm.h b/portable/oWatcom/16BitDOS/common/portasm.h
index 997243293..f77e2b553 100644
--- a/portable/oWatcom/16BitDOS/common/portasm.h
+++ b/portable/oWatcom/16BitDOS/common/portasm.h
@@ -45,65 +45,65 @@ void portSWITCH_CONTEXT( void );
void portFIRST_CONTEXT( void );
/* There are slightly different versions depending on whether you are building
- * to include debugger information. If debugger information is used then there
- * are a couple of extra bytes left of the ISR stack (presumably for use by the
- * debugger). The true stack pointer is then stored in the bp register. We add
- * 2 to the stack pointer to remove the extra bytes before we restore our context. */
+to include debugger information. If debugger information is used then there
+are a couple of extra bytes left of the ISR stack (presumably for use by the
+debugger). The true stack pointer is then stored in the bp register. We add
+2 to the stack pointer to remove the extra bytes before we restore our context. */
#ifdef DEBUG_BUILD
- #pragma aux portSWITCH_CONTEXT = "mov ax, seg pxCurrentTCB" \
- "mov ds, ax" \
- "les bx, pxCurrentTCB" /* Save the stack pointer into the TCB. */ \
- "mov es:0x2[ bx ], ss" \
- "mov es:[ bx ], sp" \
- "call vTaskSwitchContext" /* Perform the switch. */ \
- "mov ax, seg pxCurrentTCB" /* Restore the stack pointer from the TCB. */ \
- "mov ds, ax" \
- "les bx, dword ptr pxCurrentTCB" \
- "mov ss, es:[ bx + 2 ]" \
- "mov sp, es:[ bx ]" \
- "mov bp, sp" /* Prepair the bp register for the restoration of the SP in the compiler generated portion of the ISR */ \
- "add bp, 0x0002"
+ #pragma aux portSWITCH_CONTEXT = "mov ax, seg pxCurrentTCB" \
+ "mov ds, ax" \
+ "les bx, pxCurrentTCB" /* Save the stack pointer into the TCB. */ \
+ "mov es:0x2[ bx ], ss" \
+ "mov es:[ bx ], sp" \
+ "call vTaskSwitchContext" /* Perform the switch. */ \
+ "mov ax, seg pxCurrentTCB" /* Restore the stack pointer from the TCB. */ \
+ "mov ds, ax" \
+ "les bx, dword ptr pxCurrentTCB" \
+ "mov ss, es:[ bx + 2 ]" \
+ "mov sp, es:[ bx ]" \
+ "mov bp, sp" /* Prepair the bp register for the restoration of the SP in the compiler generated portion of the ISR */ \
+ "add bp, 0x0002"
- #pragma aux portFIRST_CONTEXT = "mov ax, seg pxCurrentTCB" \
- "mov ds, ax" \
- "les bx, dword ptr pxCurrentTCB" \
- "mov ss, es:[ bx + 2 ]" \
- "mov sp, es:[ bx ]" \
- "add sp, 0x0002" /* Remove the extra bytes that exist in debug builds before restoring the context. */ \
- "pop ax" \
- "pop ax" \
- "pop es" \
- "pop ds" \
- "popa" \
- "iret"
-#else /* ifdef DEBUG_BUILD */
+ #pragma aux portFIRST_CONTEXT = "mov ax, seg pxCurrentTCB" \
+ "mov ds, ax" \
+ "les bx, dword ptr pxCurrentTCB" \
+ "mov ss, es:[ bx + 2 ]" \
+ "mov sp, es:[ bx ]" \
+ "add sp, 0x0002" /* Remove the extra bytes that exist in debug builds before restoring the context. */ \
+ "pop ax" \
+ "pop ax" \
+ "pop es" \
+ "pop ds" \
+ "popa" \
+ "iret"
+#else
- #pragma aux portSWITCH_CONTEXT = "mov ax, seg pxCurrentTCB" \
- "mov ds, ax" \
- "les bx, pxCurrentTCB" /* Save the stack pointer into the TCB. */ \
- "mov es:0x2[ bx ], ss" \
- "mov es:[ bx ], sp" \
- "call vTaskSwitchContext" /* Perform the switch. */ \
- "mov ax, seg pxCurrentTCB" /* Restore the stack pointer from the TCB. */ \
- "mov ds, ax" \
- "les bx, dword ptr pxCurrentTCB" \
- "mov ss, es:[ bx + 2 ]" \
- "mov sp, es:[ bx ]"
+ #pragma aux portSWITCH_CONTEXT = "mov ax, seg pxCurrentTCB" \
+ "mov ds, ax" \
+ "les bx, pxCurrentTCB" /* Save the stack pointer into the TCB. */ \
+ "mov es:0x2[ bx ], ss" \
+ "mov es:[ bx ], sp" \
+ "call vTaskSwitchContext" /* Perform the switch. */ \
+ "mov ax, seg pxCurrentTCB" /* Restore the stack pointer from the TCB. */ \
+ "mov ds, ax" \
+ "les bx, dword ptr pxCurrentTCB" \
+ "mov ss, es:[ bx + 2 ]" \
+ "mov sp, es:[ bx ]"
- #pragma aux portFIRST_CONTEXT = "mov ax, seg pxCurrentTCB" \
- "mov ds, ax" \
- "les bx, dword ptr pxCurrentTCB" \
- "mov ss, es:[ bx + 2 ]" \
- "mov sp, es:[ bx ]" \
- "pop ax" \
- "pop ax" \
- "pop es" \
- "pop ds" \
- "popa" \
- "iret"
-#endif /* ifdef DEBUG_BUILD */
+ #pragma aux portFIRST_CONTEXT = "mov ax, seg pxCurrentTCB" \
+ "mov ds, ax" \
+ "les bx, dword ptr pxCurrentTCB" \
+ "mov ss, es:[ bx + 2 ]" \
+ "mov sp, es:[ bx ]" \
+ "pop ax" \
+ "pop ax" \
+ "pop es" \
+ "pop ds" \
+ "popa" \
+ "iret"
+#endif
diff --git a/portable/oWatcom/16BitDOS/common/portcomn.c b/portable/oWatcom/16BitDOS/common/portcomn.c
index 54c06f675..2a7b66637 100644
--- a/portable/oWatcom/16BitDOS/common/portcomn.c
+++ b/portable/oWatcom/16BitDOS/common/portcomn.c
@@ -27,21 +27,21 @@
*/
/*
- * Changes from V1.00:
- *
- + pxPortInitialiseStack() now initialises the stack of new tasks to the
- + same format used by the compiler. This allows the compiler generated
- + interrupt mechanism to be used for context switches.
- +
- + Changes from V2.4.2:
- +
- + pvPortMalloc and vPortFree have been removed. The projects now use
- + the definitions from the source/portable/MemMang directory.
- +
- + Changes from V2.6.1:
- +
- + usPortCheckFreeStackSpace() has been moved to tasks.c.
- */
+Changes from V1.00:
+
+ + pxPortInitialiseStack() now initialises the stack of new tasks to the
+ same format used by the compiler. This allows the compiler generated
+ interrupt mechanism to be used for context switches.
+
+Changes from V2.4.2:
+
+ + pvPortMalloc and vPortFree have been removed. The projects now use
+ the definitions from the source/portable/MemMang directory.
+
+Changes from V2.6.1:
+
+ + usPortCheckFreeStackSpace() has been moved to tasks.c.
+*/
@@ -51,15 +51,13 @@
/*-----------------------------------------------------------*/
/* See header file for description. */
-StackType_t * pxPortInitialiseStack( StackType_t * pxTopOfStack,
- TaskFunction_t pxCode,
- void * pvParameters )
+StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters )
{
- StackType_t DS_Reg = 0;
- StackType_t * pxOriginalSP;
+StackType_t DS_Reg = 0;
+StackType_t * pxOriginalSP;
/* Place a few bytes of known values on the bottom of the stack.
- * This is just useful for debugging. */
+ This is just useful for debugging. */
*pxTopOfStack = 0x1111;
pxTopOfStack--;
@@ -76,9 +74,9 @@ StackType_t * pxPortInitialiseStack( StackType_t * pxTopOfStack,
/*lint -e950 -e611 -e923 Lint doesn't like this much - but nothing I can do about it. */
/* We are going to start the scheduler using a return from interrupt
- * instruction to load the program counter, so first there would be the
- * status register and interrupt return address. We make this the start
- * of the task. */
+ instruction to load the program counter, so first there would be the
+ status register and interrupt return address. We make this the start
+ of the task. */
*pxTopOfStack = portINITIAL_SW;
pxTopOfStack--;
*pxTopOfStack = FP_SEG( pxCode );
@@ -87,24 +85,24 @@ StackType_t * pxPortInitialiseStack( StackType_t * pxTopOfStack,
pxTopOfStack--;
/* We are going to setup the stack for the new task to look like
- * the stack frame was setup by a compiler generated ISR. We need to know
- * the address of the existing stack top to place in the SP register within
- * the stack frame. pxOriginalSP holds SP before (simulated) pusha was
- * called. */
+ the stack frame was setup by a compiler generated ISR. We need to know
+ the address of the existing stack top to place in the SP register within
+ the stack frame. pxOriginalSP holds SP before (simulated) pusha was
+ called. */
pxOriginalSP = pxTopOfStack;
/* The remaining registers would be pushed on the stack by our context
- * switch function. These are loaded with values simply to make debugging
- * easier. */
- *pxTopOfStack = FP_OFF( pvParameters ); /* AX */
+ switch function. These are loaded with values simply to make debugging
+ easier. */
+ *pxTopOfStack = FP_OFF( pvParameters ); /* AX */
pxTopOfStack--;
*pxTopOfStack = ( StackType_t ) 0xCCCC; /* CX */
pxTopOfStack--;
- *pxTopOfStack = FP_SEG( pvParameters ); /* DX */
+ *pxTopOfStack = FP_SEG( pvParameters ); /* DX */
pxTopOfStack--;
*pxTopOfStack = ( StackType_t ) 0xBBBB; /* BX */
pxTopOfStack--;
- *pxTopOfStack = FP_OFF( pxOriginalSP ); /* SP */
+ *pxTopOfStack = FP_OFF( pxOriginalSP ); /* SP */
pxTopOfStack--;
*pxTopOfStack = ( StackType_t ) 0xBBBB; /* BP */
pxTopOfStack--;
@@ -113,9 +111,7 @@ StackType_t * pxPortInitialiseStack( StackType_t * pxTopOfStack,
*pxTopOfStack = ( StackType_t ) 0xDDDD; /* DI */
/* We need the true data segment. */
- __asm {
- MOV DS_Reg, DS
- };
+ __asm{ MOV DS_Reg, DS };
pxTopOfStack--;
*pxTopOfStack = DS_Reg; /* DS */
@@ -125,17 +121,16 @@ StackType_t * pxPortInitialiseStack( StackType_t * pxTopOfStack,
/* The AX register is pushed again twice - don't know why. */
pxTopOfStack--;
- *pxTopOfStack = FP_OFF( pvParameters ); /* AX */
+ *pxTopOfStack = FP_OFF( pvParameters ); /* AX */
pxTopOfStack--;
- *pxTopOfStack = FP_OFF( pvParameters ); /* AX */
+ *pxTopOfStack = FP_OFF( pvParameters ); /* AX */
#ifdef DEBUG_BUILD
-
/* The compiler adds space to each ISR stack if building to
- * include debug information. Presumably this is used by the
- * debugger - we don't need to initialise it to anything just
- * make sure it is there. */
+ include debug information. Presumably this is used by the
+ debugger - we don't need to initialise it to anything just
+ make sure it is there. */
pxTopOfStack--;
#endif