feat(interrupts): new interrupt controller ABIs
This patch introduces additional platform interrupt controller ABIs
and implements these ABIs for a dummy platform interrupt controller
and a fake platform.
Change-Id: I08c140f43edc7a72958fc3638b33b4365a88b40a
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
diff --git a/inc/hf/plat/interrupts.h b/inc/hf/plat/interrupts.h
index 13ab747..1530b22 100644
--- a/inc/hf/plat/interrupts.h
+++ b/inc/hf/plat/interrupts.h
@@ -8,4 +8,27 @@
#pragma once
+#include "hf/fdt.h"
+#include "hf/manifest.h"
+#include "hf/vm.h"
+
+#define DEFERRED_INT_ID 0xFFFF
+
+bool plat_interrupts_controller_driver_init(
+ const struct fdt *fdt, struct mm_stage1_locked stage1_locked,
+ struct mpool *ppool);
+void plat_interrupts_controller_hw_init(struct cpu *c);
void plat_interrupts_set_priority_mask(uint8_t min_priority);
+uint8_t plat_interrupts_get_priority_mask(void);
+void plat_interrupts_set_priority(uint32_t id, uint32_t core_pos,
+ uint32_t priority);
+void plat_interrupts_enable(uint32_t id, uint32_t core_pos);
+void plat_interrupts_disable(uint32_t id, uint32_t core_pos);
+void plat_interrupts_set_type(uint32_t id, uint32_t type);
+uint32_t plat_interrupts_get_type(uint32_t id);
+uint32_t plat_interrupts_get_pending_interrupt_id(void);
+void plat_interrupts_end_of_interrupt(uint32_t id);
+void plat_interrupts_configure_interrupt(struct interrupt_descriptor int_desc);
+void plat_interrupts_send_sgi(uint32_t id, bool send_to_all,
+ uint32_t target_list,
+ bool to_this_security_state);