1/** 2 * \file 3 * \brief Common vspace library includes definitions 4 */ 5 6/* 7 * Copyright (c) 2009, 2010, 2011, ETH Zurich. 8 * Copyright (c) 2014, HP Labs. 9 * All rights reserved. 10 * 11 * This file is distributed under the terms in the attached LICENSE file. 12 * If you do not find this file, copies can be found by writing to: 13 * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group. 14 */ 15 16#ifndef LIBBARRELFISH_VSPACE_COMMON_H 17#define LIBBARRELFISH_VSPACE_COMMON_H 18 19typedef uint32_t vm_fault_type_t; 20#define PRIuVMFAULT PRIu32 21#define PRIxVMFAULT PRIx32 22 23typedef uint32_t vregion_flags_t; 24#define PRIuVREGIONFLAGS PRIu32 25#define PRIxVREGIONFLAGS PRIx32 26 27#include <sys/cdefs.h> 28 29#include <barrelfish/memobj.h> 30#include <barrelfish/vregion.h> 31#include <barrelfish/pmap_arch.h> 32#include <barrelfish/vspace_layout.h> 33#include <barrelfish/vspace.h> 34#include <barrelfish/vspace_mmu_aware.h> 35 36__BEGIN_DECLS 37 38errval_t vspace_unmap(const void *buf); 39errval_t vspace_map_anon_attr(void **retaddr, struct memobj **ret_memobj, 40 struct vregion **ret_vregion, size_t size, 41 size_t *retsize, vregion_flags_t flags); 42errval_t vspace_map_anon_nomalloc(void **retaddr, struct memobj_anon *memobj, 43 struct vregion *vregion, size_t size, 44 size_t *retsize, vregion_flags_t flags, 45 size_t alignment); 46errval_t vspace_map_anon_aligned(void **retaddr, struct memobj **ret_memobj, 47 struct vregion **ret_vregion, size_t size, 48 size_t *retsize, vregion_flags_t flags, 49 size_t alignment); 50errval_t vspace_map_anon_fixed(genvaddr_t base, size_t size, 51 vregion_flags_t flags, 52 struct vregion **ret_vregion, 53 struct memobj **ret_memobj); 54errval_t vspace_map_one_frame_attr(void **retaddr, size_t size, 55 struct capref frame, vregion_flags_t flags, 56 struct memobj **retmemobj, 57 struct vregion **retvregion); 58errval_t vspace_map_one_frame_attr_aligned(void **retaddr, size_t size, 59 struct capref frame, vregion_flags_t flags, 60 size_t alignment, 61 struct memobj **retmemobj, 62 struct vregion **retvregion); 63errval_t vspace_map_one_frame(void **retaddr, size_t size, struct capref frame, 64 struct memobj **retmemobj, 65 struct vregion **retvregion); 66errval_t vspace_map_one_frame_one_map(struct memobj_one_frame_one_map *memobj, 67 struct vregion *vregion, size_t size, 68 struct capref frame); 69 70errval_t vspace_map_one_frame_fixed(lvaddr_t addr, size_t size, 71 struct capref frame, 72 struct memobj **retmemobj, 73 struct vregion **retvregion); 74errval_t vspace_map_one_frame_fixed_attr(lvaddr_t addr, size_t size, 75 struct capref frame, vregion_flags_t flags, 76 struct memobj **retmemobj, 77 struct vregion **retvregion); 78 79__END_DECLS 80 81#endif // LIBBARRELFISH_VSPACE_COMMON_H 82