1 /*
2 * \brief Virtual page-table facility
3 * \author Christian Helmuth
4 * \date 2008-08-15
5 */
6
7 /*
8 * Copyright (C) 2008-2013 Genode Labs GmbH
9 *
10 * This file is part of the Genode OS framework, which is distributed
11 * under the terms of the GNU General Public License version 2.
12 */
13
14 #ifndef _INCLUDE__DDE_KIT__PGTAB_H_
15 #define _INCLUDE__DDE_KIT__PGTAB_H_
16
17 #include <dde_kit/types.h>
18
19 /**
20 * Set virtual->physical mapping for VM pages
21 *
22 * \param virt virtual start address for region
23 * \param phys physical start address for region
24 * \param pages number of pages in region
25 */
26 void dde_kit_pgtab_set_region(void *virt, dde_kit_addr_t phys, unsigned pages);
27
28 /**
29 * Set virtual->physical mapping for VM region
30 *
31 * \param virt virtual start address for region
32 * \param phys physical start address for region
33 * \param size number of bytes in region
34 */
35 void dde_kit_pgtab_set_region_with_size(void *virt, dde_kit_addr_t phys,
36 dde_kit_size_t size);
37
38 /**
39 * Clear virtual->physical mapping for VM region
40 *
41 * \param virt virtual start address for region
42 */
43 void dde_kit_pgtab_clear_region(void *virt);
44
45 /**
46 * Get physical address for virtual address
47 *
48 * \param virt virtual address
49 *
50 * \return physical address
51 */
52 dde_kit_addr_t dde_kit_pgtab_get_physaddr(void *virt);
53
54 /**
55 * Get virtual address for physical address
56 *
57 * \param phys physical address
58 *
59 * \return virtual address
60 */
61 dde_kit_addr_t dde_kit_pgtab_get_virtaddr(dde_kit_addr_t phys);
62
63 /**
64 * Get size of VM region.
65 *
66 * \param virt virtual address
67 *
68 * \return VM region size (in bytes)
69 */
70 dde_kit_size_t dde_kit_pgtab_get_size(void *virt);
71
72 #endif /* _INCLUDE__DDE_KIT__PGTAB_H_ */