aboutsummaryrefslogtreecommitdiff
path: root/plat/common/plat_gicv3.c
diff options
context:
space:
mode:
authorJeenu Viswambharan <jeenu.viswambharan@arm.com>2017-09-22 08:32:09 +0100
committerJeenu Viswambharan <jeenu.viswambharan@arm.com>2017-10-16 16:50:01 +0100
commitca43b55d22f3a48f408d16d4bedbf677cbdf8f48 (patch)
tree1242264410d888d42f8564298fe9e4a8a68cd148 /plat/common/plat_gicv3.c
parentdea417cdd640a3e258db3b817223ffaa5f53e416 (diff)
downloadarm-trusted-firmware-ca43b55d22f3a48f408d16d4bedbf677cbdf8f48.tar.gz
GIC: Add APIs to query interrupt types
These APIs allow the GIC implementation to categorize interrupt numbers into SPIs, PPIs, and SGIs. The default implementations for GICv2 and GICv3 follows interrupt numbering as specified by the ARM GIC architecture. API documentation updated. Change-Id: Ia6aa379dc955994333232e6138f259535d4fa087 Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
Diffstat (limited to 'plat/common/plat_gicv3.c')
-rw-r--r--plat/common/plat_gicv3.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/plat/common/plat_gicv3.c b/plat/common/plat_gicv3.c
index 02317f1df..5a6021c4a 100644
--- a/plat/common/plat_gicv3.c
+++ b/plat/common/plat_gicv3.c
@@ -27,6 +27,9 @@
#pragma weak plat_interrupt_type_to_line
#pragma weak plat_ic_get_running_priority
+#pragma weak plat_ic_is_spi
+#pragma weak plat_ic_is_ppi
+#pragma weak plat_ic_is_sgi
CASSERT((INTR_TYPE_S_EL1 == INTR_GROUP1S) &&
(INTR_TYPE_NS == INTR_GROUP1NS) &&
@@ -163,6 +166,20 @@ unsigned int plat_ic_get_running_priority(void)
return gicv3_get_running_priority();
}
+int plat_ic_is_spi(unsigned int id)
+{
+ return (id >= MIN_SPI_ID) && (id <= MAX_SPI_ID);
+}
+
+int plat_ic_is_ppi(unsigned int id)
+{
+ return (id >= MIN_PPI_ID) && (id < MIN_SPI_ID);
+}
+
+int plat_ic_is_sgi(unsigned int id)
+{
+ return (id >= MIN_SGI_ID) && (id < MIN_PPI_ID);
+}
#endif
#ifdef IMAGE_BL32