From: Tyler Retzlaff <roret...@linux.microsoft.com>

Add __rte_msvc_pack to all __rte_packed structs to cause packing
when building with MSVC.

Signed-off-by: Tyler Retzlaff <roret...@linux.microsoft.com>
---
 drivers/net/mlx5/hws/mlx5dr.h   | 1 +
 drivers/net/mlx5/mlx5.h         | 1 +
 drivers/net/mlx5/mlx5_flow.h    | 4 ++++
 drivers/net/mlx5/mlx5_hws_cnt.h | 1 +
 drivers/net/mlx5/mlx5_utils.h   | 4 ++++
 5 files changed, 11 insertions(+)

diff --git a/drivers/net/mlx5/hws/mlx5dr.h b/drivers/net/mlx5/hws/mlx5dr.h
index 3668ab9fcf..6539af27bb 100644
--- a/drivers/net/mlx5/hws/mlx5dr.h
+++ b/drivers/net/mlx5/hws/mlx5dr.h
@@ -328,6 +328,7 @@ union mlx5dr_crc_encap_entropy_hash_ip_field {
        };
 };
 
+__rte_msvc_pack
 struct mlx5dr_crc_encap_entropy_hash_fields {
        union mlx5dr_crc_encap_entropy_hash_ip_field dst;
        union mlx5dr_crc_encap_entropy_hash_ip_field src;
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 89d277b523..1ca52bfe69 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -235,6 +235,7 @@ mlx5_is_probed_port_on_mpesw_device(struct 
mlx5_dev_spawn_data *spawn)
 }
 
 /** Data associated with socket messages. */
+__rte_msvc_pack
 struct mlx5_flow_dump_req  {
        uint32_t port_id; /**< There are plans in DPDK to extend port_id. */
        uint64_t flow_id;
diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h
index bcc2782460..4d40866539 100644
--- a/drivers/net/mlx5/mlx5_flow.h
+++ b/drivers/net/mlx5/mlx5_flow.h
@@ -673,6 +673,7 @@ struct mlx5_flow_dv_tag_resource {
 };
 
 /* Modify resource structure */
+__rte_msvc_pack
 struct mlx5_flow_dv_modify_hdr_resource {
        struct mlx5_list_entry entry;
        void *action; /**< Modify header action object. */
@@ -831,6 +832,7 @@ struct mlx5_flow_dv_dest_array_resource {
 
 
 /** Device flow handle structure for DV mode only. */
+__rte_msvc_pack
 struct mlx5_flow_handle_dv {
        /* Flow DV api: */
        struct mlx5_flow_dv_matcher *matcher; /**< Cache to matcher. */
@@ -849,6 +851,7 @@ struct mlx5_flow_handle_dv {
 } __rte_packed;
 
 /** Device flow handle structure: used both for creating & destroying. */
+__rte_msvc_pack
 struct mlx5_flow_handle {
        SILIST_ENTRY(uint32_t)next;
        struct mlx5_vf_vlan vf_vlan; /**< Structure for VF VLAN workaround. */
@@ -1250,6 +1253,7 @@ struct mlx5_flow_attr {
 };
 
 /* Flow structure. */
+__rte_msvc_pack
 struct rte_flow {
        uint32_t dev_handles;
        /**< Device flow handles that are part of the flow. */
diff --git a/drivers/net/mlx5/mlx5_hws_cnt.h b/drivers/net/mlx5/mlx5_hws_cnt.h
index d8da9dfcdd..7479da7c5e 100644
--- a/drivers/net/mlx5/mlx5_hws_cnt.h
+++ b/drivers/net/mlx5/mlx5_hws_cnt.h
@@ -133,6 +133,7 @@ enum {
 };
 
 /* HWS counter age parameter. */
+__rte_msvc_pack
 struct __rte_cache_aligned mlx5_hws_age_param {
        RTE_ATOMIC(uint32_t) timeout; /* Aging timeout in seconds (atomically 
accessed). */
        RTE_ATOMIC(uint32_t) sec_since_last_hit;
diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h
index f933daf03c..081678fa43 100644
--- a/drivers/net/mlx5/mlx5_utils.h
+++ b/drivers/net/mlx5/mlx5_utils.h
@@ -115,6 +115,7 @@ struct mlx5_l3t_level_tbl {
 };
 
 /* L3 word entry table data structure. */
+__rte_msvc_pack
 struct mlx5_l3t_entry_word {
        uint32_t idx; /* Table index. */
        uint64_t ref_cnt; /* Table ref_cnt. */
@@ -125,6 +126,7 @@ struct mlx5_l3t_entry_word {
 } __rte_packed;
 
 /* L3 double word entry table data structure. */
+__rte_msvc_pack
 struct mlx5_l3t_entry_dword {
        uint32_t idx; /* Table index. */
        uint64_t ref_cnt; /* Table ref_cnt. */
@@ -135,6 +137,7 @@ struct mlx5_l3t_entry_dword {
 } __rte_packed;
 
 /* L3 quad word entry table data structure. */
+__rte_msvc_pack
 struct mlx5_l3t_entry_qword {
        uint32_t idx; /* Table index. */
        uint64_t ref_cnt; /* Table ref_cnt. */
@@ -145,6 +148,7 @@ struct mlx5_l3t_entry_qword {
 } __rte_packed;
 
 /* L3 pointer entry table data structure. */
+__rte_msvc_pack
 struct mlx5_l3t_entry_ptr {
        uint32_t idx; /* Table index. */
        uint64_t ref_cnt; /* Table ref_cnt. */
-- 
2.47.0.vfs.0.3

Reply via email to