blob: 072fdbf821414e13da39eca4fdb8537f97616510 [file] [log] [blame]
/** @file
* Manage XenBus device path and I/O handles
*
* Copyright (c) 2015, Linaro Ltd. All rights reserved.<BR>
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
**/
#ifndef _XENIO_MMIO_DEVICE_LIB_H_
#define _XENIO_MMIO_DEVICE_LIB_H_
/**
Install the XENBUS_ROOT_DEVICE_PATH and XENIO_PROTOCOL protocols on
the handle pointed to by @Handle, or on a new handle if it points to
NULL
@param Handle Pointer to the handle to install the protocols
on, may point to a NULL handle.
@param GrantTableAddress The address of the Xen grant table
@retval EFI_SUCCESS Protocols were installed successfully
@retval EFI_OUT_OF_RESOURCES The function failed to allocate memory required
by the XenIo MMIO and device path protocols
@return Status code returned by the boot service
InstallMultipleProtocolInterfaces ()
**/
EFI_STATUS
XenIoMmioInstall (
IN OUT EFI_HANDLE *Handle,
IN EFI_PHYSICAL_ADDRESS GrantTableAddress
);
/**
Uninstall the XENBUS_ROOT_DEVICE_PATH and XENIO_PROTOCOL protocols
@param Handle Handle onto which the protocols have been installed
earlier by XenIoMmioInstall ()
@retval EFI_SUCCESS Protocols were uninstalled successfully
@return Status code returned by the boot service
UninstallMultipleProtocolInterfaces ()
**/
EFI_STATUS
XenIoMmioUninstall (
IN EFI_HANDLE Handle
);
#endif