]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/Include/Library/VirtioMmioDeviceLib.h
OvmfPkg/VirtioMmioDeviceLib: Implement VIRTIO_DEVICE_PROTOCOL for VirtIo Devices...
[mirror_edk2.git] / OvmfPkg / Include / Library / VirtioMmioDeviceLib.h
1 /** @file
2
3 Definitions for the VirtIo MMIO Device Library
4
5 Copyright (C) 2013, ARM Ltd
6
7 This program and the accompanying materials are licensed and made available
8 under the terms and conditions of the BSD License which accompanies this
9 distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
11
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
13 WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15 **/
16
17 #ifndef _VIRTIO_MMIO_DEVICE_LIB_H_
18 #define _VIRTIO_MMIO_DEVICE_LIB_H_
19
20 /**
21
22 Initialize VirtIo Device and Install VIRTIO_DEVICE_PROTOCOL protocol
23
24 @param[in] BaseAddress Base Address of the VirtIo MMIO Device
25
26 @param[in] Handle Handle of the device the driver should be attached
27 to.
28
29 @retval EFI_SUCCESS The VirtIo Device has been installed
30 successfully.
31
32 @retval EFI_OUT_OF_RESOURCES The function failed to allocate memory required
33 by the Virtio MMIO device initialization.
34
35 @retval EFI_UNSUPPORTED BaseAddress does not point to a VirtIo MMIO
36 device.
37
38 @return Status code returned by InstallProtocolInterface
39 Boot Service function.
40
41 **/
42 EFI_STATUS
43 VirtioMmioInstallDevice (
44 IN PHYSICAL_ADDRESS BaseAddress,
45 IN EFI_HANDLE Handle
46 );
47
48 /**
49
50 Uninstall the VirtIo Device
51
52 @param[in] Handle Handle of the device where the VirtIo Device protocol
53 should have been installed.
54
55 @retval EFI_SUCCESS The device has been un-initialized successfully.
56
57 @return Status code returned by UninstallProtocolInterface
58 Boot Service function.
59
60 **/
61 EFI_STATUS
62 VirtioMmioUninstallDevice (
63 IN EFI_HANDLE Handle
64 );
65
66 #endif // _VIRTIO_MMIO_DEVICE_LIB_H_