/** @file MM Unblock Memory Library Interface. This library provides an interface to request non-MMRAM pages to be mapped/unblocked from inside MM environment. For MM modules that need to access regions outside of MMRAMs, the agents that set up these regions are responsible for invoking this API in order for these memory areas to be accessed from inside MM. Copyright (c) Microsoft Corporation. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef MM_UNBLOCK_MEMORY_LIB_H_ #define MM_UNBLOCK_MEMORY_LIB_H_ /** This API provides a way to unblock certain data pages to be accessible inside MM environment. @param UnblockAddress The address of buffer caller requests to unblock, the address has to be page aligned. @param NumberOfPages The number of pages requested to be unblocked from MM environment. @retval RETURN_SUCCESS The request goes through successfully. @retval RETURN_NOT_AVAILABLE_YET The requested functionality is not produced yet. @retval RETURN_UNSUPPORTED The requested functionality is not supported on current platform. @retval RETURN_SECURITY_VIOLATION The requested address failed to pass security check for unblocking. @retval RETURN_INVALID_PARAMETER Input address either NULL pointer or not page aligned. @retval RETURN_ACCESS_DENIED The request is rejected due to system has passed certain boot phase. **/ RETURN_STATUS EFIAPI MmUnblockMemoryRequest ( IN PHYSICAL_ADDRESS UnblockAddress, IN UINT64 NumberOfPages ); #endif // MM_UNBLOCK_MEMORY_LIB_H_