[SLOF] [PATCH 1/4] bootmenu: Add framework for a new libbootmenu module
Alexey Kardashevskiy
aik at ozlabs.ru
Tue Jun 6 19:20:17 AEST 2017
On 02/06/17 01:25, Thomas Huth wrote:
> Adjust the Makefiles and add bootmenu skeleton files.
>
> Signed-off-by: Thomas Huth <thuth at redhat.com>
> ---
> board-qemu/Makefile | 2 +-
> board-qemu/slof/Makefile | 9 +++++---
> lib/Makefile | 2 +-
> lib/libbootmenu/Makefile | 49 +++++++++++++++++++++++++++++++++++++++++++
> lib/libbootmenu/bootmenu.c | 21 +++++++++++++++++++
> lib/libbootmenu/bootmenu.code | 20 ++++++++++++++++++
> lib/libbootmenu/bootmenu.h | 15 +++++++++++++
> lib/libbootmenu/bootmenu.in | 15 +++++++++++++
> 8 files changed, 128 insertions(+), 5 deletions(-)
> create mode 100644 lib/libbootmenu/Makefile
> create mode 100644 lib/libbootmenu/bootmenu.c
> create mode 100644 lib/libbootmenu/bootmenu.code
> create mode 100644 lib/libbootmenu/bootmenu.h
> create mode 100644 lib/libbootmenu/bootmenu.in
>
> diff --git a/board-qemu/Makefile b/board-qemu/Makefile
> index 7208fcc..61a1367 100644
> --- a/board-qemu/Makefile
> +++ b/board-qemu/Makefile
> @@ -15,7 +15,7 @@ BOARD_TARGETS = tools_build romfs_build stage1 subdirs
> SUBDIRS = slof
>
> COMMON_LIBS = libc libbootmsg libbases libnvram libelf libhvcall libvirtio \
> - libusb libveth libe1k libnet
> + libusb libveth libe1k libnet libbootmenu
>
> all: $(BOARD_TARGETS)
> $(MAKE) boot_rom.bin
> diff --git a/board-qemu/slof/Makefile b/board-qemu/slof/Makefile
> index 02d819b..2263e75 100644
> --- a/board-qemu/slof/Makefile
> +++ b/board-qemu/slof/Makefile
> @@ -21,7 +21,8 @@ all: version.o Makefile.dep OF.ffs paflof $(SLOFCMNDIR)/xvect.bin
> CPPFLAGS = -I$(LIBCMNDIR)/libbootmsg -I$(LIBCMNDIR)/libhvcall \
> -I$(LIBCMNDIR)/libvirtio -I$(LIBCMNDIR)/libnvram \
> -I$(LIBCMNDIR)/libusb -I$(LIBCMNDIR)/libveth \
> - -I$(LIBCMNDIR)/libe1k -I$(LIBCMNDIR)/libnet
> + -I$(LIBCMNDIR)/libe1k -I$(LIBCMNDIR)/libnet \
> + -I$(LIBCMNDIR)/libbootmenu
> SLOF_LIBS = \
> $(LIBCMNDIR)/libbootmsg.a \
> $(LIBCMNDIR)/libelf.a \
> @@ -31,7 +32,8 @@ SLOF_LIBS = \
> $(LIBCMNDIR)/libnvram.a \
> $(LIBCMNDIR)/libveth.a \
> $(LIBCMNDIR)/libe1k.a \
> - $(LIBCMNDIR)/libnet.a
> + $(LIBCMNDIR)/libnet.a \
> + $(LIBCMNDIR)/libbootmenu.a
> BOARD_SLOF_IN = \
> $(LIBCMNDIR)/libhvcall/hvcall.in \
> $(LIBCMNDIR)/libvirtio/virtio.in \
> @@ -42,7 +44,8 @@ BOARD_SLOF_IN = \
> $(LIBCMNDIR)/libbases/libbases.in \
> $(LIBCMNDIR)/libveth/veth.in \
> $(LIBCMNDIR)/libe1k/e1k.in \
> - $(LIBCMNDIR)/libnet/libnet.in
> + $(LIBCMNDIR)/libnet/libnet.in \
> + $(LIBCMNDIR)/libbootmenu/bootmenu.in
> BOARD_SLOF_CODE = $(BOARD_SLOF_IN:%.in=%.code)
>
> include $(SLOFCMNDIR)/Makefile.inc
> diff --git a/lib/Makefile b/lib/Makefile
> index 6d9db66..a4d4bb2 100644
> --- a/lib/Makefile
> +++ b/lib/Makefile
> @@ -11,7 +11,7 @@
> # ****************************************************************************/
>
> SUBDIRS = libc libipmi libbootmsg libbases libnvram libelf libhvcall libvirtio \
> - libusb libveth libe1k libbcm libnet
> + libusb libveth libe1k libbcm libnet libbootmenu
>
> all: subdirs
>
> diff --git a/lib/libbootmenu/Makefile b/lib/libbootmenu/Makefile
> new file mode 100644
> index 0000000..1ea42b7
> --- /dev/null
> +++ b/lib/libbootmenu/Makefile
> @@ -0,0 +1,49 @@
> +# *****************************************************************************
> +# * Copyright (c) 2004, 2008 IBM Corporation
> +# * All rights reserved.
> +# * This program and the accompanying materials
> +# * are made available under the terms of the BSD License
> +# * which accompanies this distribution, and is available at
> +# * http://www.opensource.org/licenses/bsd-license.php
> +# *
> +# * Contributors:
> +# * IBM Corporation - initial implementation
> +# ****************************************************************************/
> +
> +ifndef TOP
> + TOP = $(shell while ! test -e make.rules; do cd .. ; done; pwd)
> + export TOP
> +endif
> +include $(TOP)/make.rules
> +
> +CFLAGS += -I. -I.. -I../libc/include -I$(TOP)/slof -I$(TOP)/include
$(TOP)/slof could be replaced with $(SLOFCMNDIR). Same for INCLCMNDIR. Or
get rid of these xxxCMNDIR? Or paflof.h could be moved to include/ - only
lib/libelf/elf_claim.c needs to be fixed after that.
> +
> +SRCS = bootmenu.c
> +
> +OBJS = $(SRCS:%.c=%.o)
> +
> +TARGET = ../libbootmenu.a
> +
> +all: $(TARGET)
> +
> +$(TARGET): $(OBJS)
> + $(AR) -rc $@ $(OBJS)
> + $(RANLIB) $@
> +
> +clean:
> + $(RM) $(TARGET) $(OBJS)
> +
> +distclean: clean
> + $(RM) Makefile.dep
> +
> +
> +# Rules for creating the dependency file:
> +depend:
> + $(RM) Makefile.dep
> + $(MAKE) Makefile.dep
> +
> +Makefile.dep: Makefile
> + $(CC) -M $(CPPFLAGS) $(CFLAGS) $(SRCS) > Makefile.dep
> +
> +# Include dependency file if available:
> +-include Makefile.dep
> diff --git a/lib/libbootmenu/bootmenu.c b/lib/libbootmenu/bootmenu.c
> new file mode 100644
> index 0000000..d8d00cb
> --- /dev/null
> +++ b/lib/libbootmenu/bootmenu.c
> @@ -0,0 +1,21 @@
> +/*****************************************************************************
> + * Boot menu: Displays boot devices and waits for user to select one
> + *
> + * Copyright 2017 Red Hat, Inc.
> + *
> + * This program and the accompanying materials
> + * are made available under the terms of the BSD License
> + * which accompanies this distribution, and is available at
> + * http://www.opensource.org/licenses/bsd-license.php
> + *
> + * Contributors:
> + * Thomas Huth, Red Hat Inc. - initial implementation
> + *****************************************************************************/
> +
> +#include <string.h>
> +#include <stdio.h>
> +#include "bootmenu.h"
> +
> +void bootmenu(void)
> +{
> +}
> diff --git a/lib/libbootmenu/bootmenu.code b/lib/libbootmenu/bootmenu.code
> new file mode 100644
> index 0000000..f51784d
> --- /dev/null
> +++ b/lib/libbootmenu/bootmenu.code
> @@ -0,0 +1,20 @@
> +/*****************************************************************************
> + * Boot menu: Glue code to Forth
> + *
> + * Copyright 2017 Red Hat, Inc.
> + *
> + * This program and the accompanying materials
> + * are made available under the terms of the BSD License
> + * which accompanies this distribution, and is available at
> + * http://www.opensource.org/licenses/bsd-license.php
> + *
> + * Contributors:
> + * Thomas Huth, Red Hat Inc. - initial implementation
> + *****************************************************************************/
> +
> +#include "bootmenu.h"
> +
> +// ( -- )
> +PRIM(boot_X2d_menu)
> + bootmenu();
> +MIRP
> diff --git a/lib/libbootmenu/bootmenu.h b/lib/libbootmenu/bootmenu.h
> new file mode 100644
> index 0000000..6cef237
> --- /dev/null
> +++ b/lib/libbootmenu/bootmenu.h
> @@ -0,0 +1,15 @@
> +/*****************************************************************************
> + * Boot menu definitions
> + *
> + * Copyright 2017 Red Hat, Inc.
> + *
> + * This program and the accompanying materials
> + * are made available under the terms of the BSD License
> + * which accompanies this distribution, and is available at
> + * http://www.opensource.org/licenses/bsd-license.php
> + *
> + * Contributors:
> + * Thomas Huth, Red Hat Inc. - initial implementation
> + *****************************************************************************/
> +
> +extern void bootmenu(void);
> diff --git a/lib/libbootmenu/bootmenu.in b/lib/libbootmenu/bootmenu.in
> new file mode 100644
> index 0000000..5cb120e
> --- /dev/null
> +++ b/lib/libbootmenu/bootmenu.in
> @@ -0,0 +1,15 @@
> +/*****************************************************************************
> + * Boot menu: Definitions for Forth
> + *
> + * Copyright 2017 Red Hat, Inc.
> + *
> + * This program and the accompanying materials
> + * are made available under the terms of the BSD License
> + * which accompanies this distribution, and is available at
> + * http://www.opensource.org/licenses/bsd-license.php
> + *
> + * Contributors:
> + * Thomas Huth, Red Hat Inc. - initial implementation
> + *****************************************************************************/
> +
> +cod(boot-menu)
>
--
Alexey
More information about the SLOF
mailing list