]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Get rid of vmware_pack files (devices edition)
authorJohn Wolfe <jwolfe@vmware.com>
Fri, 11 Sep 2020 19:11:03 +0000 (12:11 -0700)
committerJohn Wolfe <jwolfe@vmware.com>
Fri, 11 Sep 2020 19:11:03 +0000 (12:11 -0700)
gcc supports the Microsoft-style "pragma pack" syntax.
Standardize on it.  The conversion is somewhat non-trivial,
as gcc requires "pragma" to be before or after a statement,
not in the middle.

open-vm-tools/modules/shared/vmxnet/upt1_defs.h
open-vm-tools/modules/shared/vmxnet/vmxnet3_defs.h

index f16e73b4ff8c573ab61c854cfe97d17504275377..42abc9bb6b1eed4759975bd638ecf332da8943eb 100644 (file)
@@ -47,9 +47,8 @@
 
 #define UPT1_MAX_INTRS  (UPT1_MAX_TX_QUEUES + UPT1_MAX_RX_QUEUES)
 
-typedef
-#include "vmware_pack_begin.h"
-struct UPT1_TxStats {
+#pragma pack(push, 1)
+typedef struct UPT1_TxStats {
    uint64 TSOPktsTxOK;  /* TSO pkts post-segmentation */
    uint64 TSOBytesTxOK;
    uint64 ucastPktsTxOK;
@@ -60,13 +59,11 @@ struct UPT1_TxStats {
    uint64 bcastBytesTxOK;
    uint64 pktsTxError;
    uint64 pktsTxDiscard;
-}
-#include "vmware_pack_end.h"
-UPT1_TxStats;
+} UPT1_TxStats;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct UPT1_RxStats {
+#pragma pack(push, 1)
+typedef struct UPT1_RxStats {
    uint64 LROPktsRxOK;    /* LRO pkts */
    uint64 LROBytesRxOK;   /* bytes from LRO pkts */
    /* the following counters are for pkts from the wire, i.e., pre-LRO */
@@ -78,9 +75,8 @@ struct UPT1_RxStats {
    uint64 bcastBytesRxOK;
    uint64 pktsRxOutOfBuf;
    uint64 pktsRxError;
-}
-#include "vmware_pack_end.h"
-UPT1_RxStats;
+} UPT1_RxStats;
+#pragma pack(pop)
 
 /* interrupt moderation level */
 #define UPT1_IML_NONE     0 /* no interrupt moderation */
@@ -106,18 +102,16 @@ typedef enum {
 #define UPT1_RSS_MAX_KEY_SIZE        40
 #define UPT1_RSS_MAX_IND_TABLE_SIZE  128
 
-typedef
-#include "vmware_pack_begin.h"
-struct UPT1_RSSConf {
+#pragma pack(push, 1)
+typedef struct UPT1_RSSConf {
    uint16   hashType;
    uint16   hashFunc;
    uint16   hashKeySize;
    uint16   indTableSize;
    uint8    hashKey[UPT1_RSS_MAX_KEY_SIZE];
    uint8    indTable[UPT1_RSS_MAX_IND_TABLE_SIZE];
-}
-#include "vmware_pack_end.h"
-UPT1_RSSConf;
+} UPT1_RSSConf;
+#pragma pack(pop)
 
 /* features */
 #define UPT1_F_RXCSUM      0x0001   /* rx csum verification */
index 95d565e89bafe6a59fdc40fec173cf57e4a614bd..54cac97c6a282aac43e6f9143dbe6bd5e59e8d1f 100644 (file)
@@ -169,9 +169,8 @@ typedef enum {
  *     bit fields written by big endian driver to format required by device.
  */
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_TxDesc {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_TxDesc {
    __le64 addr;
 
 #ifdef __BIG_ENDIAN_BITFIELD
@@ -207,9 +206,8 @@ struct Vmxnet3_TxDesc {
    uint32 ti:1;       /* VLAN Tag Insertion */
    uint32 tci:16;     /* Tag to Insert */
 #endif  /* __BIG_ENDIAN_BITFIELD */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_TxDesc;
+} Vmxnet3_TxDesc;
+#pragma pack(pop)
 
 /* TxDesc.OM values */
 #define VMXNET3_OM_NONE  0          /* 0b00 */
@@ -232,13 +230,11 @@ Vmxnet3_TxDesc;
 #define VMXNET3_TXD_EOP_SIZE 1
 
 #define VMXNET3_HDR_COPY_SIZE   128
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_TxDataDesc {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_TxDataDesc {
    uint8 data[VMXNET3_HDR_COPY_SIZE];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_TxDataDesc;
+} Vmxnet3_TxDataDesc;
+#pragma pack(pop)
 typedef uint8 Vmxnet3_RxDataDesc;
 
 #define VMXNET3_TCD_GEN_SHIFT  31
@@ -247,9 +243,8 @@ typedef uint8 Vmxnet3_RxDataDesc;
 #define VMXNET3_TCD_TXIDX_SIZE 12
 #define VMXNET3_TCD_GEN_DWORD_SHIFT    3
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_TxCompDesc {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_TxCompDesc {
    uint32 txdIdx:12;    /* Index of the EOP TxDesc */
    uint32 ext1:20;
 
@@ -259,13 +254,11 @@ struct Vmxnet3_TxCompDesc {
    uint32 rsvd:24;
    uint32 type:7;       /* completion type */
    uint32 gen:1;        /* generation bit */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_TxCompDesc;
+} Vmxnet3_TxCompDesc;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_RxDesc {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_RxDesc {
    __le64 addr;
 
 #ifdef __BIG_ENDIAN_BITFIELD
@@ -282,9 +275,8 @@ struct Vmxnet3_RxDesc {
    uint32 gen:1;        /* Generation bit */
 #endif
    __le32 ext1;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_RxDesc;
+} Vmxnet3_RxDesc;
+#pragma pack(pop)
 
 /* values of RXD.BTYPE */
 #define VMXNET3_RXD_BTYPE_HEAD   0    /* head only */
@@ -297,9 +289,8 @@ Vmxnet3_RxDesc;
 #define VMXNET3_RCD_HDR_INNER_SHIFT  13
 #define VMXNET3_RCD_RSS_INNER_SHIFT  12
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_RxCompDesc {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_RxCompDesc {
 #ifdef __BIG_ENDIAN_BITFIELD
    uint32 ext2:1;
    uint32 cnc:1;        /* Checksum Not Calculated */
@@ -362,13 +353,11 @@ struct Vmxnet3_RxCompDesc {
    uint32 type:7;       /* completion type */
    uint32 gen:1;        /* generation bit */
 #endif  /* __BIG_ENDIAN_BITFIELD */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_RxCompDesc;
+} Vmxnet3_RxCompDesc;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_RxCompDescExt {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_RxCompDescExt {
    __le32 dword1;
    uint8  segCnt;       /* Number of aggregated packets */
    uint8  dupAckCnt;    /* Number of duplicate Acks */
@@ -407,9 +396,8 @@ struct Vmxnet3_RxCompDescExt {
    uint32 type:7;       /* completion type */
    uint32 gen:1;        /* generation bit */
 #endif  /* __BIG_ENDIAN_BITFIELD */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_RxCompDescExt;
+} Vmxnet3_RxCompDescExt;
+#pragma pack(pop)
 
 /* fields in RxCompDesc we access via Vmxnet3_GenericDesc.dword[3] */
 #define VMXNET3_RCD_TUC_SHIFT  16
@@ -521,9 +509,8 @@ typedef union Vmxnet3_GenericDesc {
 
 /* All structures in DriverShared are padded to multiples of 8 bytes */
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_GOSInfo {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_GOSInfo {
 #ifdef __BIG_ENDIAN_BITFIELD
    uint32   gosMisc: 10;    /* other info about gos */
    uint32   gosVer:  16;    /* gos version */
@@ -535,20 +522,17 @@ struct Vmxnet3_GOSInfo {
    uint32   gosVer:  16;    /* gos version */
    uint32   gosMisc: 10;    /* other info about gos */
 #endif  /* __BIG_ENDIAN_BITFIELD */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_GOSInfo;
+} Vmxnet3_GOSInfo;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_DriverInfo {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_DriverInfo {
    __le32          version;        /* driver version */
    Vmxnet3_GOSInfo gos;
    __le32          vmxnet3RevSpt;  /* vmxnet3 revision supported */
    __le32          uptVerSpt;      /* upt version supported */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_DriverInfo;
+} Vmxnet3_DriverInfo;
+#pragma pack(pop)
 
 #define VMXNET3_REV1_MAGIC  0xbabefee1
 
@@ -560,9 +544,8 @@ Vmxnet3_DriverInfo;
  */
 #define VMXNET3_QUEUE_DESC_ALIGN  128
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_MiscConf {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_MiscConf {
    Vmxnet3_DriverInfo driverInfo;
    __le64             uptFeatures;
    __le64             ddPA;         /* driver data PA */
@@ -574,13 +557,11 @@ struct Vmxnet3_MiscConf {
    uint8              numTxQueues;
    uint8              numRxQueues;
    __le32             reserved[4];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_MiscConf;
+} Vmxnet3_MiscConf;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_TxQueueConf {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_TxQueueConf {
    __le64    txRingBasePA;
    __le64    dataRingBasePA;
    __le64    compRingBasePA;
@@ -594,13 +575,11 @@ struct Vmxnet3_TxQueueConf {
    uint8     _pad1[1];
    __le16    txDataRingDescSize;
    uint8     _pad2[4];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_TxQueueConf;
+} Vmxnet3_TxQueueConf;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_RxQueueConf {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_RxQueueConf {
    __le64    rxRingBasePA[2];
    __le64    compRingBasePA;
    __le64    ddPA;            /* driver data */
@@ -612,9 +591,8 @@ struct Vmxnet3_RxQueueConf {
    uint8     _pad1[1];
    __le16    rxDataRingDescSize; /* size of rx data ring buffer */
    uint8     _pad2[4];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_RxQueueConf;
+} Vmxnet3_RxQueueConf;
+#pragma pack(pop)
 
 enum vmxnet3_intr_mask_mode {
    VMXNET3_IMM_AUTO   = 0,
@@ -655,52 +633,43 @@ enum Vmxnet3_CoalesceMode {
    VMXNET3_COALESCE_RBC        = 3
 };
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_CoalesceRbc {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_CoalesceRbc {
    uint32 rbc_rate;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_CoalesceRbc;
+} Vmxnet3_CoalesceRbc;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_CoalesceStatic {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_CoalesceStatic {
    uint32 tx_depth;
    uint32 tx_comp_depth;
    uint32 rx_depth;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_CoalesceStatic;
+} Vmxnet3_CoalesceStatic;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_CoalesceScheme {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_CoalesceScheme {
    enum Vmxnet3_CoalesceMode coalMode;
    union {
       Vmxnet3_CoalesceRbc    coalRbc;
       Vmxnet3_CoalesceStatic coalStatic;
    } coalPara;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_CoalesceScheme;
+} Vmxnet3_CoalesceScheme;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_IntrConf {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_IntrConf {
    uint8  autoMask;      /* on/off flag */
    uint8  numIntrs;      /* # of interrupts */
    uint8  eventIntrIdx;
    uint8  modLevels[VMXNET3_MAX_INTRS]; /* moderation level for each intr */
    __le32 intrCtrl;
    __le32 reserved[2];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_IntrConf;
+} Vmxnet3_IntrConf;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_IntrConfExt {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_IntrConfExt {
    uint8  autoMask;
    uint8  numIntrs;      /* # of interrupts */
    uint8  eventIntrIdx;
@@ -709,42 +678,35 @@ struct Vmxnet3_IntrConfExt {
    __le32 reserved1;
    uint8  modLevels[VMXNET3_EXT_MAX_INTRS]; /* moderation level for each intr */
    uint8  reserved2[3];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_IntrConfExt;
+} Vmxnet3_IntrConfExt;
+#pragma pack(pop)
 
 /* one bit per VLAN ID, the size is in the units of uint32 */
 #define VMXNET3_VFT_SIZE  (4096 / (sizeof(uint32) * 8))
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_QueueStatus {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_QueueStatus {
    uint8   stopped;    /* on/off flag */
    uint8   _pad[3];
    __le32  error;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_QueueStatus;
+} Vmxnet3_QueueStatus;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_TxQueueCtrl {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_TxQueueCtrl {
    __le32  txNumDeferred;
    __le32  txThreshold;
    __le64  reserved;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_TxQueueCtrl;
+} Vmxnet3_TxQueueCtrl;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_RxQueueCtrl {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_RxQueueCtrl {
    uint8   updateRxProd;   /* on/off flag */
    uint8   _pad[7];
    __le64  reserved;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_RxQueueCtrl;
+} Vmxnet3_RxQueueCtrl;
+#pragma pack(pop)
 
 #define VMXNET3_RXM_UCAST     0x01  /* unicast only */
 #define VMXNET3_RXM_MCAST     0x02  /* multicast passing the filters */
@@ -752,17 +714,15 @@ Vmxnet3_RxQueueCtrl;
 #define VMXNET3_RXM_ALL_MULTI 0x08  /* all multicast */
 #define VMXNET3_RXM_PROMISC   0x10  /* promiscuous */
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_RxFilterConf {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_RxFilterConf {
    __le32   rxMode;       /* VMXNET3_RXM_xxx */
    __le16   mfTableLen;   /* size of the multicast filter table */
    __le16   _pad1;
    __le64   mfTablePA;    /* PA of the multicast filters table */
    __le32   vfTable[VMXNET3_VFT_SIZE]; /* vlan filter */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_RxFilterConf;
+} Vmxnet3_RxFilterConf;
+#pragma pack(pop)
 
 #define ETH_ADDR_LENGTH 6
 
@@ -779,18 +739,15 @@ typedef enum {
    VMXNET3_PKTSTEERING_ACTION_MAX,
 } Vmxnet3_PktSteeringAction;
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PktSteeringActionData {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PktSteeringActionData {
    uint8_t      action; /* enum Vmxnet3PktSteeringAction */
    uint8_t      rxQid;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PktSteeringActionData;
+} Vmxnet3_PktSteeringActionData;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PktSteeringInput {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PktSteeringInput {
    uint16_t     l3proto;
    uint8_t      l4proto;
    uint8_t      pad;
@@ -811,13 +768,11 @@ struct Vmxnet3_PktSteeringInput {
 
    Eth_Address  dstMAC;
    Eth_Address  srcMAC;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PktSteeringInput;
+} Vmxnet3_PktSteeringInput;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PktSteeringGeneveInput {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PktSteeringGeneveInput {
 #ifdef __BIG_ENDIAN_BITFIELD
    uint32   optionsLength:6;  /* Length of options (in 4 bytes multiple) */
    uint32   version:2;        /* Geneve protocol version */
@@ -841,24 +796,20 @@ struct Vmxnet3_PktSteeringGeneveInput {
    uint32   reserved2:8;         /* Reserved bits */
    uint32   virtualNetworkId:24; /* Virtual network identifier */
 #endif  /* __BIG_ENDIAN_BITFIELD */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PktSteeringGeneveInput;
+} Vmxnet3_PktSteeringGeneveInput;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PktSteeringFilterConfExt {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PktSteeringFilterConfExt {
    Vmxnet3_PktSteeringGeneveInput ghSpec;  /* geneve hdr spec */
    Vmxnet3_PktSteeringGeneveInput ghMask;  /* geneve hdr mask */
    Vmxnet3_PktSteeringInput       ohSpec;  /* outer hdr spec */
    Vmxnet3_PktSteeringInput       ohMask;  /* outer hdr mask */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PktSteeringFilterConfExt;
+} Vmxnet3_PktSteeringFilterConfExt;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PktSteeringFilterConf {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PktSteeringFilterConf {
    uint8_t                        version;
    uint8_t                        priority;
    Vmxnet3_PktSteeringActionData  actionData;
@@ -876,28 +827,23 @@ struct Vmxnet3_PktSteeringFilterConf {
    /* Following this structure is Vmxnet3_PktSteeringFilterConfExt
     * in case isExtValid is true.
     */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PktSteeringFilterConf;
+} Vmxnet3_PktSteeringFilterConf;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PktSteeringVerInfo {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PktSteeringVerInfo {
    uint8_t      version;
    uint8_t      pad;
    uint16_t     maxMasks;
    uint32_t     maxFilters;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PktSteeringVerInfo;
+} Vmxnet3_PktSteeringVerInfo;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PktSteeringFilterStats {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PktSteeringFilterStats {
    uint64_t      packets;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PktSteeringFilterStats;
+} Vmxnet3_PktSteeringFilterStats;
+#pragma pack(pop)
 
 typedef enum {
    VMXNET3_PKTSTEERING_CMD_GET_VER = 0x0, /* start of GET commands */
@@ -908,17 +854,15 @@ typedef enum {
    VMXNET3_PKTSTEERING_CMD_FLUSH,
 } Vmxnet3_PktSteeringCmd;
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PktSteeringCmdMsg {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PktSteeringCmdMsg {
    uint16_t                       cmd; /* enum Vmxnet3PktSteeringCmd */
    uint16_t                       msgSize;
    uint32_t                       outputLen;
    uint64_t                       outputPA;
    Vmxnet3_PktSteeringFilterConf  fConf;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PktSteeringCmdMsg;
+} Vmxnet3_PktSteeringCmdMsg;
+#pragma pack(pop)
 
 #define VMXNET3_PM_MAX_FILTERS        6
 #define VMXNET3_PM_MAX_PATTERN_SIZE   128
@@ -927,42 +871,35 @@ Vmxnet3_PktSteeringCmdMsg;
 #define VMXNET3_PM_WAKEUP_MAGIC       0x01  /* wake up on magic pkts */
 #define VMXNET3_PM_WAKEUP_FILTER      0x02  /* wake up on pkts matching filters */
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PM_PktFilter {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PM_PktFilter {
    uint8 maskSize;
    uint8 patternSize;
    uint8 mask[VMXNET3_PM_MAX_MASK_SIZE];
    uint8 pattern[VMXNET3_PM_MAX_PATTERN_SIZE];
    uint8 pad[6];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PM_PktFilter;
+} Vmxnet3_PM_PktFilter;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_PMConf {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_PMConf {
    __le16               wakeUpEvents;  /* VMXNET3_PM_WAKEUP_xxx */
    uint8                numFilters;
    uint8                pad[5];
    Vmxnet3_PM_PktFilter filters[VMXNET3_PM_MAX_FILTERS];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_PMConf;
+} Vmxnet3_PMConf;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_VariableLenConfDesc {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_VariableLenConfDesc {
    __le32              confVer;
    __le32              confLen;
    __le64              confPA;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_VariableLenConfDesc;
+} Vmxnet3_VariableLenConfDesc;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_DSDevRead {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_DSDevRead {
    /* read-only region for device, read by dev in response to a SET cmd */
    Vmxnet3_MiscConf     misc;
    Vmxnet3_IntrConf     intrConf;
@@ -970,57 +907,46 @@ struct Vmxnet3_DSDevRead {
    Vmxnet3_VariableLenConfDesc  rssConfDesc;
    Vmxnet3_VariableLenConfDesc  pmConfDesc;
    Vmxnet3_VariableLenConfDesc  pluginConfDesc;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_DSDevRead;
+} Vmxnet3_DSDevRead;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_DSDevReadExt {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_DSDevReadExt {
    /* read-only region for device, read by dev in response to a SET cmd */
    Vmxnet3_IntrConfExt     intrConfExt;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_DSDevReadExt;
+} Vmxnet3_DSDevReadExt;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_TxQueueDesc {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_TxQueueDesc {
    Vmxnet3_TxQueueCtrl ctrl;
    Vmxnet3_TxQueueConf conf;
    /* Driver read after a GET command */
    Vmxnet3_QueueStatus status;
    UPT1_TxStats        stats;
    uint8               _pad[88]; /* 128 aligned */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_TxQueueDesc;
+} Vmxnet3_TxQueueDesc;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_RxQueueDesc {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_RxQueueDesc {
    Vmxnet3_RxQueueCtrl ctrl;
    Vmxnet3_RxQueueConf conf;
    /* Driver read after a GET command */
    Vmxnet3_QueueStatus status;
    UPT1_RxStats        stats;
    uint8               _pad[88]; /* 128 aligned */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_RxQueueDesc;
+} Vmxnet3_RxQueueDesc;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_SetPolling {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_SetPolling {
    uint8               enablePolling;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_SetPolling;
+} Vmxnet3_SetPolling;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-
-struct Vmxnet3_MemoryRegion {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_MemoryRegion {
    __le64            startPA;  // starting physical address
    __le32            length;   // limit the length to be less than 4G
    /*
@@ -1029,9 +955,8 @@ struct Vmxnet3_MemoryRegion {
     */
    __le16            txQueueBits; // bit n corresponding to tx queue n
    __le16            rxQueueBits; // bit n corresponding to rx queueb n
-}
-#include "vmware_pack_end.h"
-Vmxnet3_MemoryRegion;
+} Vmxnet3_MemoryRegion;
+#pragma pack(pop)
 
 /*
  * Assume each queue can have upto 16 memory region
@@ -1044,15 +969,13 @@ Vmxnet3_MemoryRegion;
 #define MAX_MEMORY_REGION_PER_QUEUE 16
 #define MAX_MEMORY_REGION_PER_DEVICE (16 * 16)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_MemRegs {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_MemRegs {
    __le16           numRegs;
    __le16           pad[3];
    Vmxnet3_MemoryRegion memRegs[1];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_MemRegs;
+} Vmxnet3_MemRegs;
+#pragma pack(pop)
 
 typedef enum Vmxnet3_RSSField {
    VMXNET3_RSS_FIELDS_TCPIP4 = 0x1UL,
@@ -1072,14 +995,12 @@ typedef enum Vmxnet3_RSSField {
    VMXNET3_RSS_FIELDS_INNER_ESPIP6 = 0x8000UL,
 } Vmxnet3_RSSField;
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_EncapDstPort {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_EncapDstPort {
    __le16            geneveDstPort;
    __le16            vxlanDstPort;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_EncapDstPort;
+} Vmxnet3_EncapDstPort;
+#pragma pack(pop)
 
 /*
  * Based on index from ESP SPI, how to map the index to the rx queue ID.
@@ -1101,9 +1022,8 @@ typedef enum Vmxnet3_ESPQueueSelectionAlgo {
    VMXNET3_ESP_QS_MAX,
 } Vmxnet3_ESPQueueSelectionAlgo;
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_ESPQueueSelectionConf {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_ESPQueueSelectionConf {
    uint8       spiStartBit;  /* from least significant bit of SPI. */
    uint8       spiMaskWidth; /* how many bits in SPI will be used. */
    uint16      qsAlgo;       /* see Vmxnet3_ESPQueueSelectionAlgo */
@@ -1111,31 +1031,27 @@ struct Vmxnet3_ESPQueueSelectionConf {
     * qsAlgo is VMXNET3_ESP_QS_QUEUE_MASK.
     */
    uint32      espQueueMask;  /* max of 32 queues supported */
-}
-#include "vmware_pack_end.h"
-Vmxnet3_ESPQueueSelectionConf;
+} Vmxnet3_ESPQueueSelectionConf;
+#pragma pack(pop)
 
 /*
  * If a command data does not exceed 16 bytes, it can use
  * the shared memory directly. Otherwise use variable length
  * configuration descriptor to pass the data.
  */
-typedef
-#include "vmware_pack_begin.h"
-union Vmxnet3_CmdInfo {
+#pragma pack(push, 1)
+typedef union Vmxnet3_CmdInfo {
    Vmxnet3_VariableLenConfDesc varConf;
    Vmxnet3_SetPolling          setPolling;
    Vmxnet3_RSSField            setRSSFields;
    Vmxnet3_EncapDstPort        encapDstPort;
    Vmxnet3_ESPQueueSelectionConf espQSConf;
    __le64                      data[2];
-}
-#include "vmware_pack_end.h"
-Vmxnet3_CmdInfo;
+} Vmxnet3_CmdInfo;
+#pragma pack(pop)
 
-typedef
-#include "vmware_pack_begin.h"
-struct Vmxnet3_DriverShared {
+#pragma pack(push, 1)
+typedef struct Vmxnet3_DriverShared {
    __le32               magic;
    __le32               pad; /* make devRead start at 64-bit boundaries */
    Vmxnet3_DSDevRead    devRead;
@@ -1148,9 +1064,8 @@ struct Vmxnet3_DriverShared {
                                   */
    } cu;
    Vmxnet3_DSDevReadExt devReadExt;
-}
-#include "vmware_pack_end.h"
-Vmxnet3_DriverShared;
+} Vmxnet3_DriverShared;
+#pragma pack(pop)
 
 #define VMXNET3_ECR_RQERR       (1 << 0)
 #define VMXNET3_ECR_TQERR       (1 << 1)