1 /** @file 2 * Manage XenBus device path and I/O handles 3 * 4 * Copyright (c) 2015, Linaro Ltd. All rights reserved.<BR> 5 * 6 * This program and the accompanying materials are 7 * licensed and made available under the terms and conditions of the BSD License 8 * which accompanies this distribution. The full text of the license may be found at 9 * http://opensource.org/licenses/bsd-license.php 10 * 11 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 * 14 **/ 15 16 #ifndef _XENIO_MMIO_DEVICE_LIB_H_ 17 #define _XENIO_MMIO_DEVICE_LIB_H_ 18 19 /** 20 21 Install the XENBUS_ROOT_DEVICE_PATH and XENIO_PROTOCOL protocols on 22 the handle pointed to by @Handle, or on a new handle if it points to 23 NULL 24 25 @param Handle Pointer to the handle to install the protocols 26 on, may point to a NULL handle. 27 28 @param GrantTableAddress The address of the Xen grant table 29 30 @retval EFI_SUCCESS Protocols were installed successfully 31 32 @retval EFI_OUT_OF_RESOURCES The function failed to allocate memory required 33 by the XenIo MMIO and device path protocols 34 35 @return Status code returned by the boot service 36 InstallMultipleProtocolInterfaces () 37 38 **/ 39 EFI_STATUS 40 XenIoMmioInstall ( 41 IN OUT EFI_HANDLE *Handle, 42 IN EFI_PHYSICAL_ADDRESS GrantTableAddress 43 ); 44 45 46 /** 47 48 Uninstall the XENBUS_ROOT_DEVICE_PATH and XENIO_PROTOCOL protocols 49 50 @param Handle Handle onto which the protocols have been installed 51 earlier by XenIoMmioInstall () 52 53 @retval EFI_SUCCESS Protocols were uninstalled successfully 54 55 @return Status code returned by the boot service 56 UninstallMultipleProtocolInterfaces () 57 58 **/ 59 EFI_STATUS 60 XenIoMmioUninstall ( 61 IN EFI_HANDLE Handle 62 ); 63 64 #endif 65