/* * Copyright (c) 2020 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_INCLUDE_SYS_MEM_MANAGE_H #define ZEPHYR_INCLUDE_SYS_MEM_MANAGE_H /** * @brief Memory Management * @defgroup memory_management Memory Management * @ingroup os_services * @{ */ #ifndef _ASMLANGUAGE #include #include /** * @brief Check if a physical address is within range of physical memory. * * This checks if the physical address (@p virt) is within * permissible range, e.g. between * :kconfig:option:`CONFIG_SRAM_BASE_ADDRESS` and * (:kconfig:option:`CONFIG_SRAM_BASE_ADDRESS` + * :kconfig:option:`CONFIG_SRAM_SIZE`). * * @note Only used if * :kconfig:option:`CONFIG_KERNEL_VM_USE_CUSTOM_MEM_RANGE_CHECK` * is enabled. * * @param phys Physical address to be checked. * * @return True if physical address is within range, false if not. */ bool sys_mm_is_phys_addr_in_range(uintptr_t phys); /** * @brief Check if a virtual address is within range of virtual memory. * * This checks if the virtual address (@p virt) is within * permissible range, e.g. between * :kconfig:option:`CONFIG_KERNEL_VM_BASE` and * (:kconfig:option:`CONFIG_KERNEL_VM_BASE` + * :kconfig:option:`CONFIG_KERNEL_VM_SIZE`). * * @note Only used if * :kconfig:option:`CONFIG_KERNEL_VM_USE_CUSTOM_MEM_RANGE_CHECK` * is enabled. * * @param virt Virtual address to be checked. * * @return True if virtual address is within range, false if not. */ bool sys_mm_is_virt_addr_in_range(void *virt); /** @} */ #endif /* !_ASMLANGUAGE */ #endif /* ZEPHYR_INCLUDE_SYS_MEM_MANAGE_H */