[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 00/19] Introducing Xen PV block driver to OVMF
Hi all, This patch series is implementing the necessary in order to access a PV block device. For that, one need a XenStore client, a XenBus client, and the PV block driver. There are two new drivers, XenbusDxe and XenPvBlkDxe. The first one implement a bus drivers, and the second is a block drivers. The GUID for the drivers XenBusDxe and XenPvBlkDxe and for the protocol XenBus have been genereted using the UefiDriverWizard. * Change in V4: - new file OvmfPkg/Include/IndustryStandard/Xen/README in the patch "OvmfPkg: Add public headers from Xen Project." which is mostly a copy/past of the patch description. - Added a brief description for both driver in the .inf file. - And replaced the BSD-2 license text in file headers by the commonly used file header text. * Change in V3: - 32bit support: It's done by adding a few #ifdef __i386__; #pragma pack(4); when necessary in the Xen headers. More detail about this in the description of the patch "OvmfPkg: Add public headers from Xen Project". - Licenses: The MIT licence is added to the OvmfPkg/Licence.txt file, with a mentions of which directories might use them. This is the first patch, "OvmfPkg: Add the MIT license to License.txt". Other changes have been listed after a '---' line in every patches. Anthony PERARD (19): OvmfPkg: Add the MIT license to License.txt. OvmfPkg: Add public headers from Xen Project. OvmfPkg: Add basic skeleton for the XenBus bus driver. OvmfPkg/XenBusDxe: Add device state struct and create an ExitBoot services event. OvmfPkg/XenBusDxe: Add support to make Xen Hypercalls. OvmfPkg/XenBusDxe: Open PciIo protocol. OvmfPkg: Introduce XenBus Protocol. OvmfPkg/XenBusDxe: Add InterlockedCompareExchange16. OvmfPkg/XenBusDxe: Add Grant Table functions. OvmfPkg/XenBusDxe: Add Event Channel Notify. OvmfPkg/XenBusDxe: Add TestAndClearBit. OvmfPkg/XenBusDxe: Add XenStore client implementation OvmfPkg/XenBusDxe: Add an helper AsciiStrDup. OvmfPkg/XenBusDxe: Add XenStore function into the XenBus protocol OvmfPkg/XenBusDxe: Indroduce XenBus support itself. OvmfPkg/XenBusDxe: Add Event Channel into XenBus protocol. OvmfPkg/XenPvBlkDxe: Xen PV Block device, initial skeleton OvmfPkg/XenPvBlkDxe: Add BlockFront client. OvmfPkg/XenPvBlkDxe: Add BlockIo. OvmfPkg/Include/IndustryStandard/Xen/README | 34 + .../IndustryStandard/Xen/arch-x86/xen-x86_32.h | 59 + .../IndustryStandard/Xen/arch-x86/xen-x86_64.h | 59 + .../Include/IndustryStandard/Xen/arch-x86/xen.h | 112 ++ .../Include/IndustryStandard/Xen/event_channel.h | 118 ++ OvmfPkg/Include/IndustryStandard/Xen/grant_table.h | 444 ++++++ OvmfPkg/Include/IndustryStandard/Xen/hvm/hvm_op.h | 37 + OvmfPkg/Include/IndustryStandard/Xen/hvm/params.h | 150 ++ OvmfPkg/Include/IndustryStandard/Xen/io/blkif.h | 619 ++++++++ .../Include/IndustryStandard/Xen/io/protocols.h | 40 + OvmfPkg/Include/IndustryStandard/Xen/io/ring.h | 312 ++++ OvmfPkg/Include/IndustryStandard/Xen/io/xenbus.h | 80 + OvmfPkg/Include/IndustryStandard/Xen/io/xs_wire.h | 149 ++ OvmfPkg/Include/IndustryStandard/Xen/memory.h | 94 ++ OvmfPkg/Include/IndustryStandard/Xen/xen-compat.h | 44 + OvmfPkg/Include/IndustryStandard/Xen/xen.h | 341 +++++ OvmfPkg/Include/Protocol/XenBus.h | 432 ++++++ OvmfPkg/License.txt | 25 + OvmfPkg/OvmfPkg.dec | 1 + OvmfPkg/OvmfPkgIa32.dsc | 2 + OvmfPkg/OvmfPkgIa32.fdf | 2 + OvmfPkg/OvmfPkgIa32X64.dsc | 2 + OvmfPkg/OvmfPkgIa32X64.fdf | 2 + OvmfPkg/OvmfPkgX64.dsc | 2 + OvmfPkg/OvmfPkgX64.fdf | 2 + OvmfPkg/XenBusDxe/ComponentName.c | 174 +++ OvmfPkg/XenBusDxe/ComponentName.h | 94 ++ OvmfPkg/XenBusDxe/DriverBinding.h | 128 ++ OvmfPkg/XenBusDxe/EventChannel.c | 88 ++ OvmfPkg/XenBusDxe/EventChannel.h | 88 ++ OvmfPkg/XenBusDxe/GrantTable.c | 217 +++ OvmfPkg/XenBusDxe/GrantTable.h | 77 + OvmfPkg/XenBusDxe/Helpers.c | 9 + .../XenBusDxe/Ia32/InterlockedCompareExchange16.S | 15 + .../Ia32/InterlockedCompareExchange16.asm | 45 + OvmfPkg/XenBusDxe/Ia32/TestAndClearBit.S | 13 + OvmfPkg/XenBusDxe/Ia32/TestAndClearBit.asm | 17 + OvmfPkg/XenBusDxe/Ia32/hypercall.S | 22 + OvmfPkg/XenBusDxe/Ia32/hypercall.asm | 26 + OvmfPkg/XenBusDxe/InterlockedCompareExchange16.c | 33 + OvmfPkg/XenBusDxe/InterlockedCompareExchange16.h | 38 + .../XenBusDxe/X64/InterlockedCompareExchange16.S | 13 + .../XenBusDxe/X64/InterlockedCompareExchange16.asm | 41 + OvmfPkg/XenBusDxe/X64/TestAndClearBit.S | 12 + OvmfPkg/XenBusDxe/X64/TestAndClearBit.asm | 16 + OvmfPkg/XenBusDxe/X64/hypercall.S | 22 + OvmfPkg/XenBusDxe/X64/hypercall.asm | 26 + OvmfPkg/XenBusDxe/XenBus.c | 375 +++++ OvmfPkg/XenBusDxe/XenBus.h | 44 + OvmfPkg/XenBusDxe/XenBusDxe.c | 481 ++++++ OvmfPkg/XenBusDxe/XenBusDxe.h | 143 ++ OvmfPkg/XenBusDxe/XenBusDxe.inf | 89 ++ OvmfPkg/XenBusDxe/XenHypercall.c | 118 ++ OvmfPkg/XenBusDxe/XenHypercall.h | 115 ++ OvmfPkg/XenBusDxe/XenStore.c | 1550 ++++++++++++++++++++ OvmfPkg/XenBusDxe/XenStore.h | 379 +++++ OvmfPkg/XenPvBlkDxe/BlockFront.c | 647 ++++++++ OvmfPkg/XenPvBlkDxe/BlockFront.h | 101 ++ OvmfPkg/XenPvBlkDxe/BlockIo.c | 274 ++++ OvmfPkg/XenPvBlkDxe/BlockIo.h | 108 ++ OvmfPkg/XenPvBlkDxe/ComponentName.c | 176 +++ OvmfPkg/XenPvBlkDxe/ComponentName.h | 94 ++ OvmfPkg/XenPvBlkDxe/DriverBinding.h | 143 ++ OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.c | 394 +++++ OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h | 83 ++ OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf | 63 + 66 files changed, 9753 insertions(+) create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/README create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/xen-x86_32.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/xen-x86_64.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/xen.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/event_channel.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/grant_table.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/hvm/hvm_op.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/hvm/params.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/blkif.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/protocols.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/ring.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/xenbus.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/io/xs_wire.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/memory.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/xen-compat.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/xen.h create mode 100644 OvmfPkg/Include/Protocol/XenBus.h create mode 100644 OvmfPkg/XenBusDxe/ComponentName.c create mode 100644 OvmfPkg/XenBusDxe/ComponentName.h create mode 100644 OvmfPkg/XenBusDxe/DriverBinding.h create mode 100644 OvmfPkg/XenBusDxe/EventChannel.c create mode 100644 OvmfPkg/XenBusDxe/EventChannel.h create mode 100644 OvmfPkg/XenBusDxe/GrantTable.c create mode 100644 OvmfPkg/XenBusDxe/GrantTable.h create mode 100644 OvmfPkg/XenBusDxe/Helpers.c create mode 100644 OvmfPkg/XenBusDxe/Ia32/InterlockedCompareExchange16.S create mode 100644 OvmfPkg/XenBusDxe/Ia32/InterlockedCompareExchange16.asm create mode 100644 OvmfPkg/XenBusDxe/Ia32/TestAndClearBit.S create mode 100644 OvmfPkg/XenBusDxe/Ia32/TestAndClearBit.asm create mode 100644 OvmfPkg/XenBusDxe/Ia32/hypercall.S create mode 100644 OvmfPkg/XenBusDxe/Ia32/hypercall.asm create mode 100644 OvmfPkg/XenBusDxe/InterlockedCompareExchange16.c create mode 100644 OvmfPkg/XenBusDxe/InterlockedCompareExchange16.h create mode 100644 OvmfPkg/XenBusDxe/X64/InterlockedCompareExchange16.S create mode 100644 OvmfPkg/XenBusDxe/X64/InterlockedCompareExchange16.asm create mode 100644 OvmfPkg/XenBusDxe/X64/TestAndClearBit.S create mode 100644 OvmfPkg/XenBusDxe/X64/TestAndClearBit.asm create mode 100644 OvmfPkg/XenBusDxe/X64/hypercall.S create mode 100644 OvmfPkg/XenBusDxe/X64/hypercall.asm create mode 100644 OvmfPkg/XenBusDxe/XenBus.c create mode 100644 OvmfPkg/XenBusDxe/XenBus.h create mode 100644 OvmfPkg/XenBusDxe/XenBusDxe.c create mode 100644 OvmfPkg/XenBusDxe/XenBusDxe.h create mode 100644 OvmfPkg/XenBusDxe/XenBusDxe.inf create mode 100644 OvmfPkg/XenBusDxe/XenHypercall.c create mode 100644 OvmfPkg/XenBusDxe/XenHypercall.h create mode 100644 OvmfPkg/XenBusDxe/XenStore.c create mode 100644 OvmfPkg/XenBusDxe/XenStore.h create mode 100644 OvmfPkg/XenPvBlkDxe/BlockFront.c create mode 100644 OvmfPkg/XenPvBlkDxe/BlockFront.h create mode 100644 OvmfPkg/XenPvBlkDxe/BlockIo.c create mode 100644 OvmfPkg/XenPvBlkDxe/BlockIo.h create mode 100644 OvmfPkg/XenPvBlkDxe/ComponentName.c create mode 100644 OvmfPkg/XenPvBlkDxe/ComponentName.h create mode 100644 OvmfPkg/XenPvBlkDxe/DriverBinding.h create mode 100644 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.c create mode 100644 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h create mode 100644 OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf -- Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |