[PATCH v3 10/15] eventdev: add allocation function attributes
Stephen Hemminger
stephen at networkplumber.org
Thu Jan 23 17:28:10 CET 2025
Use function attributes to catch cases where eventdev is allocated
but not freed correctly.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
lib/eventdev/rte_event_ring.h | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/lib/eventdev/rte_event_ring.h b/lib/eventdev/rte_event_ring.h
index 5769da269e..a8f308e4d6 100644
--- a/lib/eventdev/rte_event_ring.h
+++ b/lib/eventdev/rte_event_ring.h
@@ -247,7 +247,18 @@ int
rte_event_ring_init(struct rte_event_ring *r, const char *name,
unsigned int count, unsigned int flags);
-/*
+
+/**
+ * De-allocate all memory used by the ring.
+ *
+ * @param r
+ * Pointer to ring to created with rte_event_ring_create().
+ * If r is NULL, no operation is performed.
+ */
+void
+rte_event_ring_free(struct rte_event_ring *r);
+
+/**
* Create an event ring structure
*
* This function allocates memory and initializes an event ring inside that
@@ -288,8 +299,8 @@ rte_event_ring_init(struct rte_event_ring *r, const char *name,
* - ENOMEM - no appropriate memory area found in which to create memzone
*/
struct rte_event_ring *
-rte_event_ring_create(const char *name, unsigned int count, int socket_id,
- unsigned int flags);
+rte_event_ring_create(const char *name, unsigned int count, int socket_id, unsigned int flags)
+ __rte_malloc __rte_dealloc(rte_event_ring_free, 1);
/**
* Search for an event ring based on its name
@@ -304,16 +315,6 @@ rte_event_ring_create(const char *name, unsigned int count, int socket_id,
struct rte_event_ring *
rte_event_ring_lookup(const char *name);
-/**
- * De-allocate all memory used by the ring.
- *
- * @param r
- * Pointer to ring to created with rte_event_ring_create().
- * If r is NULL, no operation is performed.
- */
-void
-rte_event_ring_free(struct rte_event_ring *r);
-
/**
* Return the size of the event ring.
*
--
2.45.2
More information about the dev
mailing list