blob: 07bcb645e62ba211d9f74647343eeec0ba9a0dac [file] [log] [blame]
Andrew Walbranb5ab43c2020-04-30 11:32:54 +01001/*
2 * Copyright 2019 The Hafnium Authors.
3 *
Andrew Walbrane959ec12020-06-17 15:01:09 +01004 * 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.
Andrew Walbranb5ab43c2020-04-30 11:32:54 +01007 */
8
9#pragma once
10
11#include "hf/mpool.h"
12#include "hf/vm.h"
13
14#include "vmapi/hf/ffa.h"
15
Andrew Walbran1a86aa92020-05-15 17:22:28 +010016struct ffa_value ffa_memory_send(struct vm_locked from_locked,
Andrew Walbranb5ab43c2020-04-30 11:32:54 +010017 struct ffa_memory_region *memory_region,
Andrew Walbran130a8ae2020-05-15 16:27:15 +010018 uint32_t memory_share_length,
Andrew Walbran1a86aa92020-05-15 17:22:28 +010019 uint32_t fragment_length, uint32_t share_func,
20 struct mpool *page_pool);
21struct ffa_value ffa_memory_tee_send(
22 struct vm_locked from_locked, struct vm_locked to_locked,
23 struct ffa_memory_region *memory_region, uint32_t memory_share_length,
24 uint32_t fragment_length, uint32_t share_func, struct mpool *page_pool);
Andrew Walbranca808b12020-05-15 17:22:28 +010025struct ffa_value ffa_memory_send_continue(struct vm_locked from_locked,
26 void *fragment,
27 uint32_t fragment_length,
28 ffa_memory_handle_t handle,
29 struct mpool *page_pool);
30struct ffa_value ffa_memory_tee_send_continue(struct vm_locked from_locked,
31 struct vm_locked to_locked,
32 void *fragment,
33 uint32_t fragment_length,
34 ffa_memory_handle_t handle,
35 struct mpool *page_pool);
Andrew Walbranb5ab43c2020-04-30 11:32:54 +010036struct ffa_value ffa_memory_retrieve(struct vm_locked to_locked,
37 struct ffa_memory_region *retrieve_request,
Andrew Walbran130a8ae2020-05-15 16:27:15 +010038 uint32_t retrieve_request_length,
Andrew Walbranb5ab43c2020-04-30 11:32:54 +010039 struct mpool *page_pool);
Andrew Walbranca808b12020-05-15 17:22:28 +010040struct ffa_value ffa_memory_retrieve_continue(struct vm_locked to_locked,
41 ffa_memory_handle_t handle,
42 uint32_t fragment_offset,
43 struct mpool *page_pool);
Andrew Walbranb5ab43c2020-04-30 11:32:54 +010044struct ffa_value ffa_memory_relinquish(
45 struct vm_locked from_locked,
46 struct ffa_mem_relinquish *relinquish_request, struct mpool *page_pool);
47struct ffa_value ffa_memory_reclaim(struct vm_locked to_locked,
Andrew Walbranca808b12020-05-15 17:22:28 +010048 ffa_memory_handle_t handle,
49 ffa_memory_region_flags_t flags,
Andrew Walbranb5ab43c2020-04-30 11:32:54 +010050 struct mpool *page_pool);
51struct ffa_value ffa_memory_tee_reclaim(struct vm_locked to_locked,
Andrew Walbranca808b12020-05-15 17:22:28 +010052 struct vm_locked from_locked,
Andrew Walbranb5ab43c2020-04-30 11:32:54 +010053 ffa_memory_handle_t handle,
Andrew Walbranca808b12020-05-15 17:22:28 +010054 ffa_memory_region_flags_t flags,
55 struct mpool *page_pool);