test(notifications): retrieve interrupt IDs

FFA_FEATURES can be used to query about certain features, namely to
retrieve interrupt ID of:
- Notification Pending Interrupt.
- Scheduler Receiver Interrupt.
- Managed Exit Interrupt.
As those are all needed in the scope of the notifications feature,
added test to validate they can be retrieved and have expected values.

Signed-off-by: J-Alves <joao.alves@arm.com>
Change-Id: I808170780118cff0dc89008e135897af7009ab37
diff --git a/include/runtime_services/ffa_helpers.h b/include/runtime_services/ffa_helpers.h
index 1774848..6d9c61d 100644
--- a/include/runtime_services/ffa_helpers.h
+++ b/include/runtime_services/ffa_helpers.h
@@ -30,6 +30,21 @@
 #include <cassert.h>
 #include <stdint.h>
 
+/**
+ * FF-A Feature ID, to be used with interface FFA_FEATURES.
+ * As defined in the FF-A v1.1 Beta specification, table 13.10, in section
+ * 13.2.
+ */
+
+/** Query interrupt ID of Notification Pending Interrupt. */
+#define FFA_FEATURE_NPI 0x1U
+
+/** Query interrupt ID of Schedule Receiver Interrupt. */
+#define FFA_FEATURE_SRI 0x2U
+
+/** Query interrupt ID of the Managed Exit Interrupt. */
+#define FFA_FEATURE_MEI 0x3U
+
 /** Partition property: partition supports receipt of direct requests. */
 #define FFA_PARTITION_DIRECT_REQ_RECV 0x1
 
@@ -62,6 +77,11 @@
 	return (ffa_id_t) val.ret2 & 0xffff;
 }
 
+static inline uint32_t ffa_feature_intid(smc_ret_values val)
+{
+	return (uint32_t)val.ret2;
+}
+
 typedef uint64_t ffa_notification_bitmap_t;
 
 #define FFA_NOTIFICATION(ID)		(UINT64_C(1) << ID)
diff --git a/include/runtime_services/spm_common.h b/include/runtime_services/spm_common.h
index 91a3b8c..58569d5 100644
--- a/include/runtime_services/spm_common.h
+++ b/include/runtime_services/spm_common.h
@@ -25,6 +25,9 @@
 /* INTID for the managed exit virtual interrupt. */
 #define MANAGED_EXIT_INTERRUPT_ID	U(4)
 
+/* INTID for the notification pending interrupt. */
+#define NOTIFICATION_PENDING_INTERRUPT_INTID 5
+
 /** IRQ/FIQ pin used for signaling a virtual interrupt. */
 enum interrupt_pin {
 	INTERRUPT_TYPE_IRQ,