diff mbox series

[CLOUD-DEV,v1,1/9] linux-gen: pktio: introduce generic pktio_ops data storage

Message ID 1506405608-3507-2-git-send-email-odpbot@yandex.ru
State Superseded
Headers show
Series [CLOUD-DEV,v1,1/9] linux-gen: pktio: introduce generic pktio_ops data storage | expand

Commit Message

Github ODP bot Sept. 26, 2017, 6 a.m. UTC
From: Bogdan Pricope <bogdan.pricope@linaro.org>


Signed-off-by: Bogdan Pricope <bogdan.pricope@linaro.org>

---
/** Email created from pull request 196 (bogdanPricope:cloud_dev_pktio_ops_data_pr)
 ** https://github.com/Linaro/odp/pull/196
 ** Patch: https://github.com/Linaro/odp/pull/196.patch
 ** Base sha: e89a0ed9c4cd6d7dc947b978ad1dcabc6d5a21a2
 ** Merge commit sha: 160ad8615ce66c98231aa400863c82e89045d491
 **/
 platform/linux-dpdk/include/odp_packet_io_internal.h     | 5 ++++-
 platform/linux-generic/include/odp_packet_io_internal.h  | 5 ++++-
 platform/linux-generic/include/odp_pktio_ops_subsystem.h | 7 +++++++
 3 files changed, 15 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/platform/linux-dpdk/include/odp_packet_io_internal.h b/platform/linux-dpdk/include/odp_packet_io_internal.h
index ec1d0c213..07db8cab0 100644
--- a/platform/linux-dpdk/include/odp_packet_io_internal.h
+++ b/platform/linux-dpdk/include/odp_packet_io_internal.h
@@ -42,7 +42,10 @@  typedef union pktio_entry_u pktio_entry_t;
 
 struct pktio_entry {
 	const pktio_ops_module_t *ops;	/**< Implementation specific methods */
-	pktio_ops_data_t ops_data;
+	union {
+		pktio_ops_data_t ops_data;
+		uint8_t _ops_data[ODP_PKTIO_ODPS_DATA_MAX_SIZE];
+	};
 	/* These two locks together lock the whole pktio device */
 	odp_ticketlock_t rxl;		/**< RX ticketlock */
 	odp_ticketlock_t txl;		/**< TX ticketlock */
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h
index 9fe9aeaa7..0201a47fa 100644
--- a/platform/linux-generic/include/odp_packet_io_internal.h
+++ b/platform/linux-generic/include/odp_packet_io_internal.h
@@ -48,7 +48,10 @@  typedef union pktio_entry_u pktio_entry_t;
 
 struct pktio_entry {
 	const pktio_ops_module_t *ops;	/**< Implementation specific methods */
-	pktio_ops_data_t ops_data;	/**< IO operation specific data */
+	union {
+		pktio_ops_data_t ops_data;  /**< IO operation specific data */
+		uint8_t _ops_data[ODP_PKTIO_ODPS_DATA_MAX_SIZE];
+	};
 	/* These two locks together lock the whole pktio device */
 	odp_ticketlock_t rxl;		/**< RX ticketlock */
 	odp_ticketlock_t txl;		/**< TX ticketlock */
diff --git a/platform/linux-generic/include/odp_pktio_ops_subsystem.h b/platform/linux-generic/include/odp_pktio_ops_subsystem.h
index 7a915b82c..a8da6197b 100644
--- a/platform/linux-generic/include/odp_pktio_ops_subsystem.h
+++ b/platform/linux-generic/include/odp_pktio_ops_subsystem.h
@@ -103,4 +103,11 @@  typedef union {
 /* Extract pktio ops data from pktio entry structure */
 #define ops_data(mod) s.ops_data.mod
 
+/* Maximum size of pktio specific ops data.*/
+#define ODP_PKTIO_ODPS_DATA_MAX_SIZE 80000
+
+/* Extract pktio ops data from pktio entry structure */
+#define odp_ops_data(_p, _mod) \
+	((pktio_ops_ ## _mod ## _data_t *)(uintptr_t)_p->s._ops_data)
+
 #endif