event/dsw: add device registration and build system
This patch contains the Meson and GNU Make build system extensions required for the Distributed Event Device, and also the initialization code for the driver itself. Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
This commit is contained in:
parent
0ad9a8d391
commit
46a186b1f0
@ -921,6 +921,10 @@ F: doc/guides/eventdevs/sw.rst
|
||||
F: examples/eventdev_pipeline/
|
||||
F: doc/guides/sample_app_ug/eventdev_pipeline.rst
|
||||
|
||||
Distributed Software Eventdev PMD
|
||||
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
|
||||
F: drivers/event/dsw/
|
||||
|
||||
Software OPDL Eventdev PMD
|
||||
M: Liang Ma <liang.j.ma@intel.com>
|
||||
M: Peter Mccarthy <peter.mccarthy@intel.com>
|
||||
|
@ -614,6 +614,11 @@ CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV_DEBUG=n
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV=y
|
||||
|
||||
#
|
||||
# Compile PMD for distributed software event device
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV=y
|
||||
|
||||
#
|
||||
# Compile PMD for octeontx sso event device
|
||||
#
|
||||
|
@ -6,6 +6,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += skeleton
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += dsw
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += octeontx
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += dpaa
|
||||
|
26
drivers/event/dsw/Makefile
Normal file
26
drivers/event/dsw/Makefile
Normal file
@ -0,0 +1,26 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2018 Ericsson AB
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
LIB = librte_pmd_dsw_event.a
|
||||
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -Wno-format-nonliteral
|
||||
|
||||
LDLIBS += -lrte_eal
|
||||
LDLIBS += -lrte_mbuf
|
||||
LDLIBS += -lrte_mempool
|
||||
LDLIBS += -lrte_ring
|
||||
LDLIBS += -lrte_eventdev
|
||||
LDLIBS += -lrte_bus_vdev
|
||||
|
||||
LIBABIVER := 1
|
||||
|
||||
EXPORT_MAP := rte_pmd_dsw_event_version.map
|
||||
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += dsw_evdev.c
|
||||
|
||||
include $(RTE_SDK)/mk/rte.lib.mk
|
52
drivers/event/dsw/dsw_evdev.c
Normal file
52
drivers/event/dsw/dsw_evdev.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2018 Ericsson AB
|
||||
*/
|
||||
|
||||
#include <rte_eventdev_pmd.h>
|
||||
#include <rte_eventdev_pmd_vdev.h>
|
||||
|
||||
#include "dsw_evdev.h"
|
||||
|
||||
#define EVENTDEV_NAME_DSW_PMD event_dsw
|
||||
|
||||
static int
|
||||
dsw_probe(struct rte_vdev_device *vdev)
|
||||
{
|
||||
const char *name;
|
||||
struct rte_eventdev *dev;
|
||||
struct dsw_evdev *dsw;
|
||||
|
||||
name = rte_vdev_device_name(vdev);
|
||||
|
||||
dev = rte_event_pmd_vdev_init(name, sizeof(struct dsw_evdev),
|
||||
rte_socket_id());
|
||||
if (dev == NULL)
|
||||
return -EFAULT;
|
||||
|
||||
if (rte_eal_process_type() != RTE_PROC_PRIMARY)
|
||||
return 0;
|
||||
|
||||
dsw = dev->data->dev_private;
|
||||
dsw->data = dev->data;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
dsw_remove(struct rte_vdev_device *vdev)
|
||||
{
|
||||
const char *name;
|
||||
|
||||
name = rte_vdev_device_name(vdev);
|
||||
if (name == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
return rte_event_pmd_vdev_uninit(name);
|
||||
}
|
||||
|
||||
static struct rte_vdev_driver evdev_dsw_pmd_drv = {
|
||||
.probe = dsw_probe,
|
||||
.remove = dsw_remove
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_VDEV(EVENTDEV_NAME_DSW_PMD, evdev_dsw_pmd_drv);
|
16
drivers/event/dsw/dsw_evdev.h
Normal file
16
drivers/event/dsw/dsw_evdev.h
Normal file
@ -0,0 +1,16 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2018 Ericsson AB
|
||||
*/
|
||||
|
||||
#ifndef _DSW_EVDEV_H_
|
||||
#define _DSW_EVDEV_H_
|
||||
|
||||
#include <rte_eventdev.h>
|
||||
|
||||
#define DSW_PMD_NAME RTE_STR(event_dsw)
|
||||
|
||||
struct dsw_evdev {
|
||||
struct rte_eventdev_data *data;
|
||||
};
|
||||
|
||||
#endif
|
6
drivers/event/dsw/meson.build
Normal file
6
drivers/event/dsw/meson.build
Normal file
@ -0,0 +1,6 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2018 Ericsson AB
|
||||
|
||||
allow_experimental_apis = true
|
||||
deps += ['bus_vdev']
|
||||
sources = files('dsw_evdev.c')
|
3
drivers/event/dsw/rte_pmd_dsw_event_version.map
Normal file
3
drivers/event/dsw/rte_pmd_dsw_event_version.map
Normal file
@ -0,0 +1,3 @@
|
||||
DPDK_18.11 {
|
||||
local: *;
|
||||
};
|
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw']
|
||||
drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw', 'dsw']
|
||||
std_deps = ['eventdev', 'kvargs']
|
||||
config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
|
||||
driver_name_fmt = 'rte_pmd_@0@_event'
|
||||
|
@ -240,6 +240,7 @@ endif # CONFIG_RTE_LIBRTE_COMPRESSDEV
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += -lrte_pmd_skeleton_event
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += -lrte_pmd_sw_event
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += -lrte_pmd_dsw_event
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += -lrte_pmd_octeontx_ssovf
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += -lrte_pmd_dpaa_event
|
||||
|
Loading…
Reference in New Issue
Block a user