X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Feventdev%2Frte_eventdev_core.h;h=c328bdbc828f7af641a0eec314ac6a8c56c0bdc0;hb=6e858b4d9244cf53505589673755ab18ac2a4a83;hp=115b97e431a00943aec531ed8a999194b071b922;hpb=9c67fcbfd66450a2fd53bdffed91ab5a07c6c47f;p=dpdk.git diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h index 115b97e431..c328bdbc82 100644 --- a/lib/eventdev/rte_eventdev_core.h +++ b/lib/eventdev/rte_eventdev_core.h @@ -29,6 +29,9 @@ typedef uint16_t (*event_dequeue_burst_t)(void *port, struct rte_event ev[], uint64_t timeout_ticks); /**< @internal Dequeue burst of events from port of a device */ +typedef void (*event_maintain_t)(void *port, int op); +/**< @internal Maintains a port */ + typedef uint16_t (*event_tx_adapter_enqueue_t)(void *port, struct rte_event ev[], uint16_t nb_events); @@ -39,98 +42,33 @@ typedef uint16_t (*event_crypto_adapter_enqueue_t)(void *port, uint16_t nb_events); /**< @internal Enqueue burst of events on crypto adapter */ -#define RTE_EVENTDEV_NAME_MAX_LEN (64) -/**< @internal Max length of name of event PMD */ - -/** - * @internal - * The data part, with no function pointers, associated with each device. - * - * This structure is safe to place in shared memory to be common among - * different processes in a multi-process configuration. - */ -struct rte_eventdev_data { - int socket_id; - /**< Socket ID where memory is allocated */ - uint8_t dev_id; - /**< Device ID for this instance */ - uint8_t nb_queues; - /**< Number of event queues. */ - uint8_t nb_ports; - /**< Number of event ports. */ - void *ports[RTE_EVENT_MAX_PORTS_PER_DEV]; - /**< Array of pointers to ports. */ - struct rte_event_port_conf ports_cfg[RTE_EVENT_MAX_PORTS_PER_DEV]; - /**< Array of port configuration structures. */ - struct rte_event_queue_conf queues_cfg[RTE_EVENT_MAX_QUEUES_PER_DEV]; - /**< Array of queue configuration structures. */ - uint16_t links_map[RTE_EVENT_MAX_PORTS_PER_DEV * - RTE_EVENT_MAX_QUEUES_PER_DEV]; - /**< Memory to store queues to port connections. */ - void *dev_private; - /**< PMD-specific private data */ - uint32_t event_dev_cap; - /**< Event device capabilities(RTE_EVENT_DEV_CAP_)*/ - struct rte_event_dev_config dev_conf; - /**< Configuration applied to device. */ - uint8_t service_inited; - /* Service initialization state */ - uint32_t service_id; - /* Service ID*/ - void *dev_stop_flush_arg; - /**< User-provided argument for event flush function */ - - RTE_STD_C11 - uint8_t dev_started : 1; - /**< Device state: STARTED(1)/STOPPED(0) */ - - char name[RTE_EVENTDEV_NAME_MAX_LEN]; - /**< Unique identifier name */ - - uint64_t reserved_64s[4]; /**< Reserved for future fields */ - void *reserved_ptrs[4]; /**< Reserved for future fields */ -} __rte_cache_aligned; - -/** @internal The data structure associated with each event device. */ -struct rte_eventdev { +struct rte_event_fp_ops { + void **data; + /**< points to array of internal port data pointers */ event_enqueue_t enqueue; - /**< Pointer to PMD enqueue function. */ + /**< PMD enqueue function. */ event_enqueue_burst_t enqueue_burst; - /**< Pointer to PMD enqueue burst function. */ + /**< PMD enqueue burst function. */ event_enqueue_burst_t enqueue_new_burst; - /**< Pointer to PMD enqueue burst function(op new variant) */ + /**< PMD enqueue burst new function. */ event_enqueue_burst_t enqueue_forward_burst; - /**< Pointer to PMD enqueue burst function(op forward variant) */ + /**< PMD enqueue burst fwd function. */ event_dequeue_t dequeue; - /**< Pointer to PMD dequeue function. */ + /**< PMD dequeue function. */ event_dequeue_burst_t dequeue_burst; - /**< Pointer to PMD dequeue burst function. */ - event_tx_adapter_enqueue_t txa_enqueue_same_dest; - /**< Pointer to PMD eth Tx adapter burst enqueue function with - * events destined to same Eth port & Tx queue. - */ + /**< PMD dequeue burst function. */ + event_maintain_t maintain; + /**< PMD port maintenance function. */ event_tx_adapter_enqueue_t txa_enqueue; - /**< Pointer to PMD eth Tx adapter enqueue function. */ - struct rte_eventdev_data *data; - /**< Pointer to device data */ - struct eventdev_ops *dev_ops; - /**< Functions exported by PMD */ - struct rte_device *dev; - /**< Device info. supplied by probing */ - - RTE_STD_C11 - uint8_t attached : 1; - /**< Flag indicating the device is attached */ - + /**< PMD Tx adapter enqueue function. */ + event_tx_adapter_enqueue_t txa_enqueue_same_dest; + /**< PMD Tx adapter enqueue same destination function. */ event_crypto_adapter_enqueue_t ca_enqueue; - /**< Pointer to PMD crypto adapter enqueue function. */ - - uint64_t reserved_64s[4]; /**< Reserved for future fields */ - void *reserved_ptrs[3]; /**< Reserved for future fields */ + /**< PMD Crypto adapter enqueue function. */ + uintptr_t reserved[6]; } __rte_cache_aligned; -extern struct rte_eventdev *rte_eventdevs; -/** @internal The pool of rte_eventdev structures. */ +extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS]; #ifdef __cplusplus }