}
static int skeleton_rawdev_configure(const struct rte_rawdev *dev,
- rte_rawdev_obj_t config)
+ rte_rawdev_obj_t config,
+ size_t config_size)
{
struct skeleton_rawdev *skeldev;
struct skeleton_rawdev_conf *skeldev_conf;
RTE_FUNC_PTR_OR_ERR_RET(dev, -EINVAL);
- if (!config) {
+ if (config == NULL || config_size != sizeof(*skeldev_conf)) {
SKELETON_PMD_ERR("Invalid configuration");
return -EINVAL;
}
}
break;
case SKELETON_FW_READY:
+ SKELETON_PMD_DEBUG("Device already in stopped state");
+ break;
case SKELETON_FW_ERROR:
default:
- SKELETON_PMD_DEBUG("Device already in stopped state");
+ SKELETON_PMD_DEBUG("Device in impossible state");
ret = -EINVAL;
break;
}
return 0;
}
-static void skeleton_rawdev_queue_def_conf(struct rte_rawdev *dev,
- uint16_t queue_id,
- rte_rawdev_obj_t queue_conf)
+static int skeleton_rawdev_queue_def_conf(struct rte_rawdev *dev,
+ uint16_t queue_id,
+ rte_rawdev_obj_t queue_conf,
+ size_t conf_size)
{
struct skeleton_rawdev *skeldev;
struct skeleton_rawdev_queue *skelq;
SKELETON_PMD_FUNC_TRACE();
- if (!dev || !queue_conf)
- return;
+ if (!dev || !queue_conf ||
+ conf_size != sizeof(struct skeleton_rawdev_queue))
+ return -EINVAL;
skeldev = skeleton_rawdev_get_priv(dev);
skelq = &skeldev->queues[queue_id];
if (queue_id < SKELETON_MAX_QUEUES)
rte_memcpy(queue_conf, skelq,
sizeof(struct skeleton_rawdev_queue));
+
+ return 0;
}
static void
static int skeleton_rawdev_queue_setup(struct rte_rawdev *dev,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf)
+ rte_rawdev_obj_t queue_conf,
+ size_t conf_size)
{
int ret = 0;
struct skeleton_rawdev *skeldev;
SKELETON_PMD_FUNC_TRACE();
- if (!dev || !queue_conf)
+ if (!dev || !queue_conf ||
+ conf_size != sizeof(struct skeleton_rawdev_queue))
return -EINVAL;
skeldev = skeleton_rawdev_get_priv(dev);