blob: 1530b22569ce6aa808f70a00719818887591375d [file] [log] [blame]
Manish Pandeyd88a21c2021-03-04 15:10:22 +00001/*
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
Madhukar Pappireddy2185d0b2021-08-03 12:12:48 -050011#include "hf/fdt.h"
12#include "hf/manifest.h"
13#include "hf/vm.h"
14
15#define DEFERRED_INT_ID 0xFFFF
16
17bool plat_interrupts_controller_driver_init(
18 const struct fdt *fdt, struct mm_stage1_locked stage1_locked,
19 struct mpool *ppool);
20void plat_interrupts_controller_hw_init(struct cpu *c);
Manish Pandeyd88a21c2021-03-04 15:10:22 +000021void plat_interrupts_set_priority_mask(uint8_t min_priority);
Madhukar Pappireddy2185d0b2021-08-03 12:12:48 -050022uint8_t plat_interrupts_get_priority_mask(void);
23void plat_interrupts_set_priority(uint32_t id, uint32_t core_pos,
24 uint32_t priority);
25void plat_interrupts_enable(uint32_t id, uint32_t core_pos);
26void plat_interrupts_disable(uint32_t id, uint32_t core_pos);
27void plat_interrupts_set_type(uint32_t id, uint32_t type);
28uint32_t plat_interrupts_get_type(uint32_t id);
29uint32_t plat_interrupts_get_pending_interrupt_id(void);
30void plat_interrupts_end_of_interrupt(uint32_t id);
31void plat_interrupts_configure_interrupt(struct interrupt_descriptor int_desc);
32void plat_interrupts_send_sgi(uint32_t id, bool send_to_all,
33 uint32_t target_list,
34 bool to_this_security_state);