blob: 226ae06481859a6f10151cb2015869b308382800 [file] [log] [blame]
Karl Meakin5b2da502024-11-07 17:13:51 +00001/*
2 * Copyright 2024 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/vm.h"
12
13void plat_ffa_disable_vm_interrupts(struct vm_locked vm_locked);
14
15void plat_ffa_vm_init(struct mpool *ppool);
16
17struct vm_locked plat_ffa_nwd_vm_create(ffa_id_t vm_id);
18
19bool plat_ffa_vm_supports_indirect_messages(struct vm *vm);
20
21bool plat_ffa_vm_notifications_info_get(uint16_t *ids, uint32_t *ids_count,
22 uint32_t *lists_sizes,
23 uint32_t *lists_count,
24 uint32_t ids_count_max);
25
26/** Get NWd VM's structure. */
27struct vm_locked plat_ffa_vm_find_locked(ffa_id_t vm_id);
28
29struct vm_locked plat_ffa_vm_find_locked_create(ffa_id_t vm_id);
30
31void plat_ffa_vm_destroy(struct vm_locked to_destroy_locked);
32
33/** Reclaim all resources belonging to VM in aborted state. */
34void plat_ffa_free_vm_resources(struct vm_locked vm_locked);
35
36/** Checks whether managed exit is supported by given SP. */
37bool plat_ffa_vm_managed_exit_supported(struct vm *vm);