]> xenbits.xensource.com Git - people/pauldu/xenvif.git/commitdiff
Update to VIF Interface v2
authorOwen Smith <owen.smith@citrix.com>
Thu, 18 Dec 2014 14:28:22 +0000 (14:28 +0000)
committerPaul Durrant <paul.durrant@citrix.com>
Mon, 22 Dec 2014 14:17:15 +0000 (14:17 +0000)
Renames XENVIF_TRANSMITTER_PACKET to XENVIF_TRANSMITTER_PACKET_V1 and
adds XENVIF_TRANSMITTER_PACKET_V2 for future patches.
VIF v2 will be implemented in another patch.

Signed-off-by: Owen Smith <owen.smith@citrix.com>
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
include/vif_interface.h
src/xenvif/transmitter.c
src/xenvif/transmitter.h
src/xenvif/vif.c
src/xenvif/vif.h

index 498ed8feb1337bf85e4da501650b62f3fd8a1cf2..d083fd156e084045c84a20a7bf5f0f87a59cdcb1 100644 (file)
@@ -257,7 +257,7 @@ struct _XENVIF_TRANSMITTER_PACKET_V1 {
     };
 };
 
-typedef struct _XENVIF_TRANSMITTER_PACKET_V1 XENVIF_TRANSMITTER_PACKET, *PXENVIF_TRANSMITTER_PACKET;
+typedef struct _XENVIF_TRANSMITTER_PACKET_V1 XENVIF_TRANSMITTER_PACKET_V1, *PXENVIF_TRANSMITTER_PACKET_V1;
 
 #pragma warning(pop)
 
@@ -265,6 +265,30 @@ typedef struct _XENVIF_TRANSMITTER_PACKET_V1 XENVIF_TRANSMITTER_PACKET, *PXENVIF
 
 C_ASSERT(sizeof (struct _XENVIF_TRANSMITTER_PACKET_V1) <= (3 * sizeof (PVOID)));
 
+/*! \struct _XENVIF_TRANSMITTER_PACKET_V2
+    \brief Transmit-side packet structure (v2)
+*/
+struct _XENVIF_TRANSMITTER_PACKET_V2 {
+    /*! List entry used for chaining packets together */
+    LIST_ENTRY                                  ListEntry;
+    /*! Opaque cookie used to store context information for packet return */
+    PVOID                                       Cookie;
+    /*! Hash value set by subscriber */
+    ULONG                                       Value;
+    /*! Packet information passed from subscriber to provider */
+    XENVIF_TRANSMITTER_PACKET_SEND_INFO         Send;
+    /*! Packet information passed from provider to subscriber on packet return */
+    XENVIF_TRANSMITTER_PACKET_COMPLETION_INFO   Completion;
+    /*! Packet data MDL */
+    PMDL                                        Mdl;
+    /*! Offset into MDL to start of packet */
+    ULONG                                       Offset;
+    /*! Packet length */
+    ULONG                                       Length;
+};
+
+typedef struct _XENVIF_TRANSMITTER_PACKET_V2 XENVIF_TRANSMITTER_PACKET, *PXENVIF_TRANSMITTER_PACKET;
+
 /*! \enum _XENVIF_TRANSMITTER_PACKET_OFFSET
     \brief Offsets of packet metadata relative to
     XENVIF_TRANSMITTER_PACKET pointer
@@ -474,16 +498,44 @@ typedef NTSTATUS
     IN  LONG_PTR                            Value
     );
 
+/*! \typedef XENVIF_VIF_TRANSMITTER_GET_PACKET_HEADERS
+    \brief Get the packet headers into supplied buffer
+
+    \param Interface The interface header
+    \param Packet The packet to acquire headers for.
+    \param Headers The buffer to receive headers.
+    \param Info The offsets into Headers for relevant headers
+*/
+typedef NTSTATUS
+(*XENVIF_VIF_TRANSMITTER_GET_PACKET_HEADERS)(
+    IN  PINTERFACE                  Interface,
+    IN  PXENVIF_TRANSMITTER_PACKET  Packet,
+    OUT PVOID                       Headers,
+    OUT PXENVIF_PACKET_INFO         Info
+    );
+
 /*! \typedef XENVIF_VIF_TRANSMITTER_QUEUE_PACKETS
     \brief Queue transmit side packets at the provider
 
     \param Interface The interface header
-    \param Head The head of a chain of XENVIF_TRANSMITTER_PACKET
+    \param Head The head of a chain of _XENVIF_TRANSMITTER_PACKET_V1
 */
 typedef NTSTATUS
 (*XENVIF_VIF_TRANSMITTER_QUEUE_PACKETS)(
-    IN  PINTERFACE                  Interface,
-    IN  PXENVIF_TRANSMITTER_PACKET  Head
+    IN  PINTERFACE                      Interface,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   Head
+    );
+
+/*! \typedef XENVIF_VIF_TRANSMITTER_QUEUE_PACKETS_V2
+    \brief Queue transmit side packets at the provider
+
+    \param Interface The interface header
+    \param List List of _XENVIF_TRANSMITTER_PACKET_V2
+*/
+typedef NTSTATUS
+(*XENVIF_VIF_TRANSMITTER_QUEUE_PACKETS_V2)(
+    IN  PINTERFACE  Interface,
+    IN  PLIST_ENTRY List
     );
 
 /*! \typedef XENVIF_VIF_TRANSMITTER_QUERY_OFFLOAD_OPTIONS
@@ -708,7 +760,37 @@ struct _XENVIF_VIF_INTERFACE_V1 {
     XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
 };
 
-typedef struct _XENVIF_VIF_INTERFACE_V1 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
+
+/*! \struct _XENVIF_VIF_INTERFACE_V2
+    \brief VIF interface version 2
+    \ingroup interfaces
+*/
+struct _XENVIF_VIF_INTERFACE_V2 {
+    INTERFACE                                       Interface;
+    XENVIF_VIF_ACQUIRE                              Acquire;
+    XENVIF_VIF_RELEASE                              Release;
+    XENVIF_VIF_ENABLE                               Enable;
+    XENVIF_VIF_DISABLE                              Disable;
+    XENVIF_VIF_QUERY_STATISTIC                      QueryStatistic;
+    XENVIF_VIF_RECEIVER_RETURN_PACKETS              ReceiverReturnPackets;
+    XENVIF_VIF_RECEIVER_SET_OFFLOAD_OPTIONS         ReceiverSetOffloadOptions;
+    XENVIF_VIF_RECEIVER_QUERY_RING_SIZE             ReceiverQueryRingSize;
+    XENVIF_VIF_TRANSMITTER_GET_PACKET_HEADERS       TransmitterGetPacketHeaders;
+    XENVIF_VIF_TRANSMITTER_QUEUE_PACKETS_V2         TransmitterQueuePackets;
+    XENVIF_VIF_TRANSMITTER_QUERY_OFFLOAD_OPTIONS    TransmitterQueryOffloadOptions;
+    XENVIF_VIF_TRANSMITTER_QUERY_LARGE_PACKET_SIZE  TransmitterQueryLargePacketSize;
+    XENVIF_VIF_TRANSMITTER_QUERY_RING_SIZE          TransmitterQueryRingSize;
+    XENVIF_VIF_MAC_QUERY_STATE                      MacQueryState;
+    XENVIF_VIF_MAC_QUERY_MAXIMUM_FRAME_SIZE         MacQueryMaximumFrameSize;
+    XENVIF_VIF_MAC_QUERY_PERMANENT_ADDRESS          MacQueryPermanentAddress;
+    XENVIF_VIF_MAC_QUERY_CURRENT_ADDRESS            MacQueryCurrentAddress;
+    XENVIF_VIF_MAC_QUERY_MULTICAST_ADDRESSES        MacQueryMulticastAddresses;
+    XENVIF_VIF_MAC_SET_MULTICAST_ADDRESSES          MacSetMulticastAddresses;
+    XENVIF_VIF_MAC_SET_FILTER_LEVEL                 MacSetFilterLevel;
+    XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
+};
+
+typedef struct _XENVIF_VIF_INTERFACE_V2 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
 
 /*! \def XENVIF_VIF
     \brief Macro at assist in method invocation
@@ -719,6 +801,6 @@ typedef struct _XENVIF_VIF_INTERFACE_V1 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTER
 #endif  // _WINDLL
 
 #define XENVIF_VIF_INTERFACE_VERSION_MIN    1
-#define XENVIF_VIF_INTERFACE_VERSION_MAX    1
+#define XENVIF_VIF_INTERFACE_VERSION_MAX    2
 
 #endif  // _XENVIF_INTERFACE_H
index 6cba6c1203a8b2eaeaace9342bd5128e8d262cf6..826d2f0e2457d8bdd48d42cc53fcfd314358f7a6 100644 (file)
@@ -89,7 +89,7 @@ typedef struct _XENVIF_TRANSMITTER_FRAGMENT {
 #define XENVIF_TRANSMITTER_MAXIMUM_FRAGMENT_ID  0x03FF
 
 typedef struct _XENVIF_TRANSMITTER_STATE {
-    PXENVIF_TRANSMITTER_PACKET          Packet;
+    PXENVIF_TRANSMITTER_PACKET_V1       Packet;
     XENVIF_TRANSMITTER_PACKET_SEND_INFO Send;
     PUCHAR                              StartVa;
     XENVIF_PACKET_INFO                  Info;
@@ -101,8 +101,8 @@ typedef struct _XENVIF_TRANSMITTER_STATE {
 #define XENVIF_TRANSMITTER_RING_SIZE   (__CONST_RING_SIZE(netif_tx, PAGE_SIZE))
 
 typedef struct _XENVIF_TRANSMITTER_PACKET_LIST {
-    PXENVIF_TRANSMITTER_PACKET  HeadPacket;
-    PXENVIF_TRANSMITTER_PACKET  *TailPacket;
+    PXENVIF_TRANSMITTER_PACKET_V1   HeadPacket;
+    PXENVIF_TRANSMITTER_PACKET_V1   *TailPacket;
 } XENVIF_TRANSMITTER_PACKET_LIST, *PXENVIF_TRANSMITTER_PACKET_LIST;
 
 typedef struct _XENVIF_TRANSMITTER_RING {
@@ -122,7 +122,7 @@ typedef struct _XENVIF_TRANSMITTER_RING {
     BOOLEAN                         Connected;
     BOOLEAN                         Enabled;
     BOOLEAN                         Stopped;
-    PXENVIF_TRANSMITTER_PACKET      Lock;
+    PVOID                           Lock;
     PKTHREAD                        LockThread;
     XENVIF_TRANSMITTER_PACKET_LIST  Queued;
     XENVIF_TRANSMITTER_STATE        State;
@@ -557,7 +557,7 @@ __TransmitterRingCopyPayload(
     PXENVIF_TRANSMITTER             Transmitter;
     PXENVIF_FRONTEND                Frontend;
     PXENVIF_TRANSMITTER_STATE       State;
-    PXENVIF_TRANSMITTER_PACKET      Packet;
+    PXENVIF_TRANSMITTER_PACKET_V1   Packet;
     XENVIF_PACKET_PAYLOAD           Payload;
     PXENVIF_TRANSMITTER_FRAGMENT    Fragment;
     PXENVIF_TRANSMITTER_BUFFER      Buffer;
@@ -704,7 +704,7 @@ __TransmitterRingGrantPayload(
     PXENVIF_TRANSMITTER             Transmitter;
     PXENVIF_FRONTEND                Frontend;
     PXENVIF_TRANSMITTER_STATE       State;
-    PXENVIF_TRANSMITTER_PACKET      Packet;
+    PXENVIF_TRANSMITTER_PACKET_V1   Packet;
     PXENVIF_PACKET_PAYLOAD          Payload;
     PMDL                            Mdl;
     ULONG                           Offset;
@@ -853,7 +853,7 @@ __TransmitterRingPrepareHeader(
     PXENVIF_FRONTEND                Frontend;
     PXENVIF_MAC                     Mac;
     PXENVIF_TRANSMITTER_STATE       State;
-    PXENVIF_TRANSMITTER_PACKET      Packet;
+    PXENVIF_TRANSMITTER_PACKET_V1   Packet;
     PXENVIF_PACKET_PAYLOAD          Payload;
     PXENVIF_PACKET_INFO             Info;
     PXENVIF_TRANSMITTER_FRAGMENT    Fragment;
@@ -1130,7 +1130,7 @@ __TransmitterRingUnprepareFragments(
     while (State->Count != 0) {
         PLIST_ENTRY                     ListEntry;
         PXENVIF_TRANSMITTER_FRAGMENT    Fragment;
-        PXENVIF_TRANSMITTER_PACKET      Packet;
+        PXENVIF_TRANSMITTER_PACKET_V1   Packet;
 
         --State->Count;
 
@@ -1186,8 +1186,8 @@ __TransmitterRingUnprepareFragments(
 
 static FORCEINLINE NTSTATUS
 __TransmitterRingPreparePacket(
-    IN  PXENVIF_TRANSMITTER_RING    Ring,
-    IN  PXENVIF_TRANSMITTER_PACKET  Packet
+    IN  PXENVIF_TRANSMITTER_RING        Ring,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   Packet
     )
 {
 #define OFFSET_EXISTS(_Ring, _Packet, _Type)                                                        \
@@ -1338,13 +1338,13 @@ fail1:
 #undef  OFFSET_EXISTS
 }
 
-static FORCEINLINE PXENVIF_TRANSMITTER_PACKET
+static FORCEINLINE PXENVIF_TRANSMITTER_PACKET_V1
 __TransmitterRingUnpreparePacket(
     IN  PXENVIF_TRANSMITTER_RING    Ring
     )
 {
     PXENVIF_TRANSMITTER_STATE       State;
-    PXENVIF_TRANSMITTER_PACKET      Packet;
+    PXENVIF_TRANSMITTER_PACKET_V1   Packet;
 
     State = &Ring->State;
     Packet = State->Packet;
@@ -1703,7 +1703,7 @@ __TransmitterRingPostFragments(
     PXENVIF_TRANSMITTER             Transmitter;
     PXENVIF_FRONTEND                Frontend;
     PXENVIF_TRANSMITTER_STATE       State;
-    PXENVIF_TRANSMITTER_PACKET      Packet;
+    PXENVIF_TRANSMITTER_PACKET_V1   Packet;
     PXENVIF_PACKET_PAYLOAD          Payload;
     RING_IDX                        req_prod;
     RING_IDX                        rsp_cons;
@@ -1928,12 +1928,12 @@ __TransmitterRingFakeResponses(
 
 static FORCEINLINE VOID
 __TransmitterRingCompletePacket(
-    IN  PXENVIF_TRANSMITTER_RING    Ring,
-    IN  PXENVIF_TRANSMITTER_PACKET  Packet
+    IN  PXENVIF_TRANSMITTER_RING        Ring,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   Packet
     )
 {
-    PXENVIF_TRANSMITTER             Transmitter;
-    PXENVIF_FRONTEND                Frontend;
+    PXENVIF_TRANSMITTER                 Transmitter;
+    PXENVIF_FRONTEND                    Frontend;
 
     Transmitter = Ring->Transmitter;
     Frontend = Transmitter->Frontend;
@@ -2027,7 +2027,7 @@ TransmitterRingPoll(
             netif_tx_response_t             *rsp;
             uint16_t                        id;
             PXENVIF_TRANSMITTER_FRAGMENT    Fragment;
-            PXENVIF_TRANSMITTER_PACKET      Packet;
+            PXENVIF_TRANSMITTER_PACKET_V1   Packet;
 
             rsp = RING_GET_RESPONSE(&Ring->Front, rsp_cons);
             rsp_cons++;
@@ -2194,17 +2194,17 @@ __TransmitterRingPushRequests(
 
 static FORCEINLINE ULONG
 __TransmitterReversePacketList(
-    IN  PXENVIF_TRANSMITTER_PACKET  *Packet
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   *Packet
     )
 {
-    PXENVIF_TRANSMITTER_PACKET      HeadPacket;
-    ULONG                           Count;
+    PXENVIF_TRANSMITTER_PACKET_V1       HeadPacket;
+    ULONG                               Count;
 
     HeadPacket = NULL;
     Count = 0;
 
     while (*Packet != NULL) {
-        PXENVIF_TRANSMITTER_PACKET  Next;
+        PXENVIF_TRANSMITTER_PACKET_V1   Next;
 
         ASSERT(((ULONG_PTR)*Packet & XENVIF_TRANSMITTER_LOCK_BIT) == 0);
 
@@ -2229,8 +2229,8 @@ TransmitterRingSwizzle(
 {
     ULONG_PTR                       Old;
     ULONG_PTR                       New;
-    PXENVIF_TRANSMITTER_PACKET      HeadPacket;
-    PXENVIF_TRANSMITTER_PACKET      *TailPacket;
+    PXENVIF_TRANSMITTER_PACKET_V1   HeadPacket;
+    PXENVIF_TRANSMITTER_PACKET_V1   *TailPacket;
     ULONG                           Count;
 
     ASSERT3P(Ring->LockThread, ==, KeGetCurrentThread());
@@ -2270,8 +2270,8 @@ TransmitterRingSchedule(
     State = &Ring->State;
 
     for (;;) {
-        PXENVIF_TRANSMITTER_PACKET  Packet;
-        NTSTATUS                    status;
+        PXENVIF_TRANSMITTER_PACKET_V1   Packet;
+        NTSTATUS                        status;
 
         if (State->Count != 0) {
             status = __TransmitterRingPostFragments(Ring);
@@ -2365,6 +2365,20 @@ TransmitterRingSchedule(
     __TransmitterRingPushRequests(Ring);
 }
 
+static FORCEINLINE VOID
+__TransmitterReturnPackets(
+    IN  PXENVIF_TRANSMITTER             Transmitter,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   HeadPacket
+    )
+{
+    PXENVIF_FRONTEND    Frontend;
+
+    Frontend = Transmitter->Frontend;
+
+    VifTransmitterReturnPacketsV1(PdoGetVifContext(FrontendGetPdo(Frontend)),
+                                  HeadPacket);
+}
+
 static FORCEINLINE BOOLEAN
 __drv_requiresIRQL(DISPATCH_LEVEL)
 __TransmitterRingTryAcquireLock(
@@ -2462,8 +2476,8 @@ __TransmitterRingReleaseLock(
     IN  PXENVIF_TRANSMITTER_RING    Ring
     )
 {
-    PXENVIF_TRANSMITTER_PACKET      HeadPacket;
-    PXENVIF_TRANSMITTER_PACKET      *TailPacket;
+    PXENVIF_TRANSMITTER_PACKET_V1   HeadPacket;
+    PXENVIF_TRANSMITTER_PACKET_V1   *TailPacket;
     
     HeadPacket = NULL;
     TailPacket = &HeadPacket;
@@ -2488,13 +2502,11 @@ __TransmitterRingReleaseLock(
 
     if (HeadPacket != NULL) {
         PXENVIF_TRANSMITTER Transmitter;
-        PXENVIF_FRONTEND    Frontend;
 
         Transmitter = Ring->Transmitter;
-        Frontend = Transmitter->Frontend;
 
-        VifTransmitterReturnPackets(PdoGetVifContext(FrontendGetPdo(Frontend)),
-                                    HeadPacket);
+        __TransmitterReturnPackets(Transmitter,
+                                   HeadPacket);
     }
 }
 
@@ -3091,7 +3103,7 @@ __TransmitterRingDisable(
 {    
     PXENVIF_TRANSMITTER             Transmitter;
     PXENVIF_FRONTEND                Frontend;
-    PXENVIF_TRANSMITTER_PACKET      Packet;
+    PXENVIF_TRANSMITTER_PACKET_V1   Packet;
     PCHAR                           Buffer;
     XenbusState                     State;
     ULONG                           Attempt;
@@ -3286,14 +3298,14 @@ __TransmitterRingTeardown(
 
 static FORCEINLINE VOID
 __TransmitterRingQueuePackets(
-    IN  PXENVIF_TRANSMITTER_RING    Ring,
-    IN  PXENVIF_TRANSMITTER_PACKET  HeadPacket
+    IN  PXENVIF_TRANSMITTER_RING        Ring,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   HeadPacket
     )
 {
-    PXENVIF_TRANSMITTER_PACKET      *TailPacket;
-    ULONG_PTR                       Old;
-    ULONG_PTR                       LockBit;
-    ULONG_PTR                       New;
+    PXENVIF_TRANSMITTER_PACKET_V1       *TailPacket;
+    ULONG_PTR                           Old;
+    ULONG_PTR                           LockBit;
+    ULONG_PTR                           New;
 
     TailPacket = &HeadPacket->Next;
     (VOID) __TransmitterReversePacketList(&HeadPacket);
@@ -3323,7 +3335,7 @@ __TransmitterRingAbortPackets(
     IN  PXENVIF_TRANSMITTER_RING    Ring
     )
 {
-    PXENVIF_TRANSMITTER_PACKET      Packet;
+    PXENVIF_TRANSMITTER_PACKET_V1   Packet;
 
     __TransmitterRingAcquireLock(Ring);
 
@@ -3335,7 +3347,7 @@ __TransmitterRingAbortPackets(
     Ring->Queued.TailPacket = &Ring->Queued.HeadPacket;
 
     while (Packet != NULL) {
-        PXENVIF_TRANSMITTER_PACKET  Next;
+        PXENVIF_TRANSMITTER_PACKET_V1   Next;
         
         Next = Packet->Next;
         Packet->Next = NULL;
@@ -3829,9 +3841,9 @@ fail1:
 }
 
 VOID
-TransmitterQueuePackets(
-    IN  PXENVIF_TRANSMITTER         Transmitter,
-    IN  PXENVIF_TRANSMITTER_PACKET  HeadPacket
+TransmitterQueuePacketsVersion1(
+    IN  PXENVIF_TRANSMITTER             Transmitter,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   HeadPacket
     )
 {
     PXENVIF_TRANSMITTER_RING        Ring;
index 9c3bfaa49345288b66ed6844048d037f8d2d4428..7c16076301eb3d1f699ac7b0aade516436780f88 100644 (file)
@@ -108,9 +108,9 @@ TransmitterAdvertiseAddresses(
     );
 
 extern VOID
-TransmitterQueuePackets(
-    IN  PXENVIF_TRANSMITTER         Transmitter,
-    IN  PXENVIF_TRANSMITTER_PACKET  HeadPacket
+TransmitterQueuePacketsVersion1(
+    IN  PXENVIF_TRANSMITTER             Transmitter,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   HeadPacket
     );
 
 extern VOID
index 97ce84a6b97989ff2d4590db931c1ad759e61f30..a4a855788609bcfa1c9b2c777610f7053f34f6bd 100644 (file)
@@ -275,9 +275,9 @@ VifReceiverReturnPackets(
 
 
 static NTSTATUS
-VifTransmitterQueuePackets(
-    IN  PINTERFACE                  Interface,
-    IN  PXENVIF_TRANSMITTER_PACKET  Head
+VifTransmitterQueuePacketsVersion1(
+    IN  PINTERFACE                      Interface,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   Head
     )
 {
     PXENVIF_VIF_CONTEXT             Context = Interface->Context;
@@ -289,8 +289,8 @@ VifTransmitterQueuePackets(
     if (Context->Enabled == FALSE)
         goto fail1;
 
-    TransmitterQueuePackets(FrontendGetTransmitter(Context->Frontend),
-                            Head);            
+    TransmitterQueuePacketsVersion1(FrontendGetTransmitter(Context->Frontend),
+                                    Head);
 
     ReleaseMrswLockShared(&Context->Lock);
 
@@ -642,7 +642,7 @@ static struct _XENVIF_VIF_INTERFACE_V1 VifInterfaceVersion1 = {
     VifReceiverSetOffloadOptions,
     VifReceiverQueryRingSize,
     VifTransmitterSetPacketOffset,
-    VifTransmitterQueuePackets,
+    VifTransmitterQueuePacketsVersion1,
     VifTransmitterQueryOffloadOptions,
     VifTransmitterQueryLargePacketSize,
     VifTransmitterQueryRingSize,
@@ -783,9 +783,9 @@ VifReceiverQueuePackets(
 }
 
 VOID
-VifTransmitterReturnPackets(
-    IN  PXENVIF_VIF_CONTEXT         Context,
-    IN  PXENVIF_TRANSMITTER_PACKET  Head
+VifTransmitterReturnPacketsV1(
+    IN  PXENVIF_VIF_CONTEXT             Context,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   Head
     )
 {
     Context->Callback(Context->Argument,
index 17a04db847e1496976898d716c80286f5cccf6d8..a26aa1bda344fb1780e33367a09b80664c4c6783 100644 (file)
@@ -69,9 +69,9 @@ VifReceiverQueuePackets(
     );
 
 extern VOID
-VifTransmitterReturnPackets(
-    IN  PXENVIF_VIF_CONTEXT         Context,
-    IN  PXENVIF_TRANSMITTER_PACKET  Head
+VifTransmitterReturnPacketsV1(
+    IN  PXENVIF_VIF_CONTEXT             Context,
+    IN  PXENVIF_TRANSMITTER_PACKET_V1   Head
     );
 
 extern PXENVIF_THREAD