eal/linux: allow hugepage file reuse
[dpdk.git] / lib / eventdev / rte_event_eth_rx_adapter.c
index 3182b52..ae1e260 100644 (file)
@@ -2984,15 +2984,17 @@ rte_event_eth_rx_adapter_queue_stats_get(uint8_t id,
                return -EINVAL;
        }
 
-       queue_info = &dev_info->rx_queue[rx_queue_id];
-       event_buf = queue_info->event_buf;
-       q_stats = queue_info->stats;
+       if (dev_info->internal_event_port == 0) {
+               queue_info = &dev_info->rx_queue[rx_queue_id];
+               event_buf = queue_info->event_buf;
+               q_stats = queue_info->stats;
 
-       stats->rx_event_buf_count = event_buf->count;
-       stats->rx_event_buf_size = event_buf->events_size;
-       stats->rx_packets = q_stats->rx_packets;
-       stats->rx_poll_count = q_stats->rx_poll_count;
-       stats->rx_dropped = q_stats->rx_dropped;
+               stats->rx_event_buf_count = event_buf->count;
+               stats->rx_event_buf_size = event_buf->events_size;
+               stats->rx_packets = q_stats->rx_packets;
+               stats->rx_poll_count = q_stats->rx_poll_count;
+               stats->rx_dropped = q_stats->rx_dropped;
+       }
 
        dev = &rte_eventdevs[rx_adapter->eventdev_id];
        if (dev->dev_ops->eth_rx_adapter_queue_stats_get != NULL) {
@@ -3086,8 +3088,10 @@ rte_event_eth_rx_adapter_queue_stats_reset(uint8_t id,
                return -EINVAL;
        }
 
-       queue_info = &dev_info->rx_queue[rx_queue_id];
-       rxa_queue_stats_reset(queue_info);
+       if (dev_info->internal_event_port == 0) {
+               queue_info = &dev_info->rx_queue[rx_queue_id];
+               rxa_queue_stats_reset(queue_info);
+       }
 
        dev = &rte_eventdevs[rx_adapter->eventdev_id];
        if (dev->dev_ops->eth_rx_adapter_queue_stats_reset != NULL) {
@@ -3119,6 +3123,26 @@ rte_event_eth_rx_adapter_service_id_get(uint8_t id, uint32_t *service_id)
        return rx_adapter->service_inited ? 0 : -ESRCH;
 }
 
+int
+rte_event_eth_rx_adapter_event_port_get(uint8_t id, uint8_t *event_port_id)
+{
+       struct event_eth_rx_adapter *rx_adapter;
+
+       if (rxa_memzone_lookup())
+               return -ENOMEM;
+
+       RTE_EVENT_ETH_RX_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL);
+
+       rx_adapter = rxa_id_to_adapter(id);
+       if (rx_adapter == NULL || event_port_id == NULL)
+               return -EINVAL;
+
+       if (rx_adapter->service_inited)
+               *event_port_id = rx_adapter->event_port_id;
+
+       return rx_adapter->service_inited ? 0 : -ESRCH;
+}
+
 int
 rte_event_eth_rx_adapter_cb_register(uint8_t id,
                                        uint16_t eth_dev_id,