]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
lib/ukcpio: Create empty CPIO extraction library
authorAlexander Jung <a.jung@lancs.ac.uk>
Mon, 12 Apr 2021 09:21:39 +0000 (11:21 +0200)
committerUnikraft <monkey@unikraft.io>
Mon, 5 Jul 2021 04:47:27 +0000 (04:47 +0000)
Information about the CPIO file format can be found here:
https://www.kernel.org/doc/Documentation/early-userspace/buffer-format.txt

Signed-off-by: Robert Hrusecky <roberth@cs.utexas.edu>
Signed-off-by: Omar Jamil <omarj2898@gmail.com>
Signed-off-by: Sachin Beldona <sachinbeldona@utexas.edu>
Signed-off-by: Gabriel Mocanu <gabi.mocanu98@gmail.com>
Signed-off-by: Alexander Jung <a.jung@lancs.ac.uk>
Reviewed-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Pull-Request: #179

lib/Makefile.uk
lib/ukcpio/Config.uk [new file with mode: 0644]
lib/ukcpio/Makefile.uk [new file with mode: 0644]
lib/ukcpio/cpio.c [new file with mode: 0644]
lib/ukcpio/exportsyms.uk [new file with mode: 0644]
lib/ukcpio/include/uk/cpio.h [new file with mode: 0644]

index 10ae3da43b1a883d2674e56d08c78a9e5f0e7cf8..7748f378bd3d8bcfa4fd715a1634987733b65afd 100644 (file)
@@ -29,6 +29,7 @@ $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uklock))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukmpi))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukring))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukbus))
+$(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukcpio))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uksglist))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uknetdev))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uk9p))
diff --git a/lib/ukcpio/Config.uk b/lib/ukcpio/Config.uk
new file mode 100644 (file)
index 0000000..6264ddf
--- /dev/null
@@ -0,0 +1,10 @@
+config LIBUKCPIO
+       bool "ukcpio: CPIO archive extraction"
+       # We use `depends on` and not `select` for the option below to prevent
+       # recursive dependency between vfscore and ukcpio as vfscore has
+       # additional options todo with automatically mounting the desired
+       # filesystem and also initializing it (in the case of ramfs) with
+       # ukcpio.
+       depends on LIBVFSCORE
+       select LIBNOLIBC if !HAVE_LIBC
+       default n
diff --git a/lib/ukcpio/Makefile.uk b/lib/ukcpio/Makefile.uk
new file mode 100644 (file)
index 0000000..56ed68a
--- /dev/null
@@ -0,0 +1,4 @@
+$(eval $(call addlib_s,libukcpio,$(CONFIG_LIBUKCPIO)))
+
+CINCLUDES-$(CONFIG_LIBUKCPIO) += -I$(LIBUKCPIO_BASE)/include
+CXXINCLUDES-$(CONFIG_LIBUKCPIO) += -I$(LIBUKCPIO_BASE)/include
diff --git a/lib/ukcpio/cpio.c b/lib/ukcpio/cpio.c
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/lib/ukcpio/exportsyms.uk b/lib/ukcpio/exportsyms.uk
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/lib/ukcpio/include/uk/cpio.h b/lib/ukcpio/include/uk/cpio.h
new file mode 100644 (file)
index 0000000..e69de29