"headers ("current_file")";
ret = 1;
}
+ if ($1 != "+__rte_experimental" || $2 != "") {
+ print "__rte_experimental must appear alone on the line" \
+ " immediately preceding the return type of a function."
+ ret = 1;
+ }
}
END {
exit ret;
* - (-ENODEV) if *port* invalid.
* - (IXGBE_ERR_SWFW_SYNC) If sw/fw semaphore acquisition failed
*/
-int __rte_experimental
+__rte_experimental
+int
rte_pmd_ixgbe_mdio_lock(uint16_t port);
/**
* - (-ENOTSUP) if hardware doesn't support.
* - (-ENODEV) if *port* invalid.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_pmd_ixgbe_mdio_unlock(uint16_t port);
/**
* - (-ENODEV) if *port* invalid.
* - (IXGBE_ERR_PHY) If PHY read command failed
*/
-int __rte_experimental
+__rte_experimental
+int
rte_pmd_ixgbe_mdio_unlocked_read(uint16_t port, uint32_t reg_addr,
uint32_t dev_type, uint16_t *phy_data);
* - (-ENODEV) if *port* invalid.
* - (IXGBE_ERR_PHY) If PHY read command failed
*/
-int __rte_experimental
+__rte_experimental
+int
rte_pmd_ixgbe_mdio_unlocked_write(uint16_t port, uint32_t reg_addr,
uint32_t dev_type, uint16_t phy_data);
* - (-ENODEV) if *port* invalid.
* - (-ENOTSUP) if hardware doesn't support this feature.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_pmd_ixgbe_upd_fctrl_sbp(uint16_t port, int enable);
#endif /* _PMD_IXGBE_H_ */
* @return
* Zero on success, error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_pmd_softnic_manage(uint16_t port_id);
#ifdef __cplusplus
* @return
* The total number of usable devices.
*/
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
rte_bbdev_count(void);
/**
* @return
* true if device ID is valid and device is attached, false otherwise.
*/
-bool __rte_experimental
+__rte_experimental
+bool
rte_bbdev_is_valid(uint16_t dev_id);
/**
* - The next device, or
* - RTE_BBDEV_MAX_DEVS if none found
*/
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
rte_bbdev_find_next(uint16_t dev_id);
/** Iterate through all enabled devices */
* - -EBUSY if the identified device has already started
* - -ENOMEM if unable to allocate memory
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id);
/**
* - -EBUSY if the identified device has already started
* - -ENOTSUP if the interrupts are not supported by the device
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_intr_enable(uint16_t dev_id);
/** Device queue configuration structure */
* - EINVAL if the identified queue size or priority are invalid
* - EBUSY if the identified queue or its device have already started
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
const struct rte_bbdev_queue_conf *conf);
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_start(uint16_t dev_id);
/**
* @return
* - 0 on success
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_stop(uint16_t dev_id);
/**
* @return
* - 0 on success
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_close(uint16_t dev_id);
/**
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id);
/**
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id);
/** Device statistics. */
* - 0 on success
* - EINVAL if invalid parameter pointer is provided
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats);
/**
* @return
* - 0 on success
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_stats_reset(uint16_t dev_id);
/** Device information supplied by the device's driver */
* - 0 on success
* - EINVAL if invalid parameter pointer is provided
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info);
/** Queue information */
* - 0 on success
* - EINVAL if invalid parameter pointer is provided
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id,
struct rte_bbdev_queue_info *queue_info);
* The number of operations actually enqueued (this is the number of processed
* entries in the @p ops array).
*/
-static inline uint16_t __rte_experimental
+__rte_experimental
+static inline uint16_t
rte_bbdev_enqueue_enc_ops(uint16_t dev_id, uint16_t queue_id,
struct rte_bbdev_enc_op **ops, uint16_t num_ops)
{
* The number of operations actually enqueued (this is the number of processed
* entries in the @p ops array).
*/
-static inline uint16_t __rte_experimental
+__rte_experimental
+static inline uint16_t
rte_bbdev_enqueue_dec_ops(uint16_t dev_id, uint16_t queue_id,
struct rte_bbdev_dec_op **ops, uint16_t num_ops)
{
* The number of operations actually dequeued (this is the number of entries
* copied into the @p ops array).
*/
-static inline uint16_t __rte_experimental
+__rte_experimental
+static inline uint16_t
rte_bbdev_dequeue_enc_ops(uint16_t dev_id, uint16_t queue_id,
struct rte_bbdev_enc_op **ops, uint16_t num_ops)
{
* copied into the @p ops array).
*/
-static inline uint16_t __rte_experimental
+__rte_experimental
+static inline uint16_t
rte_bbdev_dequeue_dec_ops(uint16_t dev_id, uint16_t queue_id,
struct rte_bbdev_dec_op **ops, uint16_t num_ops)
{
* @return
* Zero on success, negative value on failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event,
rte_bbdev_cb_fn cb_fn, void *cb_arg);
* - EINVAL if invalid parameter pointer is provided
* - EAGAIN if the provided callback pointer does not exist
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event,
rte_bbdev_cb_fn cb_fn, void *cb_arg);
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id);
/**
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id);
/**
* - ENOTSUP if interrupts are not supported by the identified device
* - negative value on failure - as returned from PMD driver
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op,
void *data);
* Operation type as string or NULL if op_type is invalid
*
*/
-const char* __rte_experimental
+__rte_experimental
+const char*
rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type);
/**
* - Pointer to a mempool on success,
* - NULL pointer on failure.
*/
-struct rte_mempool * __rte_experimental
+__rte_experimental
+struct rte_mempool *
rte_bbdev_op_pool_create(const char *name, enum rte_bbdev_op_type type,
unsigned int num_elements, unsigned int cache_size,
int socket_id);
* - 0 on success
* - EINVAL if invalid mempool is provided
*/
-static inline int __rte_experimental
+__rte_experimental
+static inline int
rte_bbdev_enc_op_alloc_bulk(struct rte_mempool *mempool,
struct rte_bbdev_enc_op **ops, uint16_t num_ops)
{
* - 0 on success
* - EINVAL if invalid mempool is provided
*/
-static inline int __rte_experimental
+__rte_experimental
+static inline int
rte_bbdev_dec_op_alloc_bulk(struct rte_mempool *mempool,
struct rte_bbdev_dec_op **ops, uint16_t num_ops)
{
* @param num_ops
* Number of structures
*/
-static inline void __rte_experimental
+__rte_experimental
+static inline void
rte_bbdev_dec_op_free_bulk(struct rte_bbdev_dec_op **ops, unsigned int num_ops)
{
if (num_ops > 0)
* @param num_ops
* Number of structures
*/
-static inline void __rte_experimental
+__rte_experimental
+static inline void
rte_bbdev_enc_op_free_bulk(struct rte_bbdev_enc_op **ops, unsigned int num_ops)
{
if (num_ops > 0)
* @return
* - Slot in the rte_bbdev array for a new device;
*/
-struct rte_bbdev * __rte_experimental
+__rte_experimental
+struct rte_bbdev *
rte_bbdev_allocate(const char *name);
/**
* @return
* - 0 on success, negative on error
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bbdev_release(struct rte_bbdev *bbdev);
/**
* - NULL otherwise
*
*/
-struct rte_bbdev * __rte_experimental
+__rte_experimental
+struct rte_bbdev *
rte_bbdev_get_named_dev(const char *name);
/**
* @param ret_param
* To pass data back to user application.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_bbdev_pmd_callback_process(struct rte_bbdev *dev,
enum rte_bbdev_event_type event, void *ret_param);
* @param bpf
* BPF handle to destroy.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_bpf_destroy(struct rte_bpf *bpf);
/**
* - EINVAL - invalid parameter passed to function
* - ENOMEM - can't reserve enough memory
*/
-struct rte_bpf * __rte_experimental
+__rte_experimental
+struct rte_bpf *
rte_bpf_load(const struct rte_bpf_prm *prm);
/**
* - EINVAL - invalid parameter passed to function
* - ENOMEM - can't reserve enough memory
*/
-struct rte_bpf * __rte_experimental
+__rte_experimental
+struct rte_bpf *
rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname,
const char *sname);
/**
* @return
* BPF execution return value.
*/
-uint64_t __rte_experimental
+__rte_experimental
+uint64_t
rte_bpf_exec(const struct rte_bpf *bpf, void *ctx);
/**
* @return
* number of successfully processed inputs.
*/
-uint32_t __rte_experimental
+__rte_experimental
+uint32_t
rte_bpf_exec_burst(const struct rte_bpf *bpf, void *ctx[], uint64_t rc[],
uint32_t num);
* - -EINVAL if the parameters are invalid.
* - Zero if operation completed successfully.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bpf_get_jit(const struct rte_bpf *bpf, struct rte_bpf_jit *jit);
#ifdef __cplusplus
* @param queue
* The identifier of the RX queue on the given port
*/
-void __rte_experimental
+__rte_experimental
+void
rte_bpf_eth_rx_unload(uint16_t port, uint16_t queue);
/**
* @param queue
* The identifier of the TX queue on the given port
*/
-void __rte_experimental
+__rte_experimental
+void
rte_bpf_eth_tx_unload(uint16_t port, uint16_t queue);
/**
* @return
* Zero on successful completion or negative error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bpf_eth_rx_elf_load(uint16_t port, uint16_t queue,
const struct rte_bpf_prm *prm, const char *fname, const char *sname,
uint32_t flags);
* @return
* Zero on successful completion or negative error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_bpf_eth_tx_elf_load(uint16_t port, uint16_t queue,
const struct rte_bpf_prm *prm, const char *fname, const char *sname,
uint32_t flags);
* - On success pointer to mempool
* - On failure NULL
*/
-struct rte_mempool * __rte_experimental
+__rte_experimental
+struct rte_mempool *
rte_comp_op_pool_create(const char *name,
unsigned int nb_elts, unsigned int cache_size,
uint16_t user_size, int socket_id);
* - On success returns a valid rte_comp_op structure
* - On failure returns NULL
*/
-struct rte_comp_op * __rte_experimental
+__rte_experimental
+struct rte_comp_op *
rte_comp_op_alloc(struct rte_mempool *mempool);
/**
* - nb_ops: Success, the nb_ops requested was allocated
* - 0: Not enough entries in the mempool; no ops are retrieved.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_comp_op_bulk_alloc(struct rte_mempool *mempool,
struct rte_comp_op **ops, uint16_t nb_ops);
* @param op
* Compress operation
*/
-void __rte_experimental
+__rte_experimental
+void
rte_comp_op_free(struct rte_comp_op *op);
/**
* @param nb_ops
* Number of operations to free
*/
-void __rte_experimental
+__rte_experimental
+void
rte_comp_op_bulk_free(struct rte_comp_op **ops, uint16_t nb_ops);
/**
* @return
* The name of this flag, or NULL if it's not a valid feature flag.
*/
-const char * __rte_experimental
+__rte_experimental
+const char *
rte_comp_get_feature_name(uint64_t flag);
#ifdef __cplusplus
#define RTE_COMP_END_OF_CAPABILITIES_LIST() \
{ RTE_COMP_ALGO_UNSPECIFIED }
-const struct rte_compressdev_capabilities * __rte_experimental
+__rte_experimental
+const struct rte_compressdev_capabilities *
rte_compressdev_capability_get(uint8_t dev_id,
enum rte_comp_algorithm algo);
* @return
* The name of this flag, or NULL if it's not a valid feature flag.
*/
-const char * __rte_experimental
+__rte_experimental
+const char *
rte_compressdev_get_feature_name(uint64_t flag);
/** comp device information */
* - Returns compress device identifier on success.
* - Return -1 on failure to find named compress device.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_get_dev_id(const char *name);
/**
* - Returns compress device name.
* - Returns NULL if compress device is not present.
*/
-const char * __rte_experimental
+__rte_experimental
+const char *
rte_compressdev_name_get(uint8_t dev_id);
/**
* @return
* - The total number of usable compress devices.
*/
-uint8_t __rte_experimental
+__rte_experimental
+uint8_t
rte_compressdev_count(void);
/**
* @return
* Returns number of attached compress devices.
*/
-uint8_t __rte_experimental
+__rte_experimental
+uint8_t
rte_compressdev_devices_get(const char *driver_name, uint8_t *devices,
uint8_t nb_devices);
* a default of zero if the socket could not be determined.
* -1 if returned is the dev_id value is out of range.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_socket_id(uint8_t dev_id);
/** Compress device configuration structure */
* - 0: Success, device configured.
* - <0: Error code returned by the driver configuration function.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_configure(uint8_t dev_id,
struct rte_compressdev_config *config);
* - 0: Success, device started.
* - <0: Error code of the driver device start function.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_start(uint8_t dev_id);
/**
* @param dev_id
* Compress device identifier
*/
-void __rte_experimental
+__rte_experimental
+void
rte_compressdev_stop(uint8_t dev_id);
/**
* - 0 on successfully closing device
* - <0 on failure to close device
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_close(uint8_t dev_id);
/**
* - 0: Success, queue pair correctly set up.
* - <0: Queue pair configuration failed
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id,
uint32_t max_inflight_ops, int socket_id);
* @return
* - The number of configured queue pairs.
*/
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
rte_compressdev_queue_pair_count(uint8_t dev_id);
* - Zero if successful.
* - Non-zero otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_stats_get(uint8_t dev_id, struct rte_compressdev_stats *stats);
/**
* @param dev_id
* The identifier of the device.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_compressdev_stats_reset(uint8_t dev_id);
/**
* The element after the last valid element has it's op field set to
* RTE_COMP_ALGO_LIST_END.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_compressdev_info_get(uint8_t dev_id, struct rte_compressdev_info *dev_info);
/**
* of pointers to *rte_comp_op* structures effectively supplied to the
* *ops* array.
*/
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
rte_compressdev_dequeue_burst(uint8_t dev_id, uint16_t qp_id,
struct rte_comp_op **ops, uint16_t nb_ops);
* comp devices queue is full or if invalid parameters are specified in
* a *rte_comp_op*.
*/
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
rte_compressdev_enqueue_burst(uint8_t dev_id, uint16_t qp_id,
struct rte_comp_op **ops, uint16_t nb_ops);
* - Returns -ENOMEM if the private stream could not be allocated.
*
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_stream_create(uint8_t dev_id,
const struct rte_comp_xform *xform,
void **stream);
* - Returns -ENOTSUP if comp device does not support STATEFUL operations.
* - Returns -EBUSY if can't free stream as there are inflight operations
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_stream_free(uint8_t dev_id, void *stream);
/**
* - Returns -ENOTSUP if comp device does not support the comp transform.
* - Returns -ENOMEM if the private_xform could not be allocated.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_private_xform_create(uint8_t dev_id,
const struct rte_comp_xform *xform,
void **private_xform);
* - <0 in error cases
* - Returns -EINVAL if input parameters are invalid.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_private_xform_free(uint8_t dev_id, void *private_xform);
#ifdef __cplusplus
* @return
* - The rte_compressdev structure pointer for the given device identifier.
*/
-struct rte_compressdev * __rte_experimental
+__rte_experimental
+struct rte_compressdev *
rte_compressdev_pmd_get_named_dev(const char *name);
/**
* @return
* - Slot in the rte_dev_devices array for a new device;
*/
-struct rte_compressdev * __rte_experimental
+__rte_experimental
+struct rte_compressdev *
rte_compressdev_pmd_allocate(const char *name, int socket_id);
/**
* @return
* - 0 on success, negative on error
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_pmd_release_device(struct rte_compressdev *dev);
* - 0 on success
* - errno on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_pmd_parse_input_args(
struct rte_compressdev_pmd_init_params *params,
const char *args);
* - comp device instance on success
* - NULL on creation failure
*/
-struct rte_compressdev * __rte_experimental
+__rte_experimental
+struct rte_compressdev *
rte_compressdev_pmd_create(const char *name,
struct rte_device *device,
size_t private_data_size,
* - 0 on success
* - errno on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_compressdev_pmd_destroy(struct rte_compressdev *dev);
#ifdef __cplusplus
* - Return description of the asymmetric crypto capability if exist.
* - Return NULL if the capability not exist.
*/
-const struct rte_cryptodev_asymmetric_xform_capability * __rte_experimental
+__rte_experimental
+const struct rte_cryptodev_asymmetric_xform_capability *
rte_cryptodev_asym_capability_get(uint8_t dev_id,
const struct rte_cryptodev_asym_capability_idx *idx);
* - Return 1 if the op type is supported
* - Return 0 if unsupported
*/
-int __rte_experimental
+__rte_experimental
+int
rte_cryptodev_asym_xform_capability_check_optype(
const struct rte_cryptodev_asymmetric_xform_capability *capability,
enum rte_crypto_asym_op_type op_type);
* - Return 0 if the parameters are in range of the capability.
* - Return -1 if the parameters are out of range of the capability.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_cryptodev_asym_xform_capability_check_modlen(
const struct rte_cryptodev_asymmetric_xform_capability *capability,
uint16_t modlen);
* - Return -1 if string is not valid
* - Return 0 if the string is valid
*/
-int __rte_experimental
+__rte_experimental
+int
rte_cryptodev_asym_get_xform_enum(enum rte_crypto_asym_xform_type *xform_enum,
const char *xform_string);
* - On success return size of the session
* - On failure returns 0
*/
-struct rte_mempool * __rte_experimental
+__rte_experimental
+struct rte_mempool *
rte_cryptodev_sym_session_pool_create(const char *name, uint32_t nb_elts,
uint32_t elt_size, uint32_t cache_size, uint16_t priv_size,
int socket_id);
* - On success return pointer to asym-session
* - On failure returns NULL
*/
-struct rte_cryptodev_asym_session * __rte_experimental
+__rte_experimental
+struct rte_cryptodev_asym_session *
rte_cryptodev_asym_session_create(struct rte_mempool *mempool);
/**
* - -EINVAL if session is NULL.
* - -EBUSY if not all device private data has been freed.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_cryptodev_asym_session_free(struct rte_cryptodev_asym_session *sess);
/**
* - -ENOTSUP if crypto device does not support the crypto transform.
* - -ENOMEM if the private session could not be allocated.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_cryptodev_asym_session_init(uint8_t dev_id,
struct rte_cryptodev_asym_session *sess,
struct rte_crypto_asym_xform *xforms,
* - 0 if successful.
* - -EINVAL if device is invalid or session is NULL.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_cryptodev_asym_session_clear(uint8_t dev_id,
struct rte_cryptodev_asym_session *sess);
* the private data size defined within sess.
* - If sess is NULL, return 0.
*/
-unsigned int __rte_experimental
+__rte_experimental
+unsigned int
rte_cryptodev_sym_get_existing_header_session_size(
struct rte_cryptodev_sym_session *sess);
* @return
* Size of the asymmetric header session.
*/
-unsigned int __rte_experimental
+__rte_experimental
+unsigned int
rte_cryptodev_asym_get_header_session_size(void);
/**
* - Size of the asymmetric private data, if successful
* - 0 if device is invalid or does not have private session
*/
-unsigned int __rte_experimental
+__rte_experimental
+unsigned int
rte_cryptodev_asym_get_private_session_size(uint8_t dev_id);
/**
* - On success, zero.
* - On failure, a negative value.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_cryptodev_sym_session_set_user_data(
struct rte_cryptodev_sym_session *sess,
void *data,
* - On success return pointer to user data.
* - On failure returns NULL.
*/
-void * __rte_experimental
+__rte_experimental
+void *
rte_cryptodev_sym_session_get_user_data(
struct rte_cryptodev_sym_session *sess);
};
} __rte_aligned(16) rte_int128_t;
-static inline int __rte_experimental
+__rte_experimental
+static inline int
rte_atomic128_cmp_exchange(rte_int128_t *dst,
rte_int128_t *exp,
const rte_int128_t *src,
* @return
* Non-zero on success; 0 on failure.
*/
-static inline int __rte_experimental
+__rte_experimental
+static inline int
rte_atomic128_cmp_exchange(rte_int128_t *dst,
rte_int128_t *exp,
const rte_int128_t *src,
* @param us
* Number of microseconds to wait.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_delay_us_sleep(unsigned int us);
/**
* - -EBUSY if lock could not be acquired for reading because a
* writer holds the lock
*/
-static inline __rte_experimental int
+__rte_experimental
+static inline int
rte_rwlock_read_trylock(rte_rwlock_t *rwl)
{
int32_t x;
* - -EBUSY if lock could not be acquired for writing because
* it was already locked for reading or writing
*/
-static inline __rte_experimental int
+__rte_experimental
+static inline int
rte_rwlock_write_trylock(rte_rwlock_t *rwl)
{
int32_t x;
* @param tl
* A pointer to the ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_init(rte_ticketlock_t *tl)
{
__atomic_store_n(&tl->tickets, 0, __ATOMIC_RELAXED);
* @param tl
* A pointer to the ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_lock(rte_ticketlock_t *tl)
{
uint16_t me = __atomic_fetch_add(&tl->s.next, 1, __ATOMIC_RELAXED);
* @param tl
* A pointer to the ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_unlock(rte_ticketlock_t *tl)
{
uint16_t i = __atomic_load_n(&tl->s.current, __ATOMIC_RELAXED);
* @return
* 1 if the lock is successfully taken; 0 otherwise.
*/
-static inline __rte_experimental int
+__rte_experimental
+static inline int
rte_ticketlock_trylock(rte_ticketlock_t *tl)
{
rte_ticketlock_t old, new;
* @return
* 1 if the lock is currently taken; 0 otherwise.
*/
-static inline __rte_experimental int
+__rte_experimental
+static inline int
rte_ticketlock_is_locked(rte_ticketlock_t *tl)
{
rte_ticketlock_t tic;
* @param tlr
* A pointer to the recursive ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_recursive_init(rte_ticketlock_recursive_t *tlr)
{
rte_ticketlock_init(&tlr->tl);
* @param tlr
* A pointer to the recursive ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_recursive_lock(rte_ticketlock_recursive_t *tlr)
{
int id = rte_gettid();
* @param tlr
* A pointer to the recursive ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_recursive_unlock(rte_ticketlock_recursive_t *tlr)
{
if (--(tlr->count) == 0) {
* @return
* 1 if the lock is successfully taken; 0 otherwise.
*/
-static inline __rte_experimental int
+__rte_experimental
+static inline int
rte_ticketlock_recursive_trylock(rte_ticketlock_recursive_t *tlr)
{
int id = rte_gettid();
* - On success, zero.
* - On failure, a negative value.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_dev_event_callback_register(const char *device_name,
rte_dev_event_cb_fn cb_fn,
void *cb_arg);
* - On success, return the number of callback entities removed.
* - On failure, a negative value.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_dev_event_callback_unregister(const char *device_name,
rte_dev_event_cb_fn cb_fn,
void *cb_arg);
* @param event
* the device event type.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_dev_event_callback_process(const char *device_name,
enum rte_dev_event_type event);
* - On success, zero.
* - On failure, a negative value.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_dev_event_monitor_start(void);
/**
* - On success, zero.
* - On failure, a negative value.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_dev_event_monitor_stop(void);
/**
* - On success, zero.
* - On failure, a negative value.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_dev_hotplug_handle_enable(void);
/**
* - On success, zero.
* - On failure, a negative value.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_dev_hotplug_handle_disable(void);
/**
* 0 if mapping was successful.
* Negative value and rte_errno is set otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, size_t len);
/**
* 0 if un-mapping was successful.
* Negative value and rte_errno is set otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova,
size_t len);
* - 0 on success.
* - (<0) on failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mp_action_register(const char *name, rte_mp_t action);
/**
* The name argument plays as the nonredundant key to find the action.
*
*/
-void __rte_experimental
+__rte_experimental
+void
rte_mp_action_unregister(const char *name);
/**
* - On success, return 0.
* - On failure, return -1, and the reason will be stored in rte_errno.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mp_sendmsg(struct rte_mp_msg *msg);
/**
* - On success, return 0.
* - On failure, return -1, and the reason will be stored in rte_errno.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mp_request_sync(struct rte_mp_msg *req, struct rte_mp_reply *reply,
const struct timespec *ts);
* - On success, return 0.
* - On failure, return -1, and the reason will be stored in rte_errno.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mp_request_async(struct rte_mp_msg *req, const struct timespec *ts,
rte_mp_async_reply_t clb);
* - On success, return 0.
* - On failure, return -1, and the reason will be stored in rte_errno.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mp_reply(struct rte_mp_msg *msg, const char *peer);
/**
* - 0 on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_init(struct rte_fbarray *arr, const char *name, unsigned int len,
unsigned int elt_sz);
* - 0 on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_attach(struct rte_fbarray *arr);
* - 0 on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_destroy(struct rte_fbarray *arr);
* - 0 on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_detach(struct rte_fbarray *arr);
* - non-NULL pointer on success.
* - NULL on failure, with ``rte_errno`` indicating reason for failure.
*/
-void * __rte_experimental
+__rte_experimental
+void *
rte_fbarray_get(const struct rte_fbarray *arr, unsigned int idx);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_idx(const struct rte_fbarray *arr, const void *elt);
* - 0 on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_set_used(struct rte_fbarray *arr, unsigned int idx);
* - 0 on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_set_free(struct rte_fbarray *arr, unsigned int idx);
* - 0 if element is unused.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_is_used(struct rte_fbarray *arr, unsigned int idx);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_next_free(struct rte_fbarray *arr, unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_next_used(struct rte_fbarray *arr, unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_next_n_free(struct rte_fbarray *arr, unsigned int start,
unsigned int n);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_next_n_used(struct rte_fbarray *arr, unsigned int start,
unsigned int n);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_contig_free(struct rte_fbarray *arr,
unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_contig_used(struct rte_fbarray *arr, unsigned int start);
/**
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_prev_free(struct rte_fbarray *arr, unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_prev_used(struct rte_fbarray *arr, unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_prev_n_free(struct rte_fbarray *arr, unsigned int start,
unsigned int n);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_prev_n_used(struct rte_fbarray *arr, unsigned int start,
unsigned int n);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_rev_contig_free(struct rte_fbarray *arr,
unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_rev_contig_used(struct rte_fbarray *arr, unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_biggest_free(struct rte_fbarray *arr, unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_biggest_used(struct rte_fbarray *arr, unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_rev_biggest_free(struct rte_fbarray *arr, unsigned int start);
* - non-negative integer on success.
* - -1 on failure, with ``rte_errno`` indicating reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_fbarray_find_rev_biggest_used(struct rte_fbarray *arr, unsigned int start);
* @param f
* File object to dump information into.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_fbarray_dump_metadata(struct rte_fbarray *arr, FILE *f);
#ifdef __cplusplus
* - On success, return the number of callback entities marked for remove.
* - On failure, a negative value.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_intr_callback_unregister_pending(const struct rte_intr_handle *intr_handle,
rte_intr_callback_fn cb_fn, void *cb_arg,
rte_intr_unregister_callback_fn ucb_fn);
* @return
* The relative index, or -1 if not enabled.
*/
-__rte_experimental int
+__rte_experimental
+int
rte_lcore_to_cpu_id(int lcore_id);
/**
* @return
* The cpuset of that lcore
*/
-__rte_experimental rte_cpuset_t
+__rte_experimental
+rte_cpuset_t
rte_lcore_cpuset(unsigned int lcore_id);
/**
* align is not a power of two).
* - Otherwise, the pointer to the reallocated memory.
*/
-void * __rte_experimental
+__rte_experimental
+void *
rte_realloc_socket(void *ptr, size_t size, unsigned int align, int socket);
/**
* EPERM - attempted to add memory to a reserved heap
* ENOSPC - no more space in internal config to store a new memory chunk
*/
-int __rte_experimental
+__rte_experimental
+int
rte_malloc_heap_memory_add(const char *heap_name, void *va_addr, size_t len,
rte_iova_t iova_addrs[], unsigned int n_pages, size_t page_sz);
* ENOENT - heap or memory chunk was not found
* EBUSY - memory chunk still contains data
*/
-int __rte_experimental
+__rte_experimental
+int
rte_malloc_heap_memory_remove(const char *heap_name, void *va_addr, size_t len);
/**
* EPERM - attempted to attach memory to a reserved heap
* ENOENT - heap or memory chunk was not found
*/
-int __rte_experimental
+__rte_experimental
+int
rte_malloc_heap_memory_attach(const char *heap_name, void *va_addr, size_t len);
/**
* EPERM - attempted to detach memory from a reserved heap
* ENOENT - heap or memory chunk was not found
*/
-int __rte_experimental
+__rte_experimental
+int
rte_malloc_heap_memory_detach(const char *heap_name, void *va_addr, size_t len);
/**
* EEXIST - heap by name of ``heap_name`` already exists
* ENOSPC - no more space in internal config to store a new heap
*/
-int __rte_experimental
+__rte_experimental
+int
rte_malloc_heap_create(const char *heap_name);
/**
* EPERM - attempting to destroy reserved heap
* EBUSY - heap still contains data
*/
-int __rte_experimental
+__rte_experimental
+int
rte_malloc_heap_destroy(const char *heap_name);
/**
* EINVAL - ``name`` was NULL
* ENOENT - heap identified by the name ``name`` was not found
*/
-int __rte_experimental
+__rte_experimental
+int
rte_malloc_heap_get_socket(const char *name);
/**
* 0 if socket ID refers to internal DPDK memory
* -1 if socket ID is invalid
*/
-int __rte_experimental
+__rte_experimental
+int
rte_malloc_heap_socket_is_external(int socket_id);
/**
* @param f
* A pointer to a file for output
*/
-void __rte_experimental
+__rte_experimental
+void
rte_malloc_dump_heaps(FILE *f);
/**
* Virtual address corresponding to iova address (or NULL if address does not
* exist within DPDK memory map).
*/
-__rte_experimental void *
+__rte_experimental
+void *
rte_mem_iova2virt(rte_iova_t iova);
/**
* @return
* Memseg pointer on success, or NULL on error.
*/
-__rte_experimental struct rte_memseg *
+__rte_experimental
+struct rte_memseg *
rte_mem_virt2memseg(const void *virt, const struct rte_memseg_list *msl);
/**
* @return
* Memseg list to which this virtual address belongs to.
*/
-__rte_experimental struct rte_memseg_list *
+__rte_experimental
+struct rte_memseg_list *
rte_mem_virt2memseg_list(const void *virt);
/**
* 1 if stopped by the user
* -1 if user function reported error
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_walk(rte_memseg_walk_t func, void *arg);
/**
* 1 if stopped by the user
* -1 if user function reported error
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_contig_walk(rte_memseg_contig_walk_t func, void *arg);
/**
* 1 if stopped by the user
* -1 if user function reported error
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_list_walk(rte_memseg_list_walk_t func, void *arg);
/**
* 1 if stopped by the user
* -1 if user function reported error
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_walk_thread_unsafe(rte_memseg_walk_t func, void *arg);
/**
* 1 if stopped by the user
* -1 if user function reported error
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_contig_walk_thread_unsafe(rte_memseg_contig_walk_t func, void *arg);
/**
* 1 if stopped by the user
* -1 if user function reported error
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_list_walk_thread_unsafe(rte_memseg_list_walk_t func, void *arg);
/**
* - ENOENT - ``ms`` is an unused segment
* - ENOTSUP - segment fd's are not supported
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_get_fd(const struct rte_memseg *ms);
/**
* - ENOENT - ``ms`` is an unused segment
* - ENOTSUP - segment fd's are not supported
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_get_fd_thread_unsafe(const struct rte_memseg *ms);
/**
* - ENOENT - ``ms`` is an unused segment
* - ENOTSUP - segment fd's are not supported
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_get_fd_offset(const struct rte_memseg *ms, size_t *offset);
/**
* - ENOENT - ``ms`` is an unused segment
* - ENOTSUP - segment fd's are not supported
*/
-int __rte_experimental
+__rte_experimental
+int
rte_memseg_get_fd_offset_thread_unsafe(const struct rte_memseg *ms,
size_t *offset);
* EEXIST - memory chunk is already registered
* ENOSPC - no more space in internal config to store a new memory chunk
*/
-int __rte_experimental
+__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);
* EINVAL - one of the parameters was invalid
* ENOENT - memory chunk was not found
*/
-int __rte_experimental
+__rte_experimental
+int
rte_extmem_unregister(void *va_addr, size_t len);
/**
* EINVAL - one of the parameters was invalid
* ENOENT - memory chunk was not found
*/
-int __rte_experimental
+__rte_experimental
+int
rte_extmem_attach(void *va_addr, size_t len);
/**
* EINVAL - one of the parameters was invalid
* ENOENT - memory chunk was not found
*/
-int __rte_experimental
+__rte_experimental
+int
rte_extmem_detach(void *va_addr, size_t len);
/**
* @param maskbits
* Address width to check against.
*/
-int __rte_experimental rte_mem_check_dma_mask(uint8_t maskbits);
+__rte_experimental
+int rte_mem_check_dma_mask(uint8_t maskbits);
/**
* @warning
* @param maskbits
* Address width to check against.
*/
-int __rte_experimental rte_mem_check_dma_mask_thread_unsafe(uint8_t maskbits);
+__rte_experimental
+int rte_mem_check_dma_mask_thread_unsafe(uint8_t maskbits);
/**
* @warning
* rte_mem_check_dma_mask and rte_mem_check_dma_mask_thread_unsafe can not be
* used safely until memory has been initialized.
*/
-void __rte_experimental rte_mem_set_dma_mask(uint8_t maskbits);
+__rte_experimental
+void rte_mem_set_dma_mask(uint8_t maskbits);
/**
* Drivers based on uio will not load unless physical
* -1 on unsuccessful callback register, with rte_errno value indicating
* reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mem_event_callback_register(const char *name, rte_mem_event_callback_t clb,
void *arg);
* -1 on unsuccessful callback unregister, with rte_errno value indicating
* reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mem_event_callback_unregister(const char *name, void *arg);
* -1 on unsuccessful callback register, with rte_errno value indicating
* reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mem_alloc_validator_register(const char *name,
rte_mem_alloc_validator_t clb, int socket_id, size_t limit);
* -1 on unsuccessful callback unregister, with rte_errno value indicating
* reason for failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mem_alloc_validator_unregister(const char *name, int socket_id);
#ifdef __cplusplus
* @return
* A pseudo-random value between 0 and (upper_bound-1).
*/
-uint64_t __rte_experimental
+__rte_experimental
+uint64_t
rte_rand_max(uint64_t upper_bound);
#ifdef __cplusplus
* @retval 0 Service is not running on any lcore
* @retval -EINVAL Invalid service id
*/
-int32_t __rte_experimental
+__rte_experimental
+int32_t
rte_service_may_be_active(uint32_t id);
/**
* -EINVAL Invalid lcore, attr_id or attr_value was NULL.
* -ENOTSUP lcore is not a service core.
*/
-int32_t __rte_experimental
+__rte_experimental
+int32_t
rte_service_lcore_attr_get(uint32_t lcore, uint32_t attr_id,
uint64_t *attr_value);
* -EINVAL Invalid service id provided
* -ENOTSUP lcore is not a service core.
*/
-int32_t __rte_experimental
+__rte_experimental
+int32_t
rte_service_lcore_attr_reset_all(uint32_t lcore);
#ifdef __cplusplus
* Next port id of the device, possibly port_id_start,
* RTE_MAX_ETHPORTS if there is none.
*/
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
rte_eth_find_next_of(uint16_t port_id_start,
const struct rte_device *parent);
* Next sibling port id, possibly port_id_start or ref_port_id itself,
* RTE_MAX_ETHPORTS if there is none.
*/
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
rte_eth_find_next_sibling(uint16_t port_id_start,
uint16_t ref_port_id);
* @return
* Negative errno value on error, 0 on success.
*/
-int __rte_experimental rte_eth_dev_owner_new(uint64_t *owner_id);
+__rte_experimental
+int rte_eth_dev_owner_new(uint64_t *owner_id);
/**
* @warning
* @return
* Negative errno value on error, 0 on success.
*/
-int __rte_experimental rte_eth_dev_owner_set(const uint16_t port_id,
+__rte_experimental
+int rte_eth_dev_owner_set(const uint16_t port_id,
const struct rte_eth_dev_owner *owner);
/**
* @return
* 0 on success, negative errno value on error.
*/
-int __rte_experimental rte_eth_dev_owner_unset(const uint16_t port_id,
+__rte_experimental
+int rte_eth_dev_owner_unset(const uint16_t port_id,
const uint64_t owner_id);
/**
* @param owner_id
* The owner identifier.
*/
-void __rte_experimental rte_eth_dev_owner_delete(const uint64_t owner_id);
+__rte_experimental
+void rte_eth_dev_owner_delete(const uint64_t owner_id);
/**
* @warning
* @return
* 0 on success, negative errno value on error..
*/
-int __rte_experimental rte_eth_dev_owner_get(const uint16_t port_id,
+__rte_experimental
+int rte_eth_dev_owner_get(const uint16_t port_id,
struct rte_eth_dev_owner *owner);
/**
* @return
* 1 when the Ethernet device is removed, otherwise 0.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_dev_is_removed(uint16_t port_id);
/**
* successful.
* - (-1) on error.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_dev_rx_intr_ctl_q_get_fd(uint16_t port_id, uint16_t queue_id);
/**
* - (-EIO) if device is removed.
* - others depends on the specific operations implementation.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_dev_get_module_info(uint16_t port_id,
struct rte_eth_dev_module_info *modinfo);
* - (-EIO) if device is removed.
* - others depends on the specific operations implementation.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_dev_get_module_eeprom(uint16_t port_id,
struct rte_dev_eeprom_info *info);
* - -ENODEV: The port ID is invalid.
* - -ENOTSUP: The function is not supported by the Ethernet driver.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_read_clock(uint16_t port_id, uint64_t *clock);
/**
* @return
* Negative errno value on error, 0 on success.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_switch_domain_alloc(uint16_t *domain_id);
/**
* @return
* Negative errno value on error, 0 on success.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_switch_domain_free(uint16_t domain_id);
/** Generic Ethernet device arguments */
* @return
* Negative errno value on error, 0 on success.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_devargs_parse(const char *devargs, struct rte_eth_devargs *eth_devargs);
* @return
* Negative errno value on error, 0 on success.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_dev_create(struct rte_device *device, const char *name,
size_t priv_data_size,
ethdev_bus_specific_init bus_specific_init, void *bus_init_params,
* @return
* Negative errno value on error, 0 on success.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_eth_dev_destroy(struct rte_eth_dev *ethdev, ethdev_uninit_t ethdev_uninit);
#ifdef __cplusplus
*
* -E2BIG: graph-depth @p graph is too deep.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
const struct rte_flow_item *pattern, uint64_t types,
const struct rte_flow_expand_node graph[],
* @return
* 0 on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_capabilities_get(uint16_t port_id,
struct rte_mtr_capabilities *cap,
struct rte_mtr_error *error);
* @return
* 0 on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_meter_profile_add(uint16_t port_id,
uint32_t meter_profile_id,
struct rte_mtr_meter_profile *profile,
* @return
* 0 on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_meter_profile_delete(uint16_t port_id,
uint32_t meter_profile_id,
struct rte_mtr_error *error);
*
* @see enum rte_flow_action_type::RTE_FLOW_ACTION_TYPE_METER
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_create(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_params *params,
* @return
* 0 on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_destroy(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_error *error);
* @return
* 0 on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_meter_disable(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_error *error);
* @return
* 0 on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_meter_enable(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_error *error);
* @return
* 0 on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_meter_profile_update(uint16_t port_id,
uint32_t mtr_id,
uint32_t meter_profile_id,
* @return
* 0 on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_meter_dscp_table_update(uint16_t port_id,
uint32_t mtr_id,
enum rte_color *dscp_table,
* @return
* 0 on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_policer_actions_update(uint16_t port_id,
uint32_t mtr_id,
uint32_t action_mask,
*
* @see enum rte_mtr_stats_type
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_stats_update(uint16_t port_id,
uint32_t mtr_id,
uint64_t stats_mask,
*
* @see enum rte_mtr_stats_type
*/
-int __rte_experimental
+__rte_experimental
+int
rte_mtr_stats_read(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_stats *stats,
* - 0: Success, retrieved successfully.
* - <0: Error code on failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_event_eth_rx_adapter_stats_get(uint8_t id,
struct rte_event_eth_rx_adapter_stats *stats);
* - 0: Success
* - <0: Error code on failure.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_event_eth_rx_adapter_cb_register(uint8_t id,
uint16_t eth_dev_id,
rte_event_eth_rx_adapter_cb_fn cb_fn,
* @return
* Handle to flow classifier instance on success or NULL otherwise
*/
-struct rte_flow_classifier * __rte_experimental
+__rte_experimental
+struct rte_flow_classifier *
rte_flow_classifier_create(struct rte_flow_classifier_params *params);
/**
* @return
* 0 on success, error code otherwise
*/
-int __rte_experimental
+__rte_experimental
+int
rte_flow_classifier_free(struct rte_flow_classifier *cls);
/**
* @return
* 0 on success, error code otherwise
*/
-int __rte_experimental
+__rte_experimental
+int
rte_flow_classify_table_create(struct rte_flow_classifier *cls,
struct rte_flow_classify_table_params *params);
* @return
* 0 on success, error code otherwise
*/
-int __rte_experimental
+__rte_experimental
+int
rte_flow_classify_validate(struct rte_flow_classifier *cls,
const struct rte_flow_attr *attr,
const struct rte_flow_item pattern[],
* @return
* A valid handle in case of success, NULL otherwise.
*/
-struct rte_flow_classify_rule * __rte_experimental
+__rte_experimental
+struct rte_flow_classify_rule *
rte_flow_classify_table_entry_add(struct rte_flow_classifier *cls,
const struct rte_flow_attr *attr,
const struct rte_flow_item pattern[],
* @return
* 0 on success, error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_flow_classify_table_entry_delete(struct rte_flow_classifier *cls,
struct rte_flow_classify_rule *rule);
* @return
* 0 on success, error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_flow_classifier_query(struct rte_flow_classifier *cls,
struct rte_mbuf **pkts,
const uint16_t nb_pkts,
* - 0 if freed successfully
* - -EINVAL if the parameters are invalid.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_hash_free_key_with_position(const struct rte_hash *h,
const int32_t position);
* @param tms
* Current timestamp
*/
-void __rte_experimental
+__rte_experimental
+void
rte_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl,
struct rte_ip_frag_death_row *dr, uint64_t tms);
* - Zero if operation completed successfully.
* - -EINVAL if the parameters are invalid.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_ipsec_session_prepare(struct rte_ipsec_session *ss);
/**
* @return
* Number of successfully processed packets, with error code set in rte_errno.
*/
-static inline uint16_t __rte_experimental
+__rte_experimental
+static inline uint16_t
rte_ipsec_pkt_crypto_prepare(const struct rte_ipsec_session *ss,
struct rte_mbuf *mb[], struct rte_crypto_op *cop[], uint16_t num)
{
* @return
* Number of successfully processed packets, with error code set in rte_errno.
*/
-static inline uint16_t __rte_experimental
+__rte_experimental
+static inline uint16_t
rte_ipsec_pkt_process(const struct rte_ipsec_session *ss, struct rte_mbuf *mb[],
uint16_t num)
{
* @return
* The pointer to the related *rte_ipsec_session* structure.
*/
-static inline __rte_experimental struct rte_ipsec_session *
+__rte_experimental
+static inline struct rte_ipsec_session *
rte_ipsec_ses_from_crypto(const struct rte_crypto_op *cop)
{
const struct rte_security_session *ss;
* @return
* Number of filled elements in *grp* array.
*/
-static inline uint16_t __rte_experimental
+__rte_experimental
+static inline uint16_t
rte_ipsec_pkt_crypto_group(const struct rte_crypto_op *cop[],
struct rte_mbuf *mb[], struct rte_ipsec_group grp[], uint16_t num)
{
* @return
* SA type value.
*/
-uint64_t __rte_experimental
+__rte_experimental
+uint64_t
rte_ipsec_sa_type(const struct rte_ipsec_sa *sa);
/**
* - Actual size required for SA with given parameters.
* - -EINVAL if the parameters are invalid.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_ipsec_sa_size(const struct rte_ipsec_sa_prm *prm);
/**
* - -EINVAL if the parameters are invalid.
* - -ENOSPC if the size of the provided buffer is not big enough.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_ipsec_sa_init(struct rte_ipsec_sa *sa, const struct rte_ipsec_sa_prm *prm,
uint32_t size);
* @param sa
* Pointer to SA object to de-initialize.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_ipsec_sa_fini(struct rte_ipsec_sa *sa);
#ifdef __cplusplus
* Previous link state == linkdown: 0
* Previous link state == linkup: 1
*/
-int __rte_experimental
+__rte_experimental
+int
rte_kni_update_link(struct rte_kni *kni, unsigned int linkup);
/**
* @return
* The pointer of the mbuf buffer.
*/
-static inline char * __rte_experimental
+__rte_experimental
+static inline char *
rte_mbuf_buf_addr(struct rte_mbuf *mb, struct rte_mempool *mp)
{
return (char *)mb + sizeof(*mb) + rte_pktmbuf_priv_size(mp);
* @return
* The pointer of the beginning of the mbuf data.
*/
-static inline char * __rte_experimental
-rte_mbuf_data_addr_default(struct rte_mbuf *mb)
+__rte_experimental
+static inline char *
+rte_mbuf_data_addr_default(__rte_unused struct rte_mbuf *mb)
{
+ /* gcc complains about calling this experimental function even
+ * when not using it. Hide it with ALLOW_EXPERIMENTAL_API.
+ */
+#ifdef ALLOW_EXPERIMENTAL_API
return rte_mbuf_buf_addr(mb, mb->pool) + RTE_PKTMBUF_HEADROOM;
+#else
+ return NULL;
+#endif
}
/**
* @return
* The starting address of the private data area of the given mbuf.
*/
-static inline void * __rte_experimental
+__rte_experimental
+static inline void *
rte_mbuf_to_priv(struct rte_mbuf *m)
{
return RTE_PTR_ADD(m, sizeof(struct rte_mbuf));
* @return
* 0 upon success, error code otherwise
*/
-int __rte_experimental
+__rte_experimental
+int
rte_meter_trtcm_rfc4115_profile_config(
struct rte_meter_trtcm_rfc4115_profile *p,
struct rte_meter_trtcm_rfc4115_params *params);
* @return
* 0 upon success, error code otherwise
*/
-int __rte_experimental
+__rte_experimental
+int
rte_meter_trtcm_rfc4115_config(struct rte_meter_trtcm_rfc4115 *m,
struct rte_meter_trtcm_rfc4115_profile *p);
* @return
* Color assigned to the current IP packet
*/
-static inline enum rte_color __rte_experimental
+__rte_experimental
+static inline enum rte_color
rte_meter_trtcm_rfc4115_color_blind_check(
struct rte_meter_trtcm_rfc4115 *m,
struct rte_meter_trtcm_rfc4115_profile *p,
* @return
* Color assigned to the current IP packet
*/
-static inline enum rte_color __rte_experimental
+__rte_experimental
+static inline enum rte_color
rte_meter_trtcm_rfc4115_color_aware_check(
struct rte_meter_trtcm_rfc4115 *m,
struct rte_meter_trtcm_rfc4115_profile *p,
return RTE_COLOR_GREEN;
}
-static inline enum rte_color __rte_experimental
+__rte_experimental
+static inline enum rte_color
rte_meter_trtcm_rfc4115_color_blind_check(
struct rte_meter_trtcm_rfc4115 *m,
struct rte_meter_trtcm_rfc4115_profile *p,
return RTE_COLOR_RED;
}
-static inline enum rte_color __rte_experimental
+__rte_experimental
+static inline enum rte_color
rte_meter_trtcm_rfc4115_color_aware_check(
struct rte_meter_trtcm_rfc4115 *m,
struct rte_meter_trtcm_rfc4115_profile *p,
* @return
* - RARP packet pointer on success, or NULL on error
*/
-struct rte_mbuf * __rte_experimental
+__rte_experimental
+struct rte_mbuf *
rte_net_make_rarp_packet(struct rte_mempool *mpool,
const struct rte_ether_addr *mac);
* Protocol that follows IPv6 header.
* -1 if an error occurs during mbuf parsing.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_net_skip_ip6_ext(uint16_t proto, const struct rte_mbuf *m, uint32_t *off,
int *frag);
* @return
* Input port action profile handle on success, NULL otherwise.
*/
-struct rte_port_in_action_profile * __rte_experimental
+__rte_experimental
+struct rte_port_in_action_profile *
rte_port_in_action_profile_create(uint32_t socket_id);
/**
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_port_in_action_profile_free(struct rte_port_in_action_profile *profile);
/**
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_port_in_action_profile_action_register(
struct rte_port_in_action_profile *profile,
enum rte_port_in_action_type type,
*
* @see rte_port_in_action_create()
*/
-int __rte_experimental
+__rte_experimental
+int
rte_port_in_action_profile_freeze(struct rte_port_in_action_profile *profile);
/**
* @return
* Handle to input port action object on success, NULL on error.
*/
-struct rte_port_in_action * __rte_experimental
+__rte_experimental
+struct rte_port_in_action *
rte_port_in_action_create(struct rte_port_in_action_profile *profile,
uint32_t socket_id);
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_port_in_action_free(struct rte_port_in_action *action);
/**
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_port_in_action_params_get(struct rte_port_in_action *action,
struct rte_pipeline_port_in_params *params);
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_port_in_action_apply(struct rte_port_in_action *action,
enum rte_port_in_action_type type,
void *action_params);
* @return
* Table action profile handle on success, NULL otherwise.
*/
-struct rte_table_action_profile * __rte_experimental
+__rte_experimental
+struct rte_table_action_profile *
rte_table_action_profile_create(struct rte_table_action_common_config *common);
/**
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_profile_free(struct rte_table_action_profile *profile);
/**
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_profile_action_register(struct rte_table_action_profile *profile,
enum rte_table_action_type type,
void *action_config);
*
* @see rte_table_action_create()
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_profile_freeze(struct rte_table_action_profile *profile);
/**
*
* @see rte_table_action_create()
*/
-struct rte_table_action * __rte_experimental
+__rte_experimental
+struct rte_table_action *
rte_table_action_create(struct rte_table_action_profile *profile,
uint32_t socket_id);
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_free(struct rte_table_action *action);
/**
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_table_params_get(struct rte_table_action *action,
struct rte_pipeline_table_params *params);
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_apply(struct rte_table_action *action,
void *data,
enum rte_table_action_type type,
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_dscp_table_update(struct rte_table_action *action,
uint64_t dscp_mask,
struct rte_table_action_dscp_table *table);
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_meter_profile_add(struct rte_table_action *action,
uint32_t meter_profile_id,
struct rte_table_action_meter_profile *profile);
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_meter_profile_delete(struct rte_table_action *action,
uint32_t meter_profile_id);
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_meter_read(struct rte_table_action *action,
void *data,
uint32_t tc_mask,
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_ttl_read(struct rte_table_action *action,
void *data,
struct rte_table_action_ttl_counters *stats,
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_stats_read(struct rte_table_action *action,
void *data,
struct rte_table_action_stats_counters *stats,
* @return
* Zero on success, non-zero error code otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_table_action_time_read(struct rte_table_action *action,
void *data,
uint64_t *timestamp);
* @return
* The pointer to the session on success, NULL otherwise.
*/
-struct rte_cryptodev_sym_session *__rte_experimental
+__rte_experimental
+struct rte_cryptodev_sym_session *
rte_table_action_crypto_sym_session_get(struct rte_table_action *action,
void *data);
* - 0 on success.
* - Negative on error.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_power_empty_poll_stat_init(struct ep_params **eptr, uint8_t *freq_tlb,
struct ep_policy *policy);
/**
* Free the resource hold by power management system.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_power_empty_poll_stat_free(void);
/**
* - 0 on success.
* - Negative on error.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_power_empty_poll_stat_update(unsigned int lcore_id);
/**
* - 0 on success.
* - Negative on error.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_power_poll_stat_update(unsigned int lcore_id, uint8_t nb_pkt);
/**
* @return
* Current lcore empty poll counter value.
*/
-uint64_t __rte_experimental
+__rte_experimental
+uint64_t
rte_power_empty_poll_stat_fetch(unsigned int lcore_id);
/**
* @return
* Current lcore valid poll counter value.
*/
-uint64_t __rte_experimental
+__rte_experimental
+uint64_t
rte_power_poll_stat_fetch(unsigned int lcore_id);
/**
* @param arg
* The customized parameter
*/
-void __rte_experimental
+__rte_experimental
+void
rte_empty_poll_detection(struct rte_timer *tim, void *arg);
#ifdef __cplusplus
* Possible rte_errno codes are:
* - EINVAL - max_threads is 0
*/
-size_t __rte_experimental
+__rte_experimental
+size_t
rte_rcu_qsbr_get_memsize(uint32_t max_threads);
/**
* - EINVAL - max_threads is 0 or 'v' is NULL.
*
*/
-int __rte_experimental
+__rte_experimental
+int
rte_rcu_qsbr_init(struct rte_rcu_qsbr *v, uint32_t max_threads);
/**
* the QS variable. thread_id is a value between 0 and (max_threads - 1).
* 'max_threads' is the parameter passed in 'rte_rcu_qsbr_init' API.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_rcu_qsbr_thread_register(struct rte_rcu_qsbr *v, unsigned int thread_id);
/**
* Reader thread with this thread ID will stop reporting its quiescent
* state on the QS variable.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_rcu_qsbr_thread_unregister(struct rte_rcu_qsbr *v, unsigned int thread_id);
/**
* Reader thread with this thread ID will report its quiescent state on
* the QS variable.
*/
-static __rte_always_inline void __rte_experimental
+__rte_experimental
+static __rte_always_inline void
rte_rcu_qsbr_thread_online(struct rte_rcu_qsbr *v, unsigned int thread_id)
{
uint64_t t;
* rte_rcu_qsbr_check API will not wait for the reader thread with
* this thread ID to report its quiescent state on the QS variable.
*/
-static __rte_always_inline void __rte_experimental
+__rte_experimental
+static __rte_always_inline void
rte_rcu_qsbr_thread_offline(struct rte_rcu_qsbr *v, unsigned int thread_id)
{
RTE_ASSERT(v != NULL && thread_id < v->max_threads);
* @param thread_id
* Reader thread id
*/
-static __rte_always_inline void __rte_experimental
+__rte_experimental
+static __rte_always_inline void
rte_rcu_qsbr_lock(__rte_unused struct rte_rcu_qsbr *v,
__rte_unused unsigned int thread_id)
{
* @param thread_id
* Reader thread id
*/
-static __rte_always_inline void __rte_experimental
+__rte_experimental
+static __rte_always_inline void
rte_rcu_qsbr_unlock(__rte_unused struct rte_rcu_qsbr *v,
__rte_unused unsigned int thread_id)
{
* - This is the token for this call of the API. This should be
* passed to rte_rcu_qsbr_check API.
*/
-static __rte_always_inline uint64_t __rte_experimental
+__rte_experimental
+static __rte_always_inline uint64_t
rte_rcu_qsbr_start(struct rte_rcu_qsbr *v)
{
uint64_t t;
* @param thread_id
* Update the quiescent state for the reader with this thread ID.
*/
-static __rte_always_inline void __rte_experimental
+__rte_experimental
+static __rte_always_inline void
rte_rcu_qsbr_quiescent(struct rte_rcu_qsbr *v, unsigned int thread_id)
{
uint64_t t;
* - 1 if all reader threads have passed through specified number
* of quiescent states.
*/
-static __rte_always_inline int __rte_experimental
+__rte_experimental
+static __rte_always_inline int
rte_rcu_qsbr_check(struct rte_rcu_qsbr *v, uint64_t t, bool wait)
{
RTE_ASSERT(v != NULL);
* on this QS variable (i.e. the calling thread is also part of the
* readside critical section). If not, pass RTE_QSBR_THRID_INVALID.
*/
-void __rte_experimental
+__rte_experimental
+void
rte_rcu_qsbr_synchronize(struct rte_rcu_qsbr *v, unsigned int thread_id);
/**
* Possible rte_errno codes are:
* - EINVAL - NULL parameters are passed
*/
-int __rte_experimental
+__rte_experimental
+int
rte_rcu_qsbr_dump(FILE *f, struct rte_rcu_qsbr *v);
#ifdef __cplusplus
* @return
* 0 upon success, error code otherwise
*/
-int __rte_experimental
+__rte_experimental
+int
rte_sched_port_pipe_profile_add(struct rte_sched_port *port,
struct rte_sched_pipe_params *params,
uint32_t *pipe_profile_id);
* - On success returns 0
* - On failure return errno
*/
-int __rte_experimental
+__rte_experimental
+int
rte_security_session_update(struct rte_security_ctx *instance,
struct rte_security_session *sess,
struct rte_security_session_conf *conf);
* - On success, userdata
* - On failure, NULL
*/
-void * __rte_experimental
+__rte_experimental
+void *
rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md);
/**
* - On success return 0
* - On failure errno
*/
-int __rte_experimental
+__rte_experimental
+int
rte_security_session_stats_get(struct rte_security_ctx *instance,
struct rte_security_session *sess,
struct rte_security_stats *stats);
* @return
* Actual number of objects pushed (either 0 or *n*).
*/
-static __rte_always_inline unsigned int __rte_experimental
+__rte_experimental
+static __rte_always_inline unsigned int
rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
{
RTE_ASSERT(s != NULL);
* @return
* Actual number of objects popped (either 0 or *n*).
*/
-static __rte_always_inline unsigned int __rte_experimental
+__rte_experimental
+static __rte_always_inline unsigned int
rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
{
RTE_ASSERT(s != NULL);
* @return
* The number of used entries in the stack.
*/
-static __rte_always_inline unsigned int __rte_experimental
+__rte_experimental
+static __rte_always_inline unsigned int
rte_stack_count(struct rte_stack *s)
{
RTE_ASSERT(s != NULL);
* @return
* The number of free entries in the stack.
*/
-static __rte_always_inline unsigned int __rte_experimental
+__rte_experimental
+static __rte_always_inline unsigned int
rte_stack_free_count(struct rte_stack *s)
{
RTE_ASSERT(s != NULL);
* - ENOMEM - insufficient memory to create the stack
* - ENAMETOOLONG - name size exceeds RTE_STACK_NAMESIZE
*/
-struct rte_stack *__rte_experimental
+__rte_experimental
+struct rte_stack *
rte_stack_create(const char *name, unsigned int count, int socket_id,
uint32_t flags);
* @param s
* Stack to free
*/
-void __rte_experimental
+__rte_experimental
+void
rte_stack_free(struct rte_stack *s);
/**
* - ENOENT - Stack with name *name* not found.
* - EINVAL - *name* pointer is NULL.
*/
-struct rte_stack * __rte_experimental
+__rte_experimental
+struct rte_stack *
rte_stack_lookup(const char *name);
#ifdef __cplusplus
* @return
* Actual number of objects enqueued.
*/
-static __rte_always_inline unsigned int __rte_experimental
+__rte_experimental
+static __rte_always_inline unsigned int
__rte_stack_lf_push(struct rte_stack *s,
void * const *obj_table,
unsigned int n)
* @return
* - Actual number of objects popped.
*/
-static __rte_always_inline unsigned int __rte_experimental
+__rte_experimental
+static __rte_always_inline unsigned int
__rte_stack_lf_pop(struct rte_stack *s, void **obj_table, unsigned int n)
{
struct rte_stack_lf_elem *first, *last = NULL;
* @return
* Actual number of objects pushed (either 0 or *n*).
*/
-static __rte_always_inline unsigned int __rte_experimental
+__rte_experimental
+static __rte_always_inline unsigned int
__rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
unsigned int n)
{
* @return
* Actual number of objects popped (either 0 or *n*).
*/
-static __rte_always_inline unsigned int __rte_experimental
+__rte_experimental
+static __rte_always_inline unsigned int
__rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
{
struct rte_stack_std *stack = &s->stack_std;
* @return
* The number of used entries in the stack.
*/
-static __rte_always_inline unsigned int __rte_experimental
+__rte_experimental
+static __rte_always_inline unsigned int
__rte_stack_std_count(struct rte_stack *s)
{
return (unsigned int)s->stack_std.len;
#include <rte_compat.h>
#include <rte_common.h>
-static inline uint64_t __rte_experimental
+__rte_experimental
+static inline uint64_t
rte_crc32_u64_generic(uint64_t crc, uint64_t value)
{
int i;
#endif
-static inline uint64_t __rte_experimental
+__rte_experimental
+static inline uint64_t
rte_table_hash_crc_key8(void *key, void *mask, __rte_unused uint32_t key_size,
uint64_t seed)
{
return crc0;
}
-static inline uint64_t __rte_experimental
+__rte_experimental
+static inline uint64_t
rte_table_hash_crc_key16(void *key, void *mask, __rte_unused uint32_t key_size,
uint64_t seed)
{
return crc0;
}
-static inline uint64_t __rte_experimental
+__rte_experimental
+static inline uint64_t
rte_table_hash_crc_key24(void *key, void *mask, __rte_unused uint32_t key_size,
uint64_t seed)
{
return crc0;
}
-static inline uint64_t __rte_experimental
+__rte_experimental
+static inline uint64_t
rte_table_hash_crc_key32(void *key, void *mask, __rte_unused uint32_t key_size,
uint64_t seed)
{
return crc0;
}
-static inline uint64_t __rte_experimental
+__rte_experimental
+static inline uint64_t
rte_table_hash_crc_key40(void *key, void *mask, __rte_unused uint32_t key_size,
uint64_t seed)
{
return crc0;
}
-static inline uint64_t __rte_experimental
+__rte_experimental
+static inline uint64_t
rte_table_hash_crc_key48(void *key, void *mask, __rte_unused uint32_t key_size,
uint64_t seed)
{
return crc0;
}
-static inline uint64_t __rte_experimental
+__rte_experimental
+static inline uint64_t
rte_table_hash_crc_key56(void *key, void *mask, __rte_unused uint32_t key_size,
uint64_t seed)
{
return crc0;
}
-static inline uint64_t __rte_experimental
+__rte_experimental
+static inline uint64_t
rte_table_hash_crc_key64(void *key, void *mask, __rte_unused uint32_t key_size,
uint64_t seed)
{
* @return
* -EALREADY if Telemetry is already initialised.
*/
-int32_t __rte_experimental
+__rte_experimental
+int32_t
rte_telemetry_init(void);
/**
* @return
* -EPERM on failure
*/
-int32_t __rte_experimental
+__rte_experimental
+int32_t
rte_telemetry_cleanup(void);
/**
* @return
* -1 on failure when the test has failed
*/
-int32_t __rte_experimental
+__rte_experimental
+int32_t
rte_telemetry_selftest(void);
#endif
#ifndef _RTE_TELEMETRY_PARSER_H_
#define _RTE_TELEMETRY_PARSER_H_
-int32_t __rte_experimental
+__rte_experimental
+int32_t
rte_telemetry_parse(struct telemetry_impl *telemetry, char *socket_rx_data);
#endif
* - 0: Success
* - -ENOSPC: maximum number of timer data instances already allocated
*/
-int __rte_experimental rte_timer_data_alloc(uint32_t *id_ptr);
+__rte_experimental
+int rte_timer_data_alloc(uint32_t *id_ptr);
/**
* @warning
* - 0: Success
* - -EINVAL: invalid timer data instance identifier
*/
-int __rte_experimental rte_timer_data_dealloc(uint32_t id);
+__rte_experimental
+int rte_timer_data_dealloc(uint32_t id);
/**
* Initialize the timer library.
*
* Free timer subsystem resources.
*/
-void __rte_experimental rte_timer_subsystem_finalize(void);
+__rte_experimental
+void rte_timer_subsystem_finalize(void);
/**
* Initialize a timer handle.
* - (-1): Timer is in the RUNNING or CONFIG state.
* - -EINVAL: invalid timer_data_id
*/
-int __rte_experimental
+__rte_experimental
+int
rte_timer_alt_reset(uint32_t timer_data_id, struct rte_timer *tim,
uint64_t ticks, enum rte_timer_type type,
unsigned int tim_lcore, rte_timer_cb_t fct, void *arg);
* - (-1): The timer is in the RUNNING or CONFIG state.
* - -EINVAL: invalid timer_data_id
*/
-int __rte_experimental
+__rte_experimental
+int
rte_timer_alt_stop(uint32_t timer_data_id, struct rte_timer *tim);
/**
* - 0: success
* - -EINVAL: invalid timer_data_id
*/
-int __rte_experimental
+__rte_experimental
+int
rte_timer_alt_manage(uint32_t timer_data_id, unsigned int *poll_lcores,
int n_poll_lcores, rte_timer_alt_manage_cb_t f);
* - 0: success
* - EINVAL: invalid timer_data_id
*/
-int __rte_experimental
+__rte_experimental
+int
rte_timer_stop_all(uint32_t timer_data_id, unsigned int *walk_lcores,
int nb_walk_lcores, rte_timer_stop_all_cb_t f, void *f_arg);
* - 0: success
* - -EINVAL: invalid timer_data_id
*/
-int __rte_experimental
+__rte_experimental
+int
rte_timer_alt_dump_stats(uint32_t timer_data_id, FILE *f);
#ifdef __cplusplus
* @return
* device id on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vdpa_register_device(struct rte_vdpa_dev_addr *addr,
struct rte_vdpa_dev_ops *ops);
* @return
* device id on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vdpa_unregister_device(int did);
/**
* @return
* device id on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vdpa_find_device_id(struct rte_vdpa_dev_addr *addr);
/**
* @return
* rte_vdpa_device on success, NULL on failure
*/
-struct rte_vdpa_device * __rte_experimental
+__rte_experimental
+struct rte_vdpa_device *
rte_vdpa_get_device(int did);
/**
* @return
* available vdpa device number
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vdpa_get_device_num(void);
/**
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_host_notifier_ctrl(int vid, bool enable);
/**
* @return
* number of synced used entries on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vdpa_relay_vring_used(int vid, uint16_t qid, void *vring_m);
#endif /* _RTE_VDPA_H_ */
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_driver_attach_vdpa_device(const char *path, int did);
/**
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_driver_detach_vdpa_device(const char *path);
/**
* @return
* Device id, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_driver_get_vdpa_device_id(const char *path);
/**
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_driver_set_protocol_features(const char *path,
uint64_t protocol_features);
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_driver_get_protocol_features(const char *path,
uint64_t *protocol_features);
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_driver_get_queue_num(const char *path, uint32_t *queue_num);
/**
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_get_log_base(int vid, uint64_t *log_base, uint64_t *log_size);
/**
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_get_vring_base(int vid, uint16_t queue_id,
uint16_t *last_avail_idx, uint16_t *last_used_idx);
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_set_vring_base(int vid, uint16_t queue_id,
uint16_t last_avail_idx, uint16_t last_used_idx);
* @return
* 0 on success, -1 on failure
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_extern_callback_register(int vid,
struct rte_vhost_user_extern_ops const * const ops, void *ctx);
* @return
* device id
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_get_vdpa_device_id(int vid);
#ifdef __cplusplus
* 0 if the Vhost Crypto Instance is created successfully.
* Negative integer if otherwise
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_crypto_create(int vid, uint8_t cryptodev_id,
struct rte_mempool *sess_pool,
struct rte_mempool *sess_priv_pool,
* 0 if the Vhost Crypto Instance is created successfully.
* Negative integer if otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_crypto_free(int vid);
/**
* 0 if completed successfully.
* Negative integer if otherwise.
*/
-int __rte_experimental
+__rte_experimental
+int
rte_vhost_crypto_set_zero_copy(int vid, enum rte_vhost_crypto_zero_copy option);
/**
* @return
* The number of fetched and processed vhost crypto request operations.
*/
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
struct rte_crypto_op **ops, uint16_t nb_ops);
/**
* @return
* The number of ops processed.
*/
-uint16_t __rte_experimental
+__rte_experimental
+uint16_t
rte_vhost_crypto_finalize_requests(struct rte_crypto_op **ops,
uint16_t nb_ops, int *callfds, uint16_t *nb_callfds);