Add vPortRemoveInterruptHandler API (#533)

* Add xPortRemoveInterruptHandler API

This API is added to the MicroBlazeV9 port. It enables the application
writer to remove an interrupt handler.

This was originally contributed in this PR - https://github.com/FreeRTOS/FreeRTOS-Kernel/pull/523

* Change API signature to return void

This makes the API similar to vPortDisableInterrupt.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>

Co-authored-by: Gavin Lambert <uecasm@users.noreply.github.com>
This commit is contained in:
Gaurav-Aggarwal-AWS 2022-08-03 13:45:27 -07:00 committed by GitHub
parent 2070d9d3e5
commit dc9c034c85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -327,7 +327,7 @@ int32_t lReturn;
portEXIT_CRITICAL(); portEXIT_CRITICAL();
} }
configASSERT( lReturn ); configASSERT( lReturn == pdPASS );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -345,7 +345,7 @@ int32_t lReturn;
XIntc_Disable( &xInterruptControllerInstance, ucInterruptID ); XIntc_Disable( &xInterruptControllerInstance, ucInterruptID );
} }
configASSERT( lReturn ); configASSERT( lReturn == pdPASS );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -374,6 +374,24 @@ int32_t lReturn;
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
void vPortRemoveInterruptHandler( uint8_t ucInterruptID )
{
int32_t lReturn;
/* An API function is provided to remove an interrupt handler because the
interrupt controller instance variable is private to this file. */
lReturn = prvEnsureInterruptControllerIsInitialised();
if( lReturn == pdPASS )
{
XIntc_Disconnect( &xInterruptControllerInstance, ucInterruptID );
}
configASSERT( lReturn == pdPASS );
}
/*-----------------------------------------------------------*/
static int32_t prvEnsureInterruptControllerIsInitialised( void ) static int32_t prvEnsureInterruptControllerIsInitialised( void )
{ {
static int32_t lInterruptControllerInitialised = pdFALSE; static int32_t lInterruptControllerInitialised = pdFALSE;