| /** @file | |
| Definitions for the VirtIo MMIO Device Library | |
| Copyright (C) 2013, ARM Ltd | |
| This program and the accompanying materials are licensed and made available | |
| under the terms and conditions of the BSD License which accompanies this | |
| distribution. The full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT | |
| WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| **/ | |
| #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_ |