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>
diff --git a/portable/GCC/MicroBlazeV9/port.c b/portable/GCC/MicroBlazeV9/port.c
index 5f0e261..7c605e0 100644
--- a/portable/GCC/MicroBlazeV9/port.c
+++ b/portable/GCC/MicroBlazeV9/port.c
@@ -327,7 +327,7 @@
 		portEXIT_CRITICAL();

 	}

 

-	configASSERT( lReturn );

+	configASSERT( lReturn == pdPASS );

 }

 /*-----------------------------------------------------------*/

 

@@ -345,7 +345,7 @@
 		XIntc_Disable( &xInterruptControllerInstance, ucInterruptID );

 	}

 

-	configASSERT( lReturn );

+	configASSERT( lReturn == pdPASS );

 }

 /*-----------------------------------------------------------*/

 

@@ -374,6 +374,24 @@
 }

 /*-----------------------------------------------------------*/

 

+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 lInterruptControllerInitialised = pdFALSE;