size_t *offset);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
* Register external memory chunk with DPDK.
*
* @note Using this API is mutually exclusive with ``rte_malloc`` family of
* EEXIST - memory chunk is already registered
* ENOSPC - no more space in internal config to store a new memory chunk
*/
-__rte_experimental
int
rte_extmem_register(void *va_addr, size_t len, rte_iova_t iova_addrs[],
unsigned int n_pages, size_t page_sz);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
* Unregister external memory chunk with DPDK.
*
* @note Using this API is mutually exclusive with ``rte_malloc`` family of
* EINVAL - one of the parameters was invalid
* ENOENT - memory chunk was not found
*/
-__rte_experimental
int
rte_extmem_unregister(void *va_addr, size_t len);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
* Attach to external memory chunk registered in another process.
*
* @note Using this API is mutually exclusive with ``rte_malloc`` family of
* EINVAL - one of the parameters was invalid
* ENOENT - memory chunk was not found
*/
-__rte_experimental
int
rte_extmem_attach(void *va_addr, size_t len);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
* Detach from external memory chunk registered in another process.
*
* @note Using this API is mutually exclusive with ``rte_malloc`` family of
* EINVAL - one of the parameters was invalid
* ENOENT - memory chunk was not found
*/
-__rte_experimental
int
rte_extmem_detach(void *va_addr, size_t len);