Line data Source code
1 0 : /*
2 : * Copyright (c) 2020 Intel Corporation
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_INCLUDE_SYS_MEM_MANAGE_H
8 : #define ZEPHYR_INCLUDE_SYS_MEM_MANAGE_H
9 :
10 : /**
11 : * @brief Memory Management
12 : * @defgroup memory_management Memory Management
13 : * @ingroup os_services
14 : * @{
15 : */
16 :
17 : #ifndef _ASMLANGUAGE
18 : #include <stdbool.h>
19 : #include <stdint.h>
20 :
21 : /**
22 : * @brief Check if a physical address is within range of physical memory.
23 : *
24 : * This checks if the physical address (@p virt) is within
25 : * permissible range, e.g. between
26 : * :kconfig:option:`CONFIG_SRAM_BASE_ADDRESS` and
27 : * (:kconfig:option:`CONFIG_SRAM_BASE_ADDRESS` +
28 : * :kconfig:option:`CONFIG_SRAM_SIZE`).
29 : *
30 : * @note Only used if
31 : * :kconfig:option:`CONFIG_KERNEL_VM_USE_CUSTOM_MEM_RANGE_CHECK`
32 : * is enabled.
33 : *
34 : * @param phys Physical address to be checked.
35 : *
36 : * @return True if physical address is within range, false if not.
37 : */
38 1 : bool sys_mm_is_phys_addr_in_range(uintptr_t phys);
39 :
40 : /**
41 : * @brief Check if a virtual address is within range of virtual memory.
42 : *
43 : * This checks if the virtual address (@p virt) is within
44 : * permissible range, e.g. between
45 : * :kconfig:option:`CONFIG_KERNEL_VM_BASE` and
46 : * (:kconfig:option:`CONFIG_KERNEL_VM_BASE` +
47 : * :kconfig:option:`CONFIG_KERNEL_VM_SIZE`).
48 : *
49 : * @note Only used if
50 : * :kconfig:option:`CONFIG_KERNEL_VM_USE_CUSTOM_MEM_RANGE_CHECK`
51 : * is enabled.
52 : *
53 : * @param virt Virtual address to be checked.
54 : *
55 : * @return True if virtual address is within range, false if not.
56 : */
57 1 : bool sys_mm_is_virt_addr_in_range(void *virt);
58 :
59 : /** @} */
60 :
61 : #endif /* !_ASMLANGUAGE */
62 : #endif /* ZEPHYR_INCLUDE_SYS_MEM_MANAGE_H */
|