int skeleton_pmd_logtype;
/* Count of instances */
-uint16_t skeldev_init_once;
+static uint16_t skeldev_init_once;
/**< Rawdev Skeleton dummy driver name */
#define SKELETON_PMD_RAWDEV_NAME rawdev_skeleton
-/**< Skeleton rawdev driver object */
-static struct rte_vdev_driver skeleton_pmd_drv;
-
struct queue_buffers {
void *bufs[SKELETON_QUEUE_MAX_DEPTH];
};
return ret;
}
+static uint16_t skeleton_rawdev_queue_count(struct rte_rawdev *dev)
+{
+ struct skeleton_rawdev *skeldev;
+
+ SKELETON_PMD_FUNC_TRACE();
+
+ RTE_FUNC_PTR_OR_ERR_RET(dev, -EINVAL);
+
+ skeldev = skeleton_rawdev_get_priv(dev);
+ return skeldev->num_queues;
+}
+
static int skeleton_rawdev_get_attr(struct rte_rawdev *dev,
const char *attr_name,
uint64_t *attr_value)
.queue_def_conf = skeleton_rawdev_queue_def_conf,
.queue_setup = skeleton_rawdev_queue_setup,
.queue_release = skeleton_rawdev_queue_release,
+ .queue_count = skeleton_rawdev_queue_count,
.attr_get = skeleton_rawdev_get_attr,
.attr_set = skeleton_rawdev_set_attr,
goto cleanup;
}
+ ret = rawdev->dev_id; /* return the rawdev id of new device */
+
rawdev->dev_ops = &skeleton_rawdev_ops;
rawdev->device = &vdev->device;
- rawdev->driver_name = vdev->device.driver->name;
skeldev = skeleton_rawdev_get_priv(rawdev);
name = rte_vdev_device_name(vdev);
+ if (name == NULL)
+ return -EINVAL;
+
/* More than one instance is not supported */
if (skeldev_init_once) {
SKELETON_PMD_ERR("Multiple instance not supported for %s",
/* In case of invalid argument, selftest != 1; ignore other values */
ret = skeleton_rawdev_create(name, vdev, rte_socket_id());
- if (!ret) {
+ if (ret >= 0) {
/* In case command line argument for 'selftest' was passed;
* if invalid arguments were passed, execution continues but
* without selftest.
*/
if (selftest == 1)
- test_rawdev_skeldev();
+ test_rawdev_skeldev(ret);
}
/* Device instance created; Second instance not possible */
skeldev_init_once = 1;
- return ret;
+ return ret < 0 ? ret : 0;
}
static int
int ret;
name = rte_vdev_device_name(vdev);
+ if (name == NULL)
+ return -1;
SKELETON_PMD_INFO("Closing %s on NUMA node %d", name, rte_socket_id());
RTE_PMD_REGISTER_VDEV(SKELETON_PMD_RAWDEV_NAME, skeleton_pmd_drv);
-RTE_INIT(skeleton_pmd_init_log);
-
-static void
-skeleton_pmd_init_log(void)
+RTE_INIT(skeleton_pmd_init_log)
{
skeleton_pmd_logtype = rte_log_register("rawdev.skeleton");
if (skeleton_pmd_logtype >= 0)