| 887 | } |
| 888 | |
| 889 | int |
| 890 | rte_event_queue_attr_get(uint8_t dev_id, uint8_t queue_id, uint32_t attr_id, |
| 891 | uint32_t *attr_value) |
| 892 | { |
| 893 | struct rte_event_queue_conf *conf; |
| 894 | struct rte_eventdev *dev; |
| 895 | |
| 896 | if (!attr_value) |
| 897 | return -EINVAL; |
| 898 | |
| 899 | RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL); |
| 900 | dev = &rte_eventdevs[dev_id]; |
| 901 | if (!is_valid_queue(dev, queue_id)) { |
| 902 | RTE_EDEV_LOG_ERR("Invalid queue_id=%" PRIu8, queue_id); |
| 903 | return -EINVAL; |
| 904 | } |
| 905 | |
| 906 | conf = &dev->data->queues_cfg[queue_id]; |
| 907 | |
| 908 | switch (attr_id) { |
| 909 | case RTE_EVENT_QUEUE_ATTR_PRIORITY: |
| 910 | *attr_value = RTE_EVENT_DEV_PRIORITY_NORMAL; |
| 911 | if (dev->data->event_dev_cap & RTE_EVENT_DEV_CAP_QUEUE_QOS) |
| 912 | *attr_value = conf->priority; |
| 913 | break; |
| 914 | case RTE_EVENT_QUEUE_ATTR_NB_ATOMIC_FLOWS: |
| 915 | *attr_value = conf->nb_atomic_flows; |
| 916 | break; |
| 917 | case RTE_EVENT_QUEUE_ATTR_NB_ATOMIC_ORDER_SEQUENCES: |
| 918 | *attr_value = conf->nb_atomic_order_sequences; |
| 919 | break; |
| 920 | case RTE_EVENT_QUEUE_ATTR_EVENT_QUEUE_CFG: |
| 921 | *attr_value = conf->event_queue_cfg; |
| 922 | break; |
| 923 | case RTE_EVENT_QUEUE_ATTR_SCHEDULE_TYPE: |
| 924 | if (conf->event_queue_cfg & RTE_EVENT_QUEUE_CFG_ALL_TYPES) |
| 925 | return -EOVERFLOW; |
| 926 | |
| 927 | *attr_value = conf->schedule_type; |
| 928 | break; |
| 929 | case RTE_EVENT_QUEUE_ATTR_WEIGHT: |
| 930 | *attr_value = RTE_EVENT_QUEUE_WEIGHT_LOWEST; |
| 931 | if (dev->data->event_dev_cap & RTE_EVENT_DEV_CAP_QUEUE_QOS) |
| 932 | *attr_value = conf->weight; |
| 933 | break; |
| 934 | case RTE_EVENT_QUEUE_ATTR_AFFINITY: |
| 935 | *attr_value = RTE_EVENT_QUEUE_AFFINITY_LOWEST; |
| 936 | if (dev->data->event_dev_cap & RTE_EVENT_DEV_CAP_QUEUE_QOS) |
| 937 | *attr_value = conf->affinity; |
| 938 | break; |
| 939 | default: |
| 940 | return -EINVAL; |
| 941 | }; |
| 942 | |
| 943 | rte_eventdev_trace_queue_attr_get(dev_id, dev, queue_id, attr_id, *attr_value); |
| 944 | |
| 945 | return 0; |
| 946 | } |