feat(interrupts): preferred managed exit signal

A SP optionally specifies if vIRQ is the preferred choice for
signaling Managed Exit in response to a non secure interrupt.

Moreover, SPMC enables the following virtual maintenenace interrupts
by default for each Secure Partition:
  > Managed Exit Interrupt
  > Notification Pending Interrupt

Change-Id: I17131b42ee6fae2896804e4f952d9a371f237cd5
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
diff --git a/inc/hf/arch/plat/ffa.h b/inc/hf/arch/plat/ffa.h
index 6142440..07f274f 100644
--- a/inc/hf/arch/plat/ffa.h
+++ b/inc/hf/arch/plat/ffa.h
@@ -311,3 +311,6 @@
 
 void plat_ffa_unwind_call_chain_ffa_direct_resp(struct vcpu *current,
 						struct vcpu *next);
+
+void plat_ffa_enable_virtual_maintenance_interrupts(
+	struct vcpu_locked current_locked);
diff --git a/inc/hf/manifest.h b/inc/hf/manifest.h
index 0985217..60c6f76 100644
--- a/inc/hf/manifest.h
+++ b/inc/hf/manifest.h
@@ -151,6 +151,8 @@
 	uint8_t messaging_method;
 	/** mandatory - action in response to non secure interrupt */
 	uint8_t ns_interrupts_action;
+	/** optional - managed exit signaled through vIRQ */
+	bool me_signal_virq;
 	/** optional - receipt of notifications. */
 	bool notification_support;
 	/** optional */
diff --git a/inc/hf/vm.h b/inc/hf/vm.h
index e87e2b8..350d3b4 100644
--- a/inc/hf/vm.h
+++ b/inc/hf/vm.h
@@ -222,6 +222,7 @@
 	 * non secure interrupt.
 	 */
 	uint8_t ns_interrupts_action;
+	bool me_signal_virq;
 	struct vm *next_boot;
 
 	/**