/** @file Definitions for the VirtIo MMIO Device Library Copyright (C) 2013, ARM Ltd SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _VIRTIO_MMIO_DEVICE_LIB_H_ #define _VIRTIO_MMIO_DEVICE_LIB_H_ /** Initialize VirtIo Device and Install VIRTIO_DEVICE_PROTOCOL protocol @param[in] BaseAddress Base Address of the VirtIo MMIO Device @param[in] Handle Handle of the device the driver should be attached to. @retval EFI_SUCCESS The VirtIo Device has been installed successfully. @retval EFI_OUT_OF_RESOURCES The function failed to allocate memory required by the Virtio MMIO device initialization. @retval EFI_UNSUPPORTED BaseAddress does not point to a VirtIo MMIO device. @return Status code returned by InstallProtocolInterface Boot Service function. **/ EFI_STATUS VirtioMmioInstallDevice ( IN PHYSICAL_ADDRESS BaseAddress, IN EFI_HANDLE Handle ); /** Uninstall the VirtIo Device @param[in] Handle Handle of the device where the VirtIo Device protocol should have been installed. @retval EFI_SUCCESS The device has been un-initialized successfully. @return Status code returned by UninstallProtocolInterface Boot Service function. **/ EFI_STATUS VirtioMmioUninstallDevice ( IN EFI_HANDLE Handle ); #endif // _VIRTIO_MMIO_DEVICE_LIB_H_