Re: [edk2] [PATCH v3 15/19] OvmfPkg/XenBusDxe: Indroduce XenBus support itself.

Subject: Re: [edk2] [PATCH v3 15/19] OvmfPkg/XenBusDxe: Indroduce XenBus support itself.

From: Jordan Justen <jordan.l.justen@intel.com>

To: <edk2-devel@lists.sourceforge.net>, Anthony PERARD <anthony.perard@citrix.com>

Date: 2014-10-20 01:20:45

On 2014-10-17 10:03:58, Anthony PERARD wrote:
> This is a bus-like on top of XenStore. It will look for advertised
> ParaVirtualized devices and initialize them by producing XenBus
> protocol.
> 
> Origin: FreeBSD 10.0
> 
> License: This patch adds XenBus.c which is under the MIT licence.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Anthony PERARD 
> 
> ---
> Change in V3:
> - Insert to ChildList later, once populated.
> - Remove XENBUS_XENSTORE_NODE macro.
> - add comment to XenBusAddDevice and XenBusEnumerateBus about
>   concurrency calls.
> - Add a description to the introduced member to the protocol.
> 
> Change in V2:
> - comment, file header
> - Fix comment style
> - Error handling in the main init function
> - coding style
> - Fix error path in add device.
> ---
>  OvmfPkg/Include/Protocol/XenBus.h |  19 ++
>  OvmfPkg/XenBusDxe/XenBus.c        | 372 ++++++++++++++++++++++++++++++++++++++
>  OvmfPkg/XenBusDxe/XenBus.h        |  64 +++++++
>  OvmfPkg/XenBusDxe/XenBusDxe.c     |  66 +++++++
>  OvmfPkg/XenBusDxe/XenBusDxe.h     |  19 ++
>  OvmfPkg/XenBusDxe/XenBusDxe.inf   |   3 +
>  6 files changed, 543 insertions(+)
>  create mode 100644 OvmfPkg/XenBusDxe/XenBus.c
>  create mode 100644 OvmfPkg/XenBusDxe/XenBus.h

> diff --git a/OvmfPkg/XenBusDxe/XenBus.h b/OvmfPkg/XenBusDxe/XenBus.h
> new file mode 100644
> index 0000000..7ff25c3
> --- /dev/null
> +++ b/OvmfPkg/XenBusDxe/XenBus.h
> @@ -0,0 +1,64 @@
> +/** @file
> +  Core definitions and data structures shareable across OS platforms.
> +
> +  Copyright (c) 2010 Spectra Logic Corporation
> +  Copyright (C) 2008 Doug Rabson
> +  All rights reserved.
> +  Copyright (C) 2014, Citrix Ltd.
> +
> +  Redistribution and use in source and binary forms, with or without
> +  modification, are permitted provided that the following conditions
> +  are met:
> +  1. Redistributions of source code must retain the above copyright
> +     notice, this list of conditions, and the following disclaimer,
> +     without modification.
> +  2. Redistributions in binary form must reproduce at minimum a disclaimer
> +     substantially similar to the "NO WARRANTY" disclaimer below
> +     ("Disclaimer") and any redistribution must be conditioned upon
> +     including a substantially similar Disclaimer requirement for further
> +     binary redistribution.
> +
> +  NO WARRANTY
> +  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> +  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> +  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
> +  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> +  HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> +  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> +  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> +  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
> +  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
> +  IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> +  POSSIBILITY OF SUCH DAMAGES.

What is this license?

The code below appears to have been written just for EDK II, so maybe
just use the standard EDK II license header?

-Jordan

> +
> +**/
> +#ifndef _XEN_XENBUS_XENBUSB_H
> +#define _XEN_XENBUS_XENBUSB_H
> +
> +#include "XenBusDxe.h"
> +
> +#define XENBUS_DEVICE_PATH_TYPE_VBD 0x1
> +struct _XENBUS_DEVICE_PATH {
> +  VENDOR_DEVICE_PATH  Vendor;
> +  UINT8               Type;
> +  UINT16              DeviceId;
> +};
> +
> +
> +/**
> +  Perform XenBus bus enumeration and install protocol for children.
> +
> +  Caller should ensure that it is the only one to call this function. This
> +  function cannot be called concurrently.
> +
> +  @param Dev   The NewBus device representing this XenBus bus.
> +
> +  @return      On success, XENSTORE_STATUS_SUCCESS. Otherwise an errno value
> +               indicating the type of failure.
> +**/
> +XENSTORE_STATUS
> +XenBusEnumerateBus (
> +  XENBUS_DEVICE *Dev
> +  );
> +
> +#endif /* _XEN_XENBUS_XENBUSB_H */

------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel