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 */