| 400 | } |
| 401 | |
| 402 | int |
| 403 | rte_bbdev_intr_enable(uint16_t dev_id) |
| 404 | { |
| 405 | int ret; |
| 406 | struct rte_bbdev *dev = get_dev(dev_id); |
| 407 | VALID_DEV_OR_RET_ERR(dev, dev_id); |
| 408 | |
| 409 | VALID_DEV_OPS_OR_RET_ERR(dev, dev_id); |
| 410 | |
| 411 | if (dev->data->started) { |
| 412 | rte_bbdev_log(ERR, |
| 413 | "Device %u cannot be configured when started", |
| 414 | dev_id); |
| 415 | return -EBUSY; |
| 416 | } |
| 417 | |
| 418 | if (dev->dev_ops->intr_enable) { |
| 419 | ret = dev->dev_ops->intr_enable(dev); |
| 420 | if (ret < 0) { |
| 421 | rte_bbdev_log(ERR, |
| 422 | "Device %u interrupts configuration failed", |
| 423 | dev_id); |
| 424 | return ret; |
| 425 | } |
| 426 | rte_bbdev_log_debug("Enabled interrupts for dev %u", dev_id); |
| 427 | return 0; |
| 428 | } |
| 429 | |
| 430 | rte_bbdev_log(ERR, "Device %u doesn't support interrupts", dev_id); |
| 431 | return -ENOTSUP; |
| 432 | } |
| 433 | |
| 434 | int |
| 435 | rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id, |