DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andre Muezerie <andremue@linux.microsoft.com>
To: roretzla@linux.microsoft.com
Cc: aman.deep.singh@intel.com, anatoly.burakov@intel.com,
	bruce.richardson@intel.com, byron.marohn@intel.com,
	conor.walsh@intel.com, cristian.dumitrescu@intel.com,
	david.hunt@intel.com, dev@dpdk.org, dsosnowski@nvidia.com,
	gakhil@marvell.com, jerinj@marvell.com, jingjing.wu@intel.com,
	kirill.rybalchenko@intel.com, konstantin.v.ananyev@yandex.ru,
	matan@nvidia.com, orika@nvidia.com, radu.nicolau@intel.com,
	ruifeng.wang@arm.com, sameh.gobriel@intel.com,
	sivaprasad.tummala@amd.com, skori@marvell.com,
	stephen@networkplumber.org, suanmingm@nvidia.com,
	vattunuru@marvell.com, viacheslavo@nvidia.com,
	vladimir.medvedkin@intel.com, yipeng1.wang@intel.com,
	Andre Muezerie <andremue@linux.microsoft.com>
Subject: [PATCH v6 07/30] drivers/bus: replace packed attributes
Date: Tue, 26 Nov 2024 16:52:18 -0800	[thread overview]
Message-ID: <1732668761-5556-8-git-send-email-andremue@linux.microsoft.com> (raw)
In-Reply-To: <1732668761-5556-1-git-send-email-andremue@linux.microsoft.com>

MSVC struct packing is not compatible with GCC. Replace macro
__rte_packed with __rte_packed_begin to push existing pack value
and set packing to 1-byte and macro __rte_packed_end to restore
the pack value prior to the push.

Macro __rte_packed_end is deliberately utilized to trigger a
MSVC compiler warning if no existing packing has been pushed allowing
easy identification of locations where the __rte_packed_begin is
missing.

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
---
 drivers/bus/dpaa/include/fsl_bman.h  |  15 ++-
 drivers/bus/dpaa/include/fsl_fman.h  |   4 +-
 drivers/bus/dpaa/include/fsl_qman.h  | 155 ++++++++++++++-------------
 drivers/bus/ifpga/bus_ifpga_driver.h |   8 +-
 drivers/bus/vmbus/rte_vmbus_reg.h    | 108 +++++++++----------
 5 files changed, 150 insertions(+), 140 deletions(-)

diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
index 34d7eb32ce..9d3fc9f395 100644
--- a/drivers/bus/dpaa/include/fsl_bman.h
+++ b/drivers/bus/dpaa/include/fsl_bman.h
@@ -86,6 +86,7 @@ static inline dma_addr_t bm_buf_addr(const struct bm_buffer *buf)
 	} while (0)
 
 /* See 1.5.3.5.4: "Release Command" */
+__rte_packed_begin
 struct bm_rcr_entry {
 	union {
 		struct {
@@ -95,7 +96,7 @@ struct bm_rcr_entry {
 		};
 		struct bm_buffer bufs[8];
 	};
-} __packed;
+} __rte_packed_end;
 #define BM_RCR_VERB_VBIT		0x80
 #define BM_RCR_VERB_CMD_MASK		0x70	/* one of two values; */
 #define BM_RCR_VERB_CMD_BPID_SINGLE	0x20
@@ -104,20 +105,23 @@ struct bm_rcr_entry {
 
 /* See 1.5.3.1: "Acquire Command" */
 /* See 1.5.3.2: "Query Command" */
+__rte_packed_begin
 struct bm_mcc_acquire {
 	u8 bpid;
 	u8 __reserved1[62];
-} __packed;
+} __rte_packed_end;
+__rte_packed_begin
 struct bm_mcc_query {
 	u8 __reserved2[63];
-} __packed;
+} __rte_packed_end;
+__rte_packed_begin
 struct bm_mc_command {
 	u8 __dont_write_directly__verb;
 	union {
 		struct bm_mcc_acquire acquire;
 		struct bm_mcc_query query;
 	};
-} __packed;
+} __rte_packed_end;
 #define BM_MCC_VERB_VBIT		0x80
 #define BM_MCC_VERB_CMD_MASK		0x70	/* where the verb contains; */
 #define BM_MCC_VERB_CMD_ACQUIRE		0x10
@@ -136,6 +140,7 @@ struct bm_pool_state {
 	} as, ds;
 };
 
+__rte_packed_begin
 struct bm_mc_result {
 	union {
 		struct {
@@ -152,7 +157,7 @@ struct bm_mc_result {
 		} acquire;
 		struct bm_pool_state query;
 	};
-} __packed;
+} __rte_packed_end;
 #define BM_MCR_VERB_VBIT		0x80
 #define BM_MCR_VERB_CMD_MASK		BM_MCC_VERB_CMD_MASK
 #define BM_MCR_VERB_CMD_ACQUIRE		BM_MCC_VERB_CMD_ACQUIRE
diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
index 5a9750ad0c..513d14cced 100644
--- a/drivers/bus/dpaa/include/fsl_fman.h
+++ b/drivers/bus/dpaa/include/fsl_fman.h
@@ -12,7 +12,7 @@
 /* Status field in FD is updated on Rx side by FMAN with following information.
  * Refer to field description in FM BG.
  */
-struct fm_status_t {
+__rte_packed_begin struct fm_status_t {
 	unsigned int reserved0:3;
 	unsigned int dcl4c:1; /* Don't Check L4 Checksum */
 	unsigned int reserved1:1;
@@ -38,7 +38,7 @@ struct fm_status_t {
 	unsigned int phe:1; /* Header Error during parsing */
 	unsigned int frdr:1; /* Frame Dropped by disabled port */
 	unsigned int reserved5:4;
-} __rte_packed;
+} __rte_packed_end;
 
 /* Set MAC address for a particular interface */
 __rte_internal
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 25dbf72fd4..7886d466d1 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -221,6 +221,7 @@ static inline dma_addr_t qm_fd_addr(const struct qm_fd *fd)
 	} while (0)
 
 /* Scatter/Gather table entry */
+__rte_packed_begin
 struct qm_sg_entry {
 	union {
 		struct {
@@ -273,7 +274,7 @@ struct qm_sg_entry {
 		};
 		u16 val_off;
 	};
-} __packed;
+} __rte_packed_end;
 static inline u64 qm_sg_entry_get64(const struct qm_sg_entry *sg)
 {
 	return sg->addr;
@@ -292,6 +293,7 @@ static inline dma_addr_t qm_sg_addr(const struct qm_sg_entry *sg)
 	} while (0)
 
 /* See 1.5.8.1: "Enqueue Command" */
+__rte_packed_begin
 struct __rte_aligned(8) qm_eqcr_entry {
 	u8 __dont_write_directly__verb;
 	u8 dca;
@@ -301,7 +303,7 @@ struct __rte_aligned(8) qm_eqcr_entry {
 	u32 tag;
 	struct qm_fd fd; /* this has alignment 8 */
 	u8 __reserved3[32];
-} __packed;
+} __rte_packed_end;
 
 
 /* "Frame Dequeue Response" */
@@ -330,8 +332,9 @@ struct __rte_aligned(8) qm_dqrr_entry {
 
 /* "ERN Message Response" */
 /* "FQ State Change Notification" */
-struct __rte_aligned(8) qm_mr_entry {
+__rte_packed_begin struct __rte_aligned(8) qm_mr_entry {
 	union {
+		__rte_packed_begin
 		alignas(8) struct {
 			u8 verb;
 			u8 dca;
@@ -341,7 +344,8 @@ struct __rte_aligned(8) qm_mr_entry {
 			u32 fqid;	/* 24-bit */
 			u32 tag;
 			struct qm_fd fd; /* this has alignment 8 */
-		} __packed ern;
+		} __rte_packed_end ern;
+		__rte_packed_begin
 		alignas(8) struct {
 			u8 verb;
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
@@ -359,7 +363,8 @@ struct __rte_aligned(8) qm_mr_entry {
 			u32 fqid;	/* 24-bit */
 			u32 tag;
 			struct qm_fd fd; /* this has alignment 8 */
-		} __packed dcern;
+		} __rte_packed_end dcern;
+		__rte_packed_begin
 		alignas(8) struct {
 			u8 verb;
 			u8 fqs;		/* Frame Queue Status */
@@ -367,10 +372,10 @@ struct __rte_aligned(8) qm_mr_entry {
 			u32 fqid;	/* 24-bit */
 			u32 contextB;
 			u8 __reserved2[16];
-		} __packed fq;	/* FQRN/FQRNI/FQRL/FQPN */
+		} __rte_packed_end fq;	/* FQRN/FQRNI/FQRL/FQPN */
 	};
 	u8 __reserved2[32];
-} __packed;
+} __rte_packed_end;
 #define QM_MR_VERB_VBIT			0x80
 /*
  * ERNs originating from direct-connect portals ("dcern") use 0x20 as a verb
@@ -405,7 +410,7 @@ struct __rte_aligned(8) qm_mr_entry {
  * latter has two inlines to assist with converting to/from the mant+exp
  * representation.
  */
-struct qm_fqd_stashing {
+__rte_packed_begin struct qm_fqd_stashing {
 	/* See QM_STASHING_EXCL_<...> */
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 	u8 exclusive;
@@ -421,8 +426,8 @@ struct qm_fqd_stashing {
 	u8 __reserved1:2;
 	u8 exclusive;
 #endif
-} __packed;
-struct qm_fqd_taildrop {
+} __rte_packed_end;
+__rte_packed_begin struct qm_fqd_taildrop {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 	u16 __reserved1:3;
 	u16 mant:8;
@@ -432,8 +437,8 @@ struct qm_fqd_taildrop {
 	u16 mant:8;
 	u16 __reserved1:3;
 #endif
-} __packed;
-struct qm_fqd_oac {
+} __rte_packed_end;
+__rte_packed_begin struct qm_fqd_oac {
 	/* "Overhead Accounting Control", see QM_OAC_<...> */
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 	u8 oac:2; /* "Overhead Accounting Control" */
@@ -444,11 +449,11 @@ struct qm_fqd_oac {
 #endif
 	/* Two's-complement value (-128 to +127) */
 	signed char oal; /* "Overhead Accounting Length" */
-} __packed;
-struct qm_fqd {
+} __rte_packed_end;
+__rte_packed_begin struct qm_fqd {
 	union {
 		u8 orpc;
-		struct {
+		__rte_packed_begin struct {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 			u8 __reserved1:2;
 			u8 orprws:3;
@@ -460,13 +465,13 @@ struct qm_fqd {
 			u8 orprws:3;
 			u8 __reserved1:2;
 #endif
-		} __packed;
+		} __rte_packed_end;
 	};
 	u8 cgid;
 	u16 fq_ctrl;	/* See QM_FQCTRL_<...> */
 	union {
 		u16 dest_wq;
-		struct {
+		__rte_packed_begin struct {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 			u16 channel:13; /* qm_channel */
 			u16 wq:3;
@@ -474,7 +479,7 @@ struct qm_fqd {
 			u16 wq:3;
 			u16 channel:13; /* qm_channel */
 #endif
-		} __packed dest;
+		} __rte_packed_end dest;
 	};
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 	u16 __reserved2:1;
@@ -509,7 +514,7 @@ struct qm_fqd {
 		};
 		/* Treat it as s/w portal stashing config */
 		/* see "FQD Context_A field used for [...]" */
-		struct {
+		__rte_packed_begin struct {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 			struct qm_fqd_stashing stashing;
 			/*
@@ -523,10 +528,10 @@ struct qm_fqd {
 			u16 context_hi;
 			struct qm_fqd_stashing stashing;
 #endif
-		} __packed;
+		} __rte_packed_end;
 	} context_a;
 	struct qm_fqd_oac oac_query;
-} __packed;
+} __rte_packed_end;
 /* 64-bit converters for context_hi/lo */
 static inline u64 qm_fqd_stashing_get64(const struct qm_fqd *fqd)
 {
@@ -618,10 +623,10 @@ static inline u32 qm_fqd_taildrop_get(const struct qm_fqd_taildrop *td)
  *   Slope = SA / (2 ^ Sn)
  *    MaxP = 4 * (Pn + 1)
  */
-struct qm_cgr_wr_parm {
+__rte_packed_begin struct qm_cgr_wr_parm {
 	union {
 		u32 word;
-		struct {
+		__rte_packed_begin struct {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 			u32 MA:8;
 			u32 Mn:5;
@@ -635,9 +640,9 @@ struct qm_cgr_wr_parm {
 			u32 Mn:5;
 			u32 MA:8;
 #endif
-		} __packed;
+		} __rte_packed_end;
 	};
-} __packed;
+} __rte_packed_end;
 /*
  * This struct represents the 13-bit "CS_THRES" CGR field. In the corresponding
  * management commands, this is padded to a 16-bit structure field, so that's
@@ -645,10 +650,10 @@ struct qm_cgr_wr_parm {
  * these fields as follows;
  *   CS threshold = TA * (2 ^ Tn)
  */
-struct qm_cgr_cs_thres {
+__rte_packed_begin struct qm_cgr_cs_thres {
 	union {
 		u16 hword;
-		struct {
+		__rte_packed_begin struct {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 			u16 __reserved:3;
 			u16 TA:8;
@@ -658,15 +663,15 @@ struct qm_cgr_cs_thres {
 			u16 TA:8;
 			u16 __reserved:3;
 #endif
-		} __packed;
+		} __rte_packed_end;
 	};
-} __packed;
+} __rte_packed_end;
 /*
  * This identical structure of CGR fields is present in the "Init/Modify CGR"
  * commands and the "Query CGR" result. It's suctioned out here into its own
  * struct.
  */
-struct __qm_mc_cgr {
+__rte_packed_begin struct __qm_mc_cgr {
 	struct qm_cgr_wr_parm wr_parm_g;
 	struct qm_cgr_wr_parm wr_parm_y;
 	struct qm_cgr_wr_parm wr_parm_r;
@@ -694,7 +699,7 @@ struct __qm_mc_cgr {
 		u16 __cs_thres;
 	};
 	u8 mode;	/* QMAN_CGR_MODE_FRAME not supported in rev1.0 */
-} __packed;
+} __rte_packed_end;
 #define QM_CGR_EN		0x01 /* For wr_en_*, cscn_en, cstd_en */
 #define QM_CGR_TARG_UDP_CTRL_WRITE_BIT	0x8000 /* value written to portal bit*/
 #define QM_CGR_TARG_UDP_CTRL_DCP	0x4000 /* 0: SWP, 1: DCP */
@@ -733,25 +738,25 @@ static inline int qm_cgr_cs_thres_set64(struct qm_cgr_cs_thres *th, u64 val,
 /* See 1.5.8.6.2: "CGR Test Write" */
 /* See 1.5.8.6.3: "Query CGR" */
 /* See 1.5.8.6.4: "Query Congestion Group State" */
-struct qm_mcc_initfq {
+__rte_packed_begin struct qm_mcc_initfq {
 	u8 __reserved1;
 	u16 we_mask;	/* Write Enable Mask */
 	u32 fqid;	/* 24-bit */
 	u16 count;	/* Initialises 'count+1' FQDs */
 	struct qm_fqd fqd; /* the FQD fields go here */
 	u8 __reserved3[30];
-} __packed;
-struct qm_mcc_queryfq {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcc_queryfq {
 	u8 __reserved1[3];
 	u32 fqid;	/* 24-bit */
 	u8 __reserved2[56];
-} __packed;
-struct qm_mcc_queryfq_np {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcc_queryfq_np {
 	u8 __reserved1[3];
 	u32 fqid;	/* 24-bit */
 	u8 __reserved2[56];
-} __packed;
-struct qm_mcc_alterfq {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcc_alterfq {
 	u8 __reserved1[3];
 	u32 fqid;	/* 24-bit */
 	u8 __reserved2;
@@ -759,37 +764,37 @@ struct qm_mcc_alterfq {
 	u8 __reserved3[10];
 	u32 context_b;	/* frame queue context b */
 	u8 __reserved4[40];
-} __packed;
-struct qm_mcc_initcgr {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcc_initcgr {
 	u8 __reserved1;
 	u16 we_mask;	/* Write Enable Mask */
 	struct __qm_mc_cgr cgr;	/* CGR fields */
 	u8 __reserved2[2];
 	u8 cgid;
 	u8 __reserved4[32];
-} __packed;
-struct qm_mcc_cgrtestwrite {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcc_cgrtestwrite {
 	u8 __reserved1[2];
 	u8 i_bcnt_hi:8;/* high 8-bits of 40-bit "Instant" */
 	u32 i_bcnt_lo;	/* low 32-bits of 40-bit */
 	u8 __reserved2[23];
 	u8 cgid;
 	u8 __reserved3[32];
-} __packed;
-struct qm_mcc_querycgr {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcc_querycgr {
 	u8 __reserved1[30];
 	u8 cgid;
 	u8 __reserved2[32];
-} __packed;
-struct qm_mcc_querycongestion {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcc_querycongestion {
 	u8 __reserved[63];
-} __packed;
-struct qm_mcc_querywq {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcc_querywq {
 	u8 __reserved;
 	/* select channel if verb != QUERYWQ_DEDICATED */
 	union {
 		u16 channel_wq; /* ignores wq (3 lsbits) */
-		struct {
+		__rte_packed_begin struct {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 			u16 id:13; /* qm_channel */
 			u16 __reserved1:3;
@@ -797,12 +802,12 @@ struct qm_mcc_querywq {
 			u16 __reserved1:3;
 			u16 id:13; /* qm_channel */
 #endif
-		} __packed channel;
+		} __rte_packed_end channel;
 	};
 	u8 __reserved2[60];
-} __packed;
+} __rte_packed_end;
 
-struct qm_mc_command {
+__rte_packed_begin struct qm_mc_command {
 	u8 __dont_write_directly__verb;
 	union {
 		struct qm_mcc_initfq initfq;
@@ -815,7 +820,7 @@ struct qm_mc_command {
 		struct qm_mcc_querycongestion querycongestion;
 		struct qm_mcc_querywq querywq;
 	};
-} __packed;
+} __rte_packed_end;
 
 /* INITFQ-specific flags */
 #define QM_INITFQ_WE_MASK		0x01ff	/* 'Write Enable' flags; */
@@ -842,15 +847,15 @@ struct qm_mc_command {
 #define QM_CGR_WE_CS_THRES		0x0002
 #define QM_CGR_WE_MODE			0x0001
 
-struct qm_mcr_initfq {
+__rte_packed_begin struct qm_mcr_initfq {
 	u8 __reserved1[62];
-} __packed;
-struct qm_mcr_queryfq {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcr_queryfq {
 	u8 __reserved1[8];
 	struct qm_fqd fqd;	/* the FQD fields are here */
 	u8 __reserved2[30];
-} __packed;
-struct qm_mcr_queryfq_np {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcr_queryfq_np {
 	u8 __reserved1;
 	u8 state;	/* QM_MCR_NP_STATE_*** */
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
@@ -929,16 +934,16 @@ struct qm_mcr_queryfq_np {
 	u16 od2_sfdr;	/* QM_MCR_NP_OD2_*** */
 	u16 od3_sfdr;	/* QM_MCR_NP_OD3_*** */
 #endif
-} __packed;
+} __rte_packed_end;
 
-struct qm_mcr_alterfq {
+__rte_packed_begin struct qm_mcr_alterfq {
 	u8 fqs;		/* Frame Queue Status */
 	u8 __reserved1[61];
-} __packed;
-struct qm_mcr_initcgr {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcr_initcgr {
 	u8 __reserved1[62];
-} __packed;
-struct qm_mcr_cgrtestwrite {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcr_cgrtestwrite {
 	u16 __reserved1;
 	struct __qm_mc_cgr cgr; /* CGR fields */
 	u8 __reserved2[3];
@@ -953,8 +958,8 @@ struct qm_mcr_cgrtestwrite {
 	u16 wr_prob_y;
 	u16 wr_prob_r;
 	u8 __reserved5[8];
-} __packed;
-struct qm_mcr_querycgr {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcr_querycgr {
 	u16 __reserved1;
 	struct __qm_mc_cgr cgr; /* CGR fields */
 	u8 __reserved2[3];
@@ -990,21 +995,21 @@ struct qm_mcr_querycgr {
 		u32 cscn_targ_swp[4];
 		u8 __reserved5[16];
 	};
-} __packed;
+} __rte_packed_end;
 
 struct __qm_mcr_querycongestion {
 	u32 state[8];
 };
 
-struct qm_mcr_querycongestion {
+__rte_packed_begin struct qm_mcr_querycongestion {
 	u8 __reserved[30];
 	/* Access this struct using QM_MCR_QUERYCONGESTION() */
 	struct __qm_mcr_querycongestion state;
-} __packed;
-struct qm_mcr_querywq {
+} __rte_packed_end;
+__rte_packed_begin struct qm_mcr_querywq {
 	union {
 		u16 channel_wq; /* ignores wq (3 lsbits) */
-		struct {
+		__rte_packed_begin struct {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 			u16 id:13; /* qm_channel */
 			u16 __reserved:3;
@@ -1012,13 +1017,13 @@ struct qm_mcr_querywq {
 			u16 __reserved:3;
 			u16 id:13; /* qm_channel */
 #endif
-		} __packed channel;
+		} __rte_packed_end channel;
 	};
 	u8 __reserved[28];
 	u32 wq_len[8];
-} __packed;
+} __rte_packed_end;
 
-struct qm_mc_result {
+__rte_packed_begin struct qm_mc_result {
 	u8 verb;
 	u8 result;
 	union {
@@ -1032,7 +1037,7 @@ struct qm_mc_result {
 		struct qm_mcr_querycongestion querycongestion;
 		struct qm_mcr_querywq querywq;
 	};
-} __packed;
+} __rte_packed_end;
 
 #define QM_MCR_VERB_RRID		0x80
 #define QM_MCR_VERB_MASK		QM_MCC_VERB_MASK
diff --git a/drivers/bus/ifpga/bus_ifpga_driver.h b/drivers/bus/ifpga/bus_ifpga_driver.h
index af151ffd4b..c292144130 100644
--- a/drivers/bus/ifpga/bus_ifpga_driver.h
+++ b/drivers/bus/ifpga/bus_ifpga_driver.h
@@ -29,10 +29,10 @@ struct rte_afu_driver;
 
 #define IFPGA_BUS_BITSTREAM_PATH_MAX_LEN 256
 
-struct rte_afu_uuid {
+__rte_packed_begin struct rte_afu_uuid {
 	uint64_t uuid_low;
 	uint64_t uuid_high;
-} __rte_packed;
+} __rte_packed_end;
 
 #define IFPGA_BUS_DEV_PORT_MAX 4
 
@@ -40,10 +40,10 @@ struct rte_afu_uuid {
  * A structure describing an ID for a AFU driver. Each driver provides a
  * table of these IDs for each device that it supports.
  */
-struct rte_afu_id {
+__rte_packed_begin struct rte_afu_id {
 	struct rte_afu_uuid uuid;
 	int      port; /**< port number */
-} __rte_packed;
+} __rte_packed_end;
 
 /**
  * A structure PR (Partial Reconfiguration) configuration AFU driver.
diff --git a/drivers/bus/vmbus/rte_vmbus_reg.h b/drivers/bus/vmbus/rte_vmbus_reg.h
index e3299aa871..239ddbe5f0 100644
--- a/drivers/bus/vmbus/rte_vmbus_reg.h
+++ b/drivers/bus/vmbus/rte_vmbus_reg.h
@@ -12,14 +12,14 @@
 #define VMBUS_MSG_DSIZE_MAX		240
 #define VMBUS_MSG_SIZE			256
 
-struct vmbus_message {
+__rte_packed_begin struct vmbus_message {
 	uint32_t	type;	/* HYPERV_MSGTYPE_ */
 	uint8_t		dsize;	/* data size */
 	uint8_t		flags;	/* VMBUS_MSGFLAG_ */
 	uint16_t	rsvd;
 	uint64_t	id;
 	uint8_t		data[VMBUS_MSG_DSIZE_MAX];
-} __rte_packed;
+} __rte_packed_end;
 
 #define VMBUS_MSGFLAG_PENDING		0x01
 
@@ -27,10 +27,10 @@ struct vmbus_message {
  * Hyper-V Monitor Notification Facility
  */
 
-struct vmbus_mon_trig {
+__rte_packed_begin struct vmbus_mon_trig {
 	RTE_ATOMIC(uint32_t)	pending;
 	uint32_t	armed;
-} __rte_packed;
+} __rte_packed_end;
 
 #define VMBUS_MONTRIGS_MAX	4
 #define VMBUS_MONTRIG_LEN	32
@@ -38,13 +38,13 @@ struct vmbus_mon_trig {
 /*
  * Hyper-V Monitor Notification Facility
  */
-struct hyperv_mon_param {
+__rte_packed_begin struct hyperv_mon_param {
 	uint32_t	connid;
 	uint16_t	evtflag_ofs;
 	uint16_t	rsvd;
-} __rte_packed;
+} __rte_packed_end;
 
-struct vmbus_mon_page {
+__rte_packed_begin struct vmbus_mon_page {
 	uint32_t	state;
 	uint32_t	rsvd1;
 
@@ -57,13 +57,13 @@ struct vmbus_mon_page {
 	struct hyperv_mon_param
 			param[VMBUS_MONTRIGS_MAX][VMBUS_MONTRIG_LEN];
 	uint8_t		rsvd4[1984];
-} __rte_packed;
+} __rte_packed_end;
 
 /*
  * Buffer ring
  */
 
-struct vmbus_bufring {
+__rte_packed_begin struct vmbus_bufring {
 	volatile uint32_t windex;
 	volatile uint32_t rindex;
 
@@ -108,7 +108,7 @@ struct vmbus_bufring {
 	 * !!! DO NOT place any fields below this !!!
 	 */
 	uint8_t data[];
-} __rte_packed;
+} __rte_packed_end;
 
 /*
  * Channel packets
@@ -137,26 +137,26 @@ vmbus_chanpkt_getlen(uint16_t pktlen)
 /*
  * GPA stuffs.
  */
-struct vmbus_gpa_range {
+__rte_packed_begin struct vmbus_gpa_range {
 	uint32_t       len;
 	uint32_t       ofs;
 	uint64_t       page[];
-} __rte_packed;
+} __rte_packed_end;
 
 /* This is actually vmbus_gpa_range.gpa_page[1] */
-struct vmbus_gpa {
+__rte_packed_begin struct vmbus_gpa {
 	uint32_t	len;
 	uint32_t	ofs;
 	uint64_t	page;
-} __rte_packed;
+} __rte_packed_end;
 
-struct vmbus_chanpkt_hdr {
+__rte_packed_begin struct vmbus_chanpkt_hdr {
 	uint16_t	type;	/* VMBUS_CHANPKT_TYPE_ */
 	uint16_t	hlen;	/* header len, in 8 bytes */
 	uint16_t	tlen;	/* total len, in 8 bytes */
 	uint16_t	flags;	/* VMBUS_CHANPKT_FLAG_ */
 	uint64_t	xactid;
-} __rte_packed;
+} __rte_packed_end;
 
 static inline uint32_t
 vmbus_chanpkt_datalen(const struct vmbus_chanpkt_hdr *pkt)
@@ -165,29 +165,29 @@ vmbus_chanpkt_datalen(const struct vmbus_chanpkt_hdr *pkt)
 		- vmbus_chanpkt_getlen(pkt->hlen);
 }
 
-struct vmbus_chanpkt {
+__rte_packed_begin struct vmbus_chanpkt {
 	struct vmbus_chanpkt_hdr hdr;
-} __rte_packed;
+} __rte_packed_end;
 
-struct vmbus_rxbuf_desc {
+__rte_packed_begin struct vmbus_rxbuf_desc {
 	uint32_t	len;
 	uint32_t	ofs;
-} __rte_packed;
+} __rte_packed_end;
 
-struct vmbus_chanpkt_rxbuf {
+__rte_packed_begin struct vmbus_chanpkt_rxbuf {
 	struct vmbus_chanpkt_hdr hdr;
 	uint16_t	rxbuf_id;
 	uint16_t	rsvd;
 	uint32_t	rxbuf_cnt;
 	struct vmbus_rxbuf_desc rxbuf[];
-} __rte_packed;
+} __rte_packed_end;
 
-struct vmbus_chanpkt_sglist {
+__rte_packed_begin struct vmbus_chanpkt_sglist {
 	struct vmbus_chanpkt_hdr hdr;
 	uint32_t	rsvd;
 	uint32_t	gpa_cnt;
 	struct vmbus_gpa gpa[];
-} __rte_packed;
+} __rte_packed_end;
 
 /*
  * Channel messages
@@ -213,39 +213,39 @@ struct vmbus_chanpkt_sglist {
 #define VMBUS_CHANMSG_TYPE_DISCONNECT		16	/* REQ */
 #define VMBUS_CHANMSG_TYPE_MAX			22
 
-struct vmbus_chanmsg_hdr {
+__rte_packed_begin struct vmbus_chanmsg_hdr {
 	uint32_t	type;	/* VMBUS_CHANMSG_TYPE_ */
 	uint32_t	rsvd;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_CONNECT */
-struct vmbus_chanmsg_connect {
+__rte_packed_begin struct vmbus_chanmsg_connect {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	ver;
 	uint32_t	rsvd;
 	uint64_t	evtflags;
 	uint64_t	mnf1;
 	uint64_t	mnf2;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_CONNECT_RESP */
-struct vmbus_chanmsg_connect_resp {
+__rte_packed_begin struct vmbus_chanmsg_connect_resp {
 	struct vmbus_chanmsg_hdr hdr;
 	uint8_t		done;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_CHREQUEST */
-struct vmbus_chanmsg_chrequest {
+__rte_packed_begin struct vmbus_chanmsg_chrequest {
 	struct vmbus_chanmsg_hdr hdr;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_DISCONNECT */
-struct vmbus_chanmsg_disconnect {
+__rte_packed_begin struct vmbus_chanmsg_disconnect {
 	struct vmbus_chanmsg_hdr hdr;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_CHOPEN */
-struct vmbus_chanmsg_chopen {
+__rte_packed_begin struct vmbus_chanmsg_chopen {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	chanid;
 	uint32_t	openid;
@@ -254,73 +254,73 @@ struct vmbus_chanmsg_chopen {
 	uint32_t	txbr_pgcnt;
 #define VMBUS_CHANMSG_CHOPEN_UDATA_SIZE	120
 	uint8_t		udata[VMBUS_CHANMSG_CHOPEN_UDATA_SIZE];
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_CHOPEN_RESP */
-struct vmbus_chanmsg_chopen_resp {
+__rte_packed_begin struct vmbus_chanmsg_chopen_resp {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	chanid;
 	uint32_t	openid;
 	uint32_t	status;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_GPADL_CONN */
-struct vmbus_chanmsg_gpadl_conn {
+__rte_packed_begin struct vmbus_chanmsg_gpadl_conn {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	chanid;
 	uint32_t	gpadl;
 	uint16_t	range_len;
 	uint16_t	range_cnt;
 	struct vmbus_gpa_range range;
-} __rte_packed;
+} __rte_packed_end;
 
 #define VMBUS_CHANMSG_GPADL_CONN_PGMAX		26
 
 /* VMBUS_CHANMSG_TYPE_GPADL_SUBCONN */
-struct vmbus_chanmsg_gpadl_subconn {
+__rte_packed_begin struct vmbus_chanmsg_gpadl_subconn {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	msgno;
 	uint32_t	gpadl;
 	uint64_t	gpa_page[];
-} __rte_packed;
+} __rte_packed_end;
 
 #define VMBUS_CHANMSG_GPADL_SUBCONN_PGMAX	28
 
 /* VMBUS_CHANMSG_TYPE_GPADL_CONNRESP */
-struct vmbus_chanmsg_gpadl_connresp {
+__rte_packed_begin struct vmbus_chanmsg_gpadl_connresp {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	chanid;
 	uint32_t	gpadl;
 	uint32_t	status;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_CHCLOSE */
-struct vmbus_chanmsg_chclose {
+__rte_packed_begin struct vmbus_chanmsg_chclose {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	chanid;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_GPADL_DISCONN */
-struct vmbus_chanmsg_gpadl_disconn {
+__rte_packed_begin struct vmbus_chanmsg_gpadl_disconn {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	chanid;
 	uint32_t	gpadl;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_CHFREE */
-struct vmbus_chanmsg_chfree {
+__rte_packed_begin struct vmbus_chanmsg_chfree {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	chanid;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_CHRESCIND */
-struct vmbus_chanmsg_chrescind {
+__rte_packed_begin struct vmbus_chanmsg_chrescind {
 	struct vmbus_chanmsg_hdr hdr;
 	uint32_t	chanid;
-} __rte_packed;
+} __rte_packed_end;
 
 /* VMBUS_CHANMSG_TYPE_CHOFFER */
-struct vmbus_chanmsg_choffer {
+__rte_packed_begin struct vmbus_chanmsg_choffer {
 	struct vmbus_chanmsg_hdr hdr;
 	rte_uuid_t	chtype;
 	rte_uuid_t	chinst;
@@ -337,7 +337,7 @@ struct vmbus_chanmsg_choffer {
 	uint8_t		flags1;	/* VMBUS_CHOFFER_FLAG1_ */
 	uint16_t	flags2;
 	uint32_t	connid;
-} __rte_packed;
+} __rte_packed_end;
 
 #define VMBUS_CHOFFER_FLAG1_HASMNF	0x01
 
-- 
2.34.1


  parent reply	other threads:[~2024-11-27  0:54 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-20 21:05 [PATCH 00/15] fix packing of structs when building with MSVC Tyler Retzlaff
2024-03-20 21:05 ` [PATCH 01/15] eal: provide pack start macro for MSVC Tyler Retzlaff
2024-03-20 21:05 ` [PATCH 02/15] eal: pack structures when building with MSVC Tyler Retzlaff
2024-03-21 16:02   ` Bruce Richardson
2024-03-20 21:05 ` [PATCH 03/15] net: " Tyler Retzlaff
2024-10-07  1:14   ` Stephen Hemminger
2024-03-20 21:06 ` [PATCH 04/15] common/iavf: " Tyler Retzlaff
2024-03-20 21:06 ` [PATCH 05/15] common/idpf: " Tyler Retzlaff
2024-03-20 21:06 ` [PATCH 06/15] common/mlx5: " Tyler Retzlaff
2024-03-20 21:06 ` [PATCH 07/15] dma/ioat: " Tyler Retzlaff
2024-03-21 16:13   ` Bruce Richardson
2024-03-27 22:51     ` Tyler Retzlaff
2024-03-20 21:06 ` [PATCH 08/15] net/i40e: " Tyler Retzlaff
2024-03-20 21:06 ` [PATCH 09/15] net/iavf: " Tyler Retzlaff
2024-03-21 16:26   ` Bruce Richardson
2024-03-20 21:06 ` [PATCH 10/15] net/ice: " Tyler Retzlaff
2024-03-20 21:06 ` [PATCH 11/15] net/mlx5: " Tyler Retzlaff
2024-03-20 21:06 ` [PATCH 12/15] net/octeon_ep: " Tyler Retzlaff
2024-03-20 21:06 ` [PATCH 13/15] app/testpmd: " Tyler Retzlaff
2024-03-21 16:28   ` Bruce Richardson
2024-03-20 21:06 ` [PATCH 14/15] app/test: " Tyler Retzlaff
2024-03-20 21:06 ` [PATCH 15/15] examples: " Tyler Retzlaff
2024-03-21 16:31   ` Bruce Richardson
2024-03-21 15:32 ` [PATCH 00/15] fix packing of structs " Stephen Hemminger
2024-03-21 15:46   ` Tyler Retzlaff
2024-03-27 23:09 ` [PATCH v2 " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 01/15] eal: provide pack start macro for MSVC Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 02/15] eal: pack structures when building with MSVC Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 03/15] net: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 04/15] common/iavf: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 05/15] common/idpf: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 06/15] common/mlx5: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 07/15] dma/ioat: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 08/15] net/i40e: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 09/15] net/iavf: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 10/15] net/ice: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 11/15] net/mlx5: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 12/15] net/octeon_ep: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 13/15] app/testpmd: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 14/15] app/test: " Tyler Retzlaff
2024-03-27 23:09   ` [PATCH v2 15/15] examples: " Tyler Retzlaff
2024-04-15 23:51 ` [PATCH v3 00/16] fix packing of structs " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 01/16] eal: provide pack start macro for MSVC Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 02/16] eal: pack structures when building with MSVC Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 03/16] net: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 04/16] common/iavf: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 05/16] common/idpf: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 06/16] common/mlx5: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 07/16] dma/ioat: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 08/16] net/i40e: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 09/16] net/iavf: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 10/16] net/ice: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 11/16] net/mlx5: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 12/16] net/octeon_ep: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 13/16] app/testpmd: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 14/16] app/test: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 15/16] examples: " Tyler Retzlaff
2024-04-15 23:51   ` [PATCH v3 16/16] crypto/mlx5: " Tyler Retzlaff
2024-04-16  0:04 ` [PATCH v4 00/16] fix packing of structs " Tyler Retzlaff
2024-04-16  0:04   ` [PATCH v4 01/16] eal: provide pack start macro for MSVC Tyler Retzlaff
2024-04-16  0:04   ` [PATCH v4 02/16] eal: pack structures when building with MSVC Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 03/16] net: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 04/16] common/iavf: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 05/16] common/idpf: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 06/16] common/mlx5: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 07/16] dma/ioat: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 08/16] net/i40e: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 09/16] net/iavf: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 10/16] net/ice: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 11/16] net/mlx5: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 12/16] net/octeon_ep: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 13/16] app/testpmd: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 14/16] app/test: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 15/16] examples: " Tyler Retzlaff
2024-04-16  0:05   ` [PATCH v4 16/16] crypto/mlx5: " Tyler Retzlaff
2024-11-19  4:35 ` [PATCH v5 00/16] fix packing of structs " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 01/16] eal: provide pack start macro for MSVC Andre Muezerie
2024-11-19  8:32     ` Morten Brørup
2024-11-19 11:00       ` Konstantin Ananyev
2024-11-19 16:23         ` Andre Muezerie
2024-11-21 19:39       ` Andre Muezerie
2024-11-21 20:51         ` Thomas Monjalon
2024-11-22  0:11           ` Andre Muezerie
2024-11-22  8:13             ` Morten Brørup
2024-11-25 22:15               ` Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 02/16] eal: pack structures when building with MSVC Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 03/16] net: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 04/16] common/iavf: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 05/16] common/idpf: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 06/16] common/mlx5: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 07/16] dma/ioat: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 08/16] net/i40e: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 09/16] net/iavf: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 10/16] net/ice: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 11/16] net/mlx5: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 12/16] net/octeon_ep: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 13/16] app/testpmd: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 14/16] app/test: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 15/16] examples: " Andre Muezerie
2024-11-19  4:35   ` [PATCH v5 16/16] crypto/mlx5: " Andre Muezerie
2024-11-20 21:13   ` [PATCH v5 00/16] fix packing of structs " Patrick Robb
2024-11-27  0:52 ` [PATCH v6 00/30] " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 01/30] devtools: check packed attributes Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 02/30] eal/include: add new packing macros Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 03/30] app/test-pmd: remove unnecessary packed attributes Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 04/30] app/test: replace " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 05/30] doc/guides: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 06/30] drivers/baseband: " Andre Muezerie
2024-11-27  0:52   ` Andre Muezerie [this message]
2024-11-27  0:52   ` [PATCH v6 08/30] drivers/common: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 09/30] drivers/compress: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 10/30] drivers/crypto: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 11/30] drivers/dma: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 12/30] drivers/event: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 13/30] drivers/mempool: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 14/30] drivers/net: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 15/30] drivers/raw: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 16/30] drivers/regex: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 17/30] drivers/vdpa: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 18/30] examples/common: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 19/30] examples/ip-pipeline: remove " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 20/30] examples/ipsec_secgw: replace " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 21/30] examples/l3fwd-power: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 22/30] examples/l3fwd: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 23/30] examples/ptpclient: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 24/30] examples/vhost_blk: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 25/30] lib/eal: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 26/30] lib/ipsec: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 27/30] lib/net: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 28/30] lib/pipeline: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 29/30] lib/vhost: " Andre Muezerie
2024-11-27  0:52   ` [PATCH v6 30/30] lib/eal: remove __rte_packed Andre Muezerie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1732668761-5556-8-git-send-email-andremue@linux.microsoft.com \
    --to=andremue@linux.microsoft.com \
    --cc=aman.deep.singh@intel.com \
    --cc=anatoly.burakov@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=byron.marohn@intel.com \
    --cc=conor.walsh@intel.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=david.hunt@intel.com \
    --cc=dev@dpdk.org \
    --cc=dsosnowski@nvidia.com \
    --cc=gakhil@marvell.com \
    --cc=jerinj@marvell.com \
    --cc=jingjing.wu@intel.com \
    --cc=kirill.rybalchenko@intel.com \
    --cc=konstantin.v.ananyev@yandex.ru \
    --cc=matan@nvidia.com \
    --cc=orika@nvidia.com \
    --cc=radu.nicolau@intel.com \
    --cc=roretzla@linux.microsoft.com \
    --cc=ruifeng.wang@arm.com \
    --cc=sameh.gobriel@intel.com \
    --cc=sivaprasad.tummala@amd.com \
    --cc=skori@marvell.com \
    --cc=stephen@networkplumber.org \
    --cc=suanmingm@nvidia.com \
    --cc=vattunuru@marvell.com \
    --cc=viacheslavo@nvidia.com \
    --cc=vladimir.medvedkin@intel.com \
    --cc=yipeng1.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).