feat(interrupts): precedence in NS interrupt action

An SP execution context in a call chain could specify a less
permissive action than subsequent SP execution contexts in the same
call chain. The less permissive action takes precedence over the more
permissive actions specified by the subsequent execution contexts.

Permissive order:
NS_ACTION_QUEUED < NS_ACTION_ME < NS_ACTION_SIGNALED

Consequently, NS interrupts are masked prior to resuming a vCPU if
the effective action for NS interrupts is set to QUEUED.

Moreover, this patch also performs saving and restoring of the priority
mask as required during winding and unwinding of a call chain.

Change-Id: Ia5b6ba1ff61db245964175eb3680c05065eefee4
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
diff --git a/inc/hf/vcpu.h b/inc/hf/vcpu.h
index c328051..1395bcd 100644
--- a/inc/hf/vcpu.h
+++ b/inc/hf/vcpu.h
@@ -192,6 +192,12 @@
 	 */
 	uint8_t present_action_ns_interrupts;
 
+	/**
+	 * If the action in response to a non secure interrupt is to queue it,
+	 * this field is used to save and restore the current priority mask.
+	 */
+	uint8_t mask_ns_interrupts;
+
 	/** Partition Runtime Model. */
 	enum partition_runtime_model rt_model;
 };