[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH 03/17] plat/xen/drivers: Blkfront driver skeleton
Reviewed-by: Costin Lupu <costin.lupu@xxxxxxxxx> On 5/29/19 11:39 AM, Roxana Nicolescu wrote: > This patch introduces the blkfront driver skeleton. > > Signed-off-by: Roxana Nicolescu <nicolescu.roxana1996@xxxxxxxxx> > --- > plat/xen/Config.uk | 7 ++++ > plat/xen/Makefile.uk | 10 ++++++ > plat/xen/drivers/blk/blkfront.c | 70 > ++++++++++++++++++++++++++++++++++++++ > plat/xen/drivers/blk/exportsyms.uk | 1 + > 4 files changed, 88 insertions(+) > create mode 100644 plat/xen/drivers/blk/blkfront.c > create mode 100644 plat/xen/drivers/blk/exportsyms.uk > > diff --git a/plat/xen/Config.uk b/plat/xen/Config.uk > index 1ab4cc85..e6d9132c 100644 > --- a/plat/xen/Config.uk > +++ b/plat/xen/Config.uk > @@ -72,5 +72,12 @@ config XEN_XENBUS > menu "Xenbus Drivers" > depends on XEN_XENBUS > depends on XEN_GNTTAB > + > +config XEN_BLKFRONT > + bool "Xenbus Blkfront Driver" > + default n > + depends on LIBUKBLKDEV > + help > + Driver for block devices > endmenu > endif > diff --git a/plat/xen/Makefile.uk b/plat/xen/Makefile.uk > index 69b10efc..9fa92d1e 100644 > --- a/plat/xen/Makefile.uk > +++ b/plat/xen/Makefile.uk > @@ -10,6 +10,7 @@ $(eval $(call addplat_s,xen,$(CONFIG_PLAT_XEN))) > ## > $(eval $(call addplatlib,xen,libxenplat)) > $(eval $(call addplatlib_s,xen,libxenbus,$(CONFIG_XEN_XENBUS))) > +$(eval $(call addplatlib_s,xen,libxenblkfront,$(CONFIG_XEN_BLKFRONT))) > > ## > ## Xen platform compilation settings > @@ -100,3 +101,12 @@ LIBXENBUS_SRCS-y += > $(LIBXENPLAT_BASE)/xenbus/xs_comms.c > LIBXENBUS_SRCS-y += $(LIBXENPLAT_BASE)/xenbus/xs_watch.c > LIBXENBUS_SRCS-y += $(LIBXENPLAT_BASE)/xenbus/xs.c > endif > + > +ifeq ($(CONFIG_XEN_BLKFRONT),y) > +LIBXENBLKFRONT_EXPORTS = > $(LIBXENPLAT_BASE)/drivers/blk/exportsyms.uk > +LIBXENBLKFRONT_ASFLAGS-y += $(LIBXENPLAT_ASFLAGS-y) > +LIBXENBLKFRONT_ASINCLUDES-y += $(LIBXENPLAT_ASINCLUDES-y) > +LIBXENBLKFRONT_CFLAGS-y += $(LIBXENPLAT_CFLAGS-y) > +LIBXENBLKFRONT_CINCLUDES-y += $(LIBXENPLAT_CINCLUDES-y) > +LIBXENBLKFRONT_SRCS-y += $(LIBXENPLAT_BASE)/drivers/blk/blkfront.c > +endif > diff --git a/plat/xen/drivers/blk/blkfront.c b/plat/xen/drivers/blk/blkfront.c > new file mode 100644 > index 00000000..8ba61adb > --- /dev/null > +++ b/plat/xen/drivers/blk/blkfront.c > @@ -0,0 +1,70 @@ > +/* SPDX-License-Identifier: BSD-3-Clause */ > +/* > + * Authors: Roxana Nicolescu <nicolescu.roxana1996@xxxxxxxxx> > + * > + * Copyright (c) 2019, University Politehnica of Bucharest. > + * All rights reserved. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * 3. Neither the name of the copyright holder nor the names of its > + * contributors may be used to endorse or promote products derived from > + * this software without specific prior written permission. > + * > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > IS" > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > + * POSSIBILITY OF SUCH DAMAGE. > + * > + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. > + */ > +#include <xenbus/xenbus.h> > + > +#define DRIVER_NAME "xen-blkfront" > + > +static struct uk_alloc *drv_allocator; > + > +static int blkfront_add_dev(struct xenbus_device *dev) > +{ > + int rc = 0; > + > + UK_ASSERT(dev != NULL); > + > + return rc; > +} > + > +static int blkfront_drv_init(struct uk_alloc *allocator) > +{ > + /* driver initialization */ > + if (!allocator) > + return -EINVAL; > + > + drv_allocator = allocator; > + return 0; > +} > + > +static const xenbus_dev_type_t blkfront_devtypes[] = { > + xenbus_dev_vbd, > +}; > + > +static struct xenbus_driver blkfront_driver = { > + .device_types = blkfront_devtypes, > + .init = blkfront_drv_init, > + .add_dev = blkfront_add_dev > +}; > + > +XENBUS_REGISTER_DRIVER(&blkfront_driver); > diff --git a/plat/xen/drivers/blk/exportsyms.uk > b/plat/xen/drivers/blk/exportsyms.uk > new file mode 100644 > index 00000000..621e94f0 > --- /dev/null > +++ b/plat/xen/drivers/blk/exportsyms.uk > @@ -0,0 +1 @@ > +none > _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |