int32_t socket_id; /**< NUMA socket ID. */
uint32_t flags; /**< Characteristics of this memzone. */
- uint32_t memseg_id; /** <store the memzone is from which memseg. */
+ uint32_t memseg_id; /**< Memseg it belongs. */
} __attribute__((__packed__));
/**
*
* This function reserves some memory and returns a pointer to a
* correctly filled memzone descriptor. If the allocation cannot be
- * done, return NULL. Note: A reserved zone cannot be freed.
+ * done, return NULL.
*
* @param name
* The name of the memzone. If it already exists, the function will
* boundary, and returns a pointer to a correctly filled memzone
* descriptor. If the allocation cannot be done or if the alignment
* is not a power of 2, returns NULL.
- * Note: A reserved zone cannot be freed.
*
* @param name
* The name of the memzone. If it already exists, the function will
* Memory buffer is reserved in a way, that it wouldn't cross specified
* boundary. That implies that requested length should be less or equal
* then boundary.
- * Note: A reserved zone cannot be freed.
*
* @param name
* The name of the memzone. If it already exists, the function will
size_t len, int socket_id,
unsigned flags, unsigned align, unsigned bound);
+/**
+ * Free a memzone.
+ *
+ * Note: an IVSHMEM zone cannot be freed.
+ *
+ * @param mz
+ * A pointer to the memzone
+ * @return
+ * -EINVAL - invalid parameter, IVSHMEM memzone.
+ * 0 - success
+ */
+int rte_memzone_free(const struct rte_memzone *mz);
+
/**
* Lookup for a memzone.
*