--- /dev/null
+/** @file\r
+ Provides services for SMM IO Operation.\r
+\r
+ The SMM IO Library provides function for checking if IO resource is accessible inside of SMM.\r
+\r
+ Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
+ This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef _SMM_IO_LIB_H_\r
+#define _SMM_IO_LIB_H_\r
+\r
+/**\r
+ This function check if the MMIO resource is valid per processor architecture and\r
+ valid per platform design.\r
+\r
+ @param BaseAddress The MMIO start address to be checked.\r
+ @param Length The MMIO length to be checked.\r
+ @param Owner A GUID representing the owner of the resource.\r
+ This GUID may be used by producer to correlate the device ownership of the resource.\r
+ NULL means no specific owner.\r
+\r
+ @retval TRUE This MMIO resource is valid per processor architecture and valid per platform design.\r
+ @retval FALSE This MMIO resource is not valid per processor architecture or valid per platform design.\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+SmmIsMmioValid (\r
+ IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
+ IN UINT64 Length,\r
+ IN EFI_GUID *Owner OPTIONAL\r
+ );\r
+\r
+#endif\r
+\r