1 /* 2 * Copyright 2021 The Hafnium Authors. 3 * 4 * Use of this source code is governed by a BSD-style 5 * license that can be found in the LICENSE file or at 6 * https://opensource.org/licenses/BSD-3-Clause. 7 */ 8 9 #pragma once 10 11 #include "hf/fdt.h" 12 #include "hf/manifest.h" 13 #include "hf/vm.h" 14 15 #define DEFERRED_INT_ID 0xFFFF 16 17 bool plat_interrupts_controller_driver_init( 18 const struct fdt *fdt, struct mm_stage1_locked stage1_locked, 19 struct mpool *ppool); 20 void plat_interrupts_controller_hw_init(struct cpu *c); 21 void plat_interrupts_set_priority_mask(uint8_t min_priority); 22 uint8_t plat_interrupts_get_priority_mask(void); 23 void plat_interrupts_set_priority(uint32_t id, uint32_t core_pos, 24 uint32_t priority); 25 void plat_interrupts_enable(uint32_t id, uint32_t core_pos); 26 void plat_interrupts_disable(uint32_t id, uint32_t core_pos); 27 void plat_interrupts_set_type(uint32_t id, uint32_t type); 28 uint32_t plat_interrupts_get_type(uint32_t id); 29 uint32_t plat_interrupts_get_pending_interrupt_id(void); 30 void plat_interrupts_end_of_interrupt(uint32_t id); 31 void plat_interrupts_configure_interrupt(struct interrupt_descriptor int_desc); 32 void plat_interrupts_send_sgi(uint32_t id, struct cpu *cpu, 33 bool to_this_security_state); 34