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