[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 00/18] 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. There are still a bit of work to be done on this series, especially the comment in the code, but I'd like your comment on this patch series. Anthony PERARD (18): OvmfPkg: Add public headers from Xen Project. OvmfPkg: Add basic skeleton for the Xenbus 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. .../IndustryStandard/Xen/arch-x86/xen-x86_32.h | 171 +++ .../IndustryStandard/Xen/arch-x86/xen-x86_64.h | 202 +++ .../Include/IndustryStandard/Xen/arch-x86/xen.h | 273 ++++ .../Include/IndustryStandard/Xen/event_channel.h | 381 +++++ OvmfPkg/Include/IndustryStandard/Xen/grant_table.h | 662 +++++++++ OvmfPkg/Include/IndustryStandard/Xen/hvm/hvm_op.h | 275 ++++ OvmfPkg/Include/IndustryStandard/Xen/hvm/params.h | 150 ++ OvmfPkg/Include/IndustryStandard/Xen/io/blkif.h | 608 ++++++++ .../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 | 138 ++ OvmfPkg/Include/IndustryStandard/Xen/memory.h | 480 +++++++ OvmfPkg/Include/IndustryStandard/Xen/sched.h | 174 +++ OvmfPkg/Include/IndustryStandard/Xen/trace.h | 310 +++++ OvmfPkg/Include/IndustryStandard/Xen/xen-compat.h | 44 + OvmfPkg/Include/IndustryStandard/Xen/xen.h | 897 ++++++++++++ OvmfPkg/Include/Protocol/Xenbus.h | 231 +++ OvmfPkg/OvmfPkg.dec | 2 + OvmfPkg/OvmfPkgX64.dsc | 2 + OvmfPkg/OvmfPkgX64.fdf | 2 + OvmfPkg/XenPvBlkDxe/BlockFront.c | 583 ++++++++ OvmfPkg/XenPvBlkDxe/BlockFront.h | 88 ++ OvmfPkg/XenPvBlkDxe/BlockIo.c | 256 ++++ OvmfPkg/XenPvBlkDxe/BlockIo.h | 109 ++ OvmfPkg/XenPvBlkDxe/ComponentName.c | 160 +++ OvmfPkg/XenPvBlkDxe/ComponentName.h | 91 ++ OvmfPkg/XenPvBlkDxe/DriverBinding.h | 139 ++ OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.c | 388 ++++++ OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h | 83 ++ OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf | 61 + OvmfPkg/XenbusDxe/ComponentName.c | 160 +++ OvmfPkg/XenbusDxe/ComponentName.h | 91 ++ OvmfPkg/XenbusDxe/DriverBinding.h | 139 ++ OvmfPkg/XenbusDxe/EventChannel.c | 71 + OvmfPkg/XenbusDxe/EventChannel.h | 40 + OvmfPkg/XenbusDxe/GrantTable.c | 204 +++ OvmfPkg/XenbusDxe/GrantTable.h | 34 + OvmfPkg/XenbusDxe/Helpers.c | 9 + OvmfPkg/XenbusDxe/InterlockedCompareExchange16.h | 7 + .../XenbusDxe/X64/InterlockedCompareExchange16.c | 41 + OvmfPkg/XenbusDxe/X64/TestAndClearBit.S | 10 + OvmfPkg/XenbusDxe/X64/hypercall.S | 16 + OvmfPkg/XenbusDxe/X64/hypercall.asm | 19 + OvmfPkg/XenbusDxe/XenBus.c | 363 +++++ OvmfPkg/XenbusDxe/XenBus.h | 76 + OvmfPkg/XenbusDxe/XenHypercall.c | 101 ++ OvmfPkg/XenbusDxe/XenHypercall.h | 44 + OvmfPkg/XenbusDxe/XenbusDxe.c | 452 ++++++ OvmfPkg/XenbusDxe/XenbusDxe.h | 131 ++ OvmfPkg/XenbusDxe/XenbusDxe.inf | 75 + OvmfPkg/XenbusDxe/Xenstore.c | 1472 ++++++++++++++++++++ OvmfPkg/XenbusDxe/Xenstore.h | 367 +++++ 53 files changed, 11314 insertions(+) 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/sched.h create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/trace.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/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 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/InterlockedCompareExchange16.h create mode 100644 OvmfPkg/XenbusDxe/X64/InterlockedCompareExchange16.c create mode 100644 OvmfPkg/XenbusDxe/X64/TestAndClearBit.S 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/XenHypercall.c create mode 100644 OvmfPkg/XenbusDxe/XenHypercall.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/Xenstore.c create mode 100644 OvmfPkg/XenbusDxe/Xenstore.h -- Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |