[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [win-pv-devel] [PATCH 1/2] Update cache_interface header


  • To: Owen Smith <owen.smith@xxxxxxxxxx>, "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
  • Date: Wed, 10 Jul 2019 19:16:25 +0000
  • Accept-language: en-GB, en-US
  • Authentication-results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=Paul.Durrant@xxxxxxxxxx; spf=Pass smtp.mailfrom=Paul.Durrant@xxxxxxxxxx; spf=None smtp.helo=postmaster@xxxxxxxxxxxxxxx
  • Cc: Owen Smith <owen.smith@xxxxxxxxxx>
  • Delivery-date: Wed, 10 Jul 2019 19:16:36 +0000
  • Ironport-sdr: jQU5gEmD94mBWAIil07hyIu/zumAdajPH9kltcX6penEC9vXawnK6Colwp6oIIvnfFwB/kEbIc 2/YuqMmarGk7L3NNzK2HI3+uLQ5NpMAsNc2H9cKP4YwIuklkXJ+ZUdXKAx6pkUwKzDQNwxlKUc xFnMnjP16jXvHnyOC84HEbi9j4jWT5TxroM2q/uh6oqs5KYFX9/ipQE2E87l3R8tAqRTycL0fL 4Ka+nndZisu+jxoAWNRo3+Ldsj1upXK7a5O3yqD+PqVL6BN4Q0f2fY4EPqvQWMh0Hgq/dDFyVw Ui8=
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
  • Thread-index: AQHVNaQ7yGJaXAzshUepytwL950ToabEObQA
  • Thread-topic: [win-pv-devel] [PATCH 1/2] Update cache_interface header

> -----Original Message-----
> From: win-pv-devel <win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx> On Behalf Of 
> Owen Smith
> Sent: 08 July 2019 10:45
> To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Owen Smith <owen.smith@xxxxxxxxxx>
> Subject: [win-pv-devel] [PATCH 1/2] Update cache_interface header
> 
> Requires bumping the INF revision and revision table

Actually XENNET doesn't use the cache interface any more, but it's harder to 
stop exposing it... So,

Acked-by: Paul Durrant <paul.durrant@xxxxxxxxxx>

> 
> Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
> ---
>  include/cache_interface.h | 34 ++++++++++++++++++++++++++++++++--
>  include/revision.h        |  3 ++-
>  src/xenvif.inf            |  6 +++---
>  src/xenvif/receiver.c     |  2 ++
>  src/xenvif/transmitter.c  |  5 +++++
>  5 files changed, 44 insertions(+), 6 deletions(-)
> 
> diff --git a/include/cache_interface.h b/include/cache_interface.h
> index dae3ac6..ce50f4e 100644
> --- a/include/cache_interface.h
> +++ b/include/cache_interface.h
> @@ -123,6 +123,20 @@ typedef VOID
>      IN  PVOID   Argument
>      );
> 
> +typedef NTSTATUS
> +(*XENBUS_CACHE_CREATE_V1)(
> +    IN  PINTERFACE                  Interface,
> +    IN  const CHAR                  *Name,
> +    IN  ULONG                       Size,
> +    IN  ULONG                       Reservation,
> +    IN  XENBUS_CACHE_CTOR           Ctor,
> +    IN  XENBUS_CACHE_DTOR           Dtor,
> +    IN  XENBUS_CACHE_ACQUIRE_LOCK   AcquireLock,
> +    IN  XENBUS_CACHE_RELEASE_LOCK   ReleaseLock,
> +    IN  PVOID                       Argument OPTIONAL,
> +    OUT PXENBUS_CACHE               *Cache
> +    );
> +
>  /*! \typedef XENBUS_CACHE_CREATE
>      \brief Create a cache of objects of the given \a Size
> 
> @@ -130,6 +144,7 @@ typedef VOID
>      \param Name A name for the cache which will be used in debug output
>      \param Size The size of each object in bytes
>      \param Reservation The target minimum population of the cache
> +    \param Cap The maximum population of the cache
>      \param Ctor A callback which is invoked when a new object created
>      \param Dtor A callback which is invoked when an object is destroyed
>      \param AcquireLock A callback invoked to acquire a spinlock
> @@ -146,6 +161,7 @@ typedef NTSTATUS
>      IN  const CHAR                  *Name,
>      IN  ULONG                       Size,
>      IN  ULONG                       Reservation,
> +    IN  ULONG                       Cap,
>      IN  XENBUS_CACHE_CTOR           Ctor,
>      IN  XENBUS_CACHE_DTOR           Dtor,
>      IN  XENBUS_CACHE_ACQUIRE_LOCK   AcquireLock,
> @@ -208,6 +224,20 @@ DEFINE_GUID(GUID_XENBUS_CACHE_INTERFACE,
>      \ingroup interfaces
>  */
>  struct _XENBUS_CACHE_INTERFACE_V1 {
> +    INTERFACE               Interface;
> +    XENBUS_CACHE_ACQUIRE    CacheAcquire;
> +    XENBUS_CACHE_RELEASE    CacheRelease;
> +    XENBUS_CACHE_CREATE_V1  CacheCreateVersion1;
> +    XENBUS_CACHE_GET        CacheGet;
> +    XENBUS_CACHE_PUT        CachePut;
> +    XENBUS_CACHE_DESTROY    CacheDestroy;
> +};
> +
> +/*! \struct _XENBUS_CACHE_INTERFACE_V2
> +    \brief CACHE interface version 1
> +    \ingroup interfaces
> +*/
> +struct _XENBUS_CACHE_INTERFACE_V2 {
>      INTERFACE               Interface;
>      XENBUS_CACHE_ACQUIRE    CacheAcquire;
>      XENBUS_CACHE_RELEASE    CacheRelease;
> @@ -217,7 +247,7 @@ struct _XENBUS_CACHE_INTERFACE_V1 {
>      XENBUS_CACHE_DESTROY    CacheDestroy;
>  };
> 
> -typedef struct _XENBUS_CACHE_INTERFACE_V1 XENBUS_CACHE_INTERFACE, 
> *PXENBUS_CACHE_INTERFACE;
> +typedef struct _XENBUS_CACHE_INTERFACE_V2 XENBUS_CACHE_INTERFACE, 
> *PXENBUS_CACHE_INTERFACE;
> 
>  /*! \def XENBUS_CACHE
>      \brief Macro at assist in method invocation
> @@ -228,6 +258,6 @@ typedef struct _XENBUS_CACHE_INTERFACE_V1 
> XENBUS_CACHE_INTERFACE, *PXENBUS_CACHE
>  #endif  // _WINDLL
> 
>  #define XENBUS_CACHE_INTERFACE_VERSION_MIN  1
> -#define XENBUS_CACHE_INTERFACE_VERSION_MAX  1
> +#define XENBUS_CACHE_INTERFACE_VERSION_MAX  2
> 
>  #endif  // _XENBUS_CACHE_INTERFACE_H
> diff --git a/include/revision.h b/include/revision.h
> index 9382e43..39476b2 100644
> --- a/include/revision.h
> +++ b/include/revision.h
> @@ -43,6 +43,7 @@
>      DEFINE_REVISION(0x0800000B,  1,  6,  2,  1),    \
>      DEFINE_REVISION(0x0800000C,  1,  7,  2,  1),    \
>      DEFINE_REVISION(0x0800000D,  1,  8,  2,  1),    \
> -    DEFINE_REVISION(0x09000000,  1,  8,  2,  1)
> +    DEFINE_REVISION(0x09000000,  1,  8,  2,  1),    \
> +    DEFINE_REVISION(0x09000001,  2,  8,  2,  1)
> 
>  #endif  // _REVISION_H
> diff --git a/src/xenvif.inf b/src/xenvif.inf
> index e2fd633..ee7ccdc 100644
> --- a/src/xenvif.inf
> +++ b/src/xenvif.inf
> @@ -59,9 +59,9 @@ 
> xenvif_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll
>  ; DisplayName                Section         DeviceID
>  ; -----------                -------         --------
> 
> -%XenVifName%         =XenVif_Inst,
>       XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_VIF&REV_09000004
> -%XenVifName%         =XenVif_Inst,   
> XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_VIF&REV_09000004
> -%XenVifName%         =XenVif_Inst,   
> XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_VIF&REV_09000004
> +%XenVifName%         =XenVif_Inst,
>       XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_VIF&REV_09000005
> +%XenVifName%         =XenVif_Inst,   
> XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_VIF&REV_09000005
> +%XenVifName%         =XenVif_Inst,   
> XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_VIF&REV_09000005
> 
>  [XenVif_Inst]
>  CopyFiles=XenVif_Copyfiles
> diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
> index 32bc424..7125743 100644
> --- a/src/xenvif/receiver.c
> +++ b/src/xenvif/receiver.c
> @@ -2454,6 +2454,7 @@ __ReceiverRingInitialize(
>                            Name,
>                            sizeof (XENVIF_RECEIVER_PACKET),
>                            0,
> +                          0,
>                            ReceiverPacketCtor,
>                            ReceiverPacketDtor,
>                            ReceiverRingAcquireLock,
> @@ -2479,6 +2480,7 @@ __ReceiverRingInitialize(
>                            Name,
>                            sizeof (XENVIF_RECEIVER_FRAGMENT),
>                            0,
> +                          0,
>                            ReceiverFragmentCtor,
>                            ReceiverFragmentDtor,
>                            ReceiverRingAcquireLock,
> diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
> index a5e2e72..6a4db1f 100644
> --- a/src/xenvif/transmitter.c
> +++ b/src/xenvif/transmitter.c
> @@ -3445,6 +3445,7 @@ __TransmitterRingInitialize(
>                            Name,
>                            sizeof (XENVIF_TRANSMITTER_BUFFER),
>                            0,
> +                          0,
>                            TransmitterBufferCtor,
>                            TransmitterBufferDtor,
>                            TransmitterRingAcquireLock,
> @@ -3470,6 +3471,7 @@ __TransmitterRingInitialize(
>                            Name,
>                            sizeof (XENVIF_TRANSMITTER_MULTICAST_CONTROL),
>                            0,
> +                          0,
>                            TransmitterMulticastControlCtor,
>                            TransmitterMulticastControlDtor,
>                            TransmitterRingAcquireLock,
> @@ -3521,6 +3523,7 @@ __TransmitterRingInitialize(
>                            Name,
>                            sizeof (XENVIF_TRANSMITTER_FRAGMENT),
>                            0,
> +                          0,
>                            TransmitterFragmentCtor,
>                            TransmitterFragmentDtor,
>                            TransmitterRingAcquireLock,
> @@ -3546,6 +3549,7 @@ __TransmitterRingInitialize(
>                            Name,
>                            sizeof (XENVIF_TRANSMITTER_REQUEST),
>                            0,
> +                          0,
>                            TransmitterRequestCtor,
>                            TransmitterRequestDtor,
>                            TransmitterRingAcquireLock,
> @@ -4536,6 +4540,7 @@ TransmitterInitialize(
>                            Name,
>                            sizeof (XENVIF_TRANSMITTER_PACKET),
>                            XENVIF_PACKET_CACHE_RESERVATION,
> +                          0,
>                            TransmitterPacketCtor,
>                            TransmitterPacketDtor,
>                            TransmitterPacketAcquireLock,
> --
> 2.16.2.windows.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@xxxxxxxxxxxxxxxxxxxx
> https://lists.xenproject.org/mailman/listinfo/win-pv-devel
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/win-pv-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.