Skip to content

Commit 80f6744

Browse files
authored
Use UBaseType_t as interrupt mask (#689)
* Use UBaseType_t as interrupt mask * Update GCC posix port to use UBaseType_t as interrupt mask
1 parent 4a35c97 commit 80f6744

File tree

6 files changed

+51
-51
lines changed

6 files changed

+51
-51
lines changed

event_groups.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -521,15 +521,15 @@ EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup,
521521

522522
EventBits_t xEventGroupGetBitsFromISR( EventGroupHandle_t xEventGroup )
523523
{
524-
portBASE_TYPE xSavedInterruptStatus;
524+
UBaseType_t uxSavedInterruptStatus;
525525
EventGroup_t const * const pxEventBits = xEventGroup;
526526
EventBits_t uxReturn;
527527

528-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
528+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
529529
{
530530
uxReturn = pxEventBits->uxEventBits;
531531
}
532-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
532+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
533533

534534
return uxReturn;
535535
} /*lint !e818 EventGroupHandle_t is a typedef used in other functions to so can't be pointer to const. */

portable/ThirdParty/GCC/Posix/port.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -332,17 +332,17 @@ void vPortEnableInterrupts( void )
332332
}
333333
/*-----------------------------------------------------------*/
334334

335-
portBASE_TYPE xPortSetInterruptMask( void )
335+
UBaseType_t xPortSetInterruptMask( void )
336336
{
337337
/* Interrupts are always disabled inside ISRs (signals
338338
* handlers). */
339-
return pdTRUE;
339+
return ( UBaseType_t )0;
340340
}
341341
/*-----------------------------------------------------------*/
342342

343-
void vPortClearInterruptMask( portBASE_TYPE xMask )
343+
void vPortClearInterruptMask( UBaseType_t uxMask )
344344
{
345-
( void ) xMask;
345+
( void ) uxMask;
346346
}
347347
/*-----------------------------------------------------------*/
348348

portable/ThirdParty/GCC/Posix/portmacro.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ extern void vPortEnableInterrupts( void );
9494
#define portSET_INTERRUPT_MASK() ( vPortDisableInterrupts() )
9595
#define portCLEAR_INTERRUPT_MASK() ( vPortEnableInterrupts() )
9696

97-
extern portBASE_TYPE xPortSetInterruptMask( void );
98-
extern void vPortClearInterruptMask( portBASE_TYPE xMask );
97+
extern UBaseType_t xPortSetInterruptMask( void );
98+
extern void vPortClearInterruptMask( UBaseType_t xMask );
9999

100100
extern void vPortEnterCritical( void );
101101
extern void vPortExitCritical( void );

queue.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,7 +1099,7 @@ BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue,
10991099
const BaseType_t xCopyPosition )
11001100
{
11011101
BaseType_t xReturn;
1102-
portBASE_TYPE xSavedInterruptStatus;
1102+
UBaseType_t uxSavedInterruptStatus;
11031103
Queue_t * const pxQueue = xQueue;
11041104

11051105
configASSERT( pxQueue );
@@ -1127,7 +1127,7 @@ BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue,
11271127
* read, instead return a flag to say whether a context switch is required or
11281128
* not (i.e. has a task with a higher priority than us been woken by this
11291129
* post). */
1130-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
1130+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
11311131
{
11321132
if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) )
11331133
{
@@ -1252,7 +1252,7 @@ BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue,
12521252
xReturn = errQUEUE_FULL;
12531253
}
12541254
}
1255-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
1255+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
12561256

12571257
return xReturn;
12581258
}
@@ -1262,7 +1262,7 @@ BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue,
12621262
BaseType_t * const pxHigherPriorityTaskWoken )
12631263
{
12641264
BaseType_t xReturn;
1265-
portBASE_TYPE xSavedInterruptStatus;
1265+
UBaseType_t uxSavedInterruptStatus;
12661266
Queue_t * const pxQueue = xQueue;
12671267

12681268
/* Similar to xQueueGenericSendFromISR() but used with semaphores where the
@@ -1298,7 +1298,7 @@ BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue,
12981298
* link: https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html */
12991299
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
13001300

1301-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
1301+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
13021302
{
13031303
const UBaseType_t uxMessagesWaiting = pxQueue->uxMessagesWaiting;
13041304

@@ -1418,7 +1418,7 @@ BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue,
14181418
xReturn = errQUEUE_FULL;
14191419
}
14201420
}
1421-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
1421+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
14221422

14231423
return xReturn;
14241424
}
@@ -1933,7 +1933,7 @@ BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue,
19331933
BaseType_t * const pxHigherPriorityTaskWoken )
19341934
{
19351935
BaseType_t xReturn;
1936-
portBASE_TYPE xSavedInterruptStatus;
1936+
UBaseType_t uxSavedInterruptStatus;
19371937
Queue_t * const pxQueue = xQueue;
19381938

19391939
configASSERT( pxQueue );
@@ -1955,7 +1955,7 @@ BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue,
19551955
* link: https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html */
19561956
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
19571957

1958-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
1958+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
19591959
{
19601960
const UBaseType_t uxMessagesWaiting = pxQueue->uxMessagesWaiting;
19611961

@@ -2015,7 +2015,7 @@ BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue,
20152015
traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue );
20162016
}
20172017
}
2018-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
2018+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
20192019

20202020
return xReturn;
20212021
}
@@ -2025,7 +2025,7 @@ BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue,
20252025
void * const pvBuffer )
20262026
{
20272027
BaseType_t xReturn;
2028-
portBASE_TYPE xSavedInterruptStatus;
2028+
UBaseType_t uxSavedInterruptStatus;
20292029
int8_t * pcOriginalReadPosition;
20302030
Queue_t * const pxQueue = xQueue;
20312031

@@ -2049,7 +2049,7 @@ BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue,
20492049
* link: https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html */
20502050
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
20512051

2052-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
2052+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
20532053
{
20542054
/* Cannot block in an ISR, so check there is data available. */
20552055
if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 )
@@ -2070,7 +2070,7 @@ BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue,
20702070
traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue );
20712071
}
20722072
}
2073-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
2073+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
20742074

20752075
return xReturn;
20762076
}

stream_buffer.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@
9696
#define sbRECEIVE_COMPLETED_FROM_ISR( pxStreamBuffer, \
9797
pxHigherPriorityTaskWoken ) \
9898
do { \
99-
portBASE_TYPE xSavedInterruptStatus; \
99+
UBaseType_t uxSavedInterruptStatus; \
100100
\
101-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); \
101+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); \
102102
{ \
103103
if( ( pxStreamBuffer )->xTaskWaitingToSend != NULL ) \
104104
{ \
@@ -109,7 +109,7 @@
109109
( pxStreamBuffer )->xTaskWaitingToSend = NULL; \
110110
} \
111111
} \
112-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus ); \
112+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); \
113113
} while( 0 )
114114
#endif /* sbRECEIVE_COMPLETED_FROM_ISR */
115115

@@ -173,9 +173,9 @@
173173
#ifndef sbSEND_COMPLETE_FROM_ISR
174174
#define sbSEND_COMPLETE_FROM_ISR( pxStreamBuffer, pxHigherPriorityTaskWoken ) \
175175
do { \
176-
portBASE_TYPE xSavedInterruptStatus; \
176+
UBaseType_t uxSavedInterruptStatus; \
177177
\
178-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); \
178+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); \
179179
{ \
180180
if( ( pxStreamBuffer )->xTaskWaitingToReceive != NULL ) \
181181
{ \
@@ -186,7 +186,7 @@
186186
( pxStreamBuffer )->xTaskWaitingToReceive = NULL; \
187187
} \
188188
} \
189-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus ); \
189+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); \
190190
} while( 0 )
191191
#endif /* sbSEND_COMPLETE_FROM_ISR */
192192

@@ -1214,11 +1214,11 @@ BaseType_t xStreamBufferSendCompletedFromISR( StreamBufferHandle_t xStreamBuffer
12141214
{
12151215
StreamBuffer_t * const pxStreamBuffer = xStreamBuffer;
12161216
BaseType_t xReturn;
1217-
portBASE_TYPE xSavedInterruptStatus;
1217+
UBaseType_t uxSavedInterruptStatus;
12181218

12191219
configASSERT( pxStreamBuffer );
12201220

1221-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
1221+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
12221222
{
12231223
if( ( pxStreamBuffer )->xTaskWaitingToReceive != NULL )
12241224
{
@@ -1234,7 +1234,7 @@ BaseType_t xStreamBufferSendCompletedFromISR( StreamBufferHandle_t xStreamBuffer
12341234
xReturn = pdFALSE;
12351235
}
12361236
}
1237-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
1237+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
12381238

12391239
return xReturn;
12401240
}
@@ -1245,11 +1245,11 @@ BaseType_t xStreamBufferReceiveCompletedFromISR( StreamBufferHandle_t xStreamBuf
12451245
{
12461246
StreamBuffer_t * const pxStreamBuffer = xStreamBuffer;
12471247
BaseType_t xReturn;
1248-
portBASE_TYPE xSavedInterruptStatus;
1248+
UBaseType_t uxSavedInterruptStatus;
12491249

12501250
configASSERT( pxStreamBuffer );
12511251

1252-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
1252+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
12531253
{
12541254
if( ( pxStreamBuffer )->xTaskWaitingToSend != NULL )
12551255
{
@@ -1265,7 +1265,7 @@ BaseType_t xStreamBufferReceiveCompletedFromISR( StreamBufferHandle_t xStreamBuf
12651265
xReturn = pdFALSE;
12661266
}
12671267
}
1268-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
1268+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
12691269

12701270
return xReturn;
12711271
}

tasks.c

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1481,7 +1481,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
14811481
{
14821482
TCB_t const * pxTCB;
14831483
UBaseType_t uxReturn;
1484-
portBASE_TYPE xSavedInterruptState;
1484+
UBaseType_t uxSavedInterruptState;
14851485

14861486
/* RTOS ports that support interrupt nesting have the concept of a
14871487
* maximum system call (or maximum API call) interrupt priority.
@@ -1501,14 +1501,14 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
15011501
* https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html */
15021502
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
15031503

1504-
xSavedInterruptState = portSET_INTERRUPT_MASK_FROM_ISR();
1504+
uxSavedInterruptState = portSET_INTERRUPT_MASK_FROM_ISR();
15051505
{
15061506
/* If null is passed in here then it is the priority of the calling
15071507
* task that is being queried. */
15081508
pxTCB = prvGetTCBFromHandle( xTask );
15091509
uxReturn = pxTCB->uxPriority;
15101510
}
1511-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptState );
1511+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptState );
15121512

15131513
return uxReturn;
15141514
}
@@ -1894,7 +1894,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
18941894
{
18951895
BaseType_t xYieldRequired = pdFALSE;
18961896
TCB_t * const pxTCB = xTaskToResume;
1897-
portBASE_TYPE xSavedInterruptStatus;
1897+
UBaseType_t uxSavedInterruptStatus;
18981898

18991899
configASSERT( xTaskToResume );
19001900

@@ -1916,7 +1916,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
19161916
* https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html */
19171917
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
19181918

1919-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
1919+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
19201920
{
19211921
if( prvTaskIsTaskSuspended( pxTCB ) != pdFALSE )
19221922
{
@@ -1957,7 +1957,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
19571957
mtCOVERAGE_TEST_MARKER();
19581958
}
19591959
}
1960-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
1960+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
19611961

19621962
return xYieldRequired;
19631963
}
@@ -2315,7 +2315,7 @@ TickType_t xTaskGetTickCount( void )
23152315
TickType_t xTaskGetTickCountFromISR( void )
23162316
{
23172317
TickType_t xReturn;
2318-
portBASE_TYPE xSavedInterruptStatus;
2318+
UBaseType_t uxSavedInterruptStatus;
23192319

23202320
/* RTOS ports that support interrupt nesting have the concept of a maximum
23212321
* system call (or maximum API call) interrupt priority. Interrupts that are
@@ -2333,11 +2333,11 @@ TickType_t xTaskGetTickCountFromISR( void )
23332333
* link: https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html */
23342334
portASSERT_IF_INTERRUPT_PRIORITY_INVALID();
23352335

2336-
xSavedInterruptStatus = portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR();
2336+
uxSavedInterruptStatus = portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR();
23372337
{
23382338
xReturn = xTickCount;
23392339
}
2340-
portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
2340+
portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
23412341

23422342
return xReturn;
23432343
}
@@ -3015,18 +3015,18 @@ BaseType_t xTaskIncrementTick( void )
30153015
{
30163016
TCB_t * pxTCB;
30173017
TaskHookFunction_t xReturn;
3018-
portBASE_TYPE xSavedInterruptStatus;
3018+
UBaseType_t uxSavedInterruptStatus;
30193019

30203020
/* If xTask is NULL then set the calling task's hook. */
30213021
pxTCB = prvGetTCBFromHandle( xTask );
30223022

30233023
/* Save the hook function in the TCB. A critical section is required as
30243024
* the value can be accessed from an interrupt. */
3025-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
3025+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
30263026
{
30273027
xReturn = pxTCB->pxTaskTag;
30283028
}
3029-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
3029+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
30303030

30313031
return xReturn;
30323032
}
@@ -5035,7 +5035,7 @@ TickType_t uxTaskResetEventItemValue( void )
50355035
TCB_t * pxTCB;
50365036
uint8_t ucOriginalNotifyState;
50375037
BaseType_t xReturn = pdPASS;
5038-
portBASE_TYPE xSavedInterruptStatus;
5038+
UBaseType_t uxSavedInterruptStatus;
50395039

50405040
configASSERT( xTaskToNotify );
50415041
configASSERT( uxIndexToNotify < configTASK_NOTIFICATION_ARRAY_ENTRIES );
@@ -5060,7 +5060,7 @@ TickType_t uxTaskResetEventItemValue( void )
50605060

50615061
pxTCB = xTaskToNotify;
50625062

5063-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
5063+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
50645064
{
50655065
if( pulPreviousNotificationValue != NULL )
50665066
{
@@ -5154,7 +5154,7 @@ TickType_t uxTaskResetEventItemValue( void )
51545154
}
51555155
}
51565156
}
5157-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
5157+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
51585158

51595159
return xReturn;
51605160
}
@@ -5170,7 +5170,7 @@ TickType_t uxTaskResetEventItemValue( void )
51705170
{
51715171
TCB_t * pxTCB;
51725172
uint8_t ucOriginalNotifyState;
5173-
portBASE_TYPE xSavedInterruptStatus;
5173+
UBaseType_t uxSavedInterruptStatus;
51745174

51755175
configASSERT( xTaskToNotify );
51765176
configASSERT( uxIndexToNotify < configTASK_NOTIFICATION_ARRAY_ENTRIES );
@@ -5195,7 +5195,7 @@ TickType_t uxTaskResetEventItemValue( void )
51955195

51965196
pxTCB = xTaskToNotify;
51975197

5198-
xSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
5198+
uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();
51995199
{
52005200
ucOriginalNotifyState = pxTCB->ucNotifyState[ uxIndexToNotify ];
52015201
pxTCB->ucNotifyState[ uxIndexToNotify ] = taskNOTIFICATION_RECEIVED;
@@ -5245,7 +5245,7 @@ TickType_t uxTaskResetEventItemValue( void )
52455245
}
52465246
}
52475247
}
5248-
portCLEAR_INTERRUPT_MASK_FROM_ISR( xSavedInterruptStatus );
5248+
portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus );
52495249
}
52505250

52515251
#endif /* configUSE_TASK_NOTIFICATIONS */

0 commit comments

Comments
 (0)