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