]> xenbits.xensource.com Git - mini-os.git/commitdiff
mini-os: add config options for xen libraries
authorJuergen Gross <jgross@suse.com>
Mon, 4 Oct 2021 14:19:24 +0000 (16:19 +0200)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 9 Dec 2021 14:52:01 +0000 (14:52 +0000)
Today close hooks into libxenctrl, libxenevtchn and libxengnttab are
under the CONFIG_XC umbrella. In order to support Mini-OS builds using
stable Xen libraries only, add CONFIG_LIBXENCTRL, CONFIG_LIBXENEVTCHN
and CONFIG_LIBXENGNTTAB config options.

In case CONFIG_XC was specified in the Mini-OS config explicitly, set
the three new variables to the specified value.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Config.mk
arch/x86/testbuild/all-no
arch/x86/testbuild/all-yes
arch/x86/testbuild/newxen-yes
lib/sys.c

index 8f4cea99ef54266974a43546273e4d58236216d6..5e66089134c856c434f54179d0d42cba6f8c0a14 100644 (file)
--- a/Config.mk
+++ b/Config.mk
@@ -195,7 +195,12 @@ CONFIG-y += CONFIG_PARAVIRT
 else
 CONFIG-n += CONFIG_PARAVIRT
 endif
-CONFIG-$(libc) += CONFIG_XC
+# Support legacy CONFIG_XC value
+CONFIG_XC ?= $(libc)
+CONFIG-$(CONFIG_XC) += CONFIG_LIBXENCTRL
+CONFIG-$(CONFIG_XC) += CONFIG_LIBXENEVTCHN
+CONFIG-$(CONFIG_XC) += CONFIG_LIBXENGNTTAB
+
 CONFIG-$(lwip) += CONFIG_LWIP
 
 $(foreach i,$(CONFIG-y),$(eval $(i) ?= y))
index 1c50bbab6d319a7f4563e6bd697891fc66a9dba8..7972ecd56625fd614129865bf1bf503379bb3739 100644 (file)
@@ -13,7 +13,9 @@ CONFIG_FBFRONT = n
 CONFIG_KBDFRONT = n
 CONFIG_CONSFRONT = n
 CONFIG_XENBUS = n
-CONFIG_XC = n
+CONFIG_LIBXENCTRL = n
+CONFIG_LIBXENEVTCHN = n
+CONFIG_LIBXENGNTTAB = n
 CONFIG_LWIP = n
 CONFIG_BALLOON = n
 CONFIG_USE_XEN_CONSOLE = n
index 5464342f8e16c2d102fc3ffcac076c2e6e4fcaa3..bc8eea5708835a92e846c666e03e6d5a385c6336 100644 (file)
@@ -13,9 +13,10 @@ CONFIG_FBFRONT = y
 CONFIG_KBDFRONT = y
 CONFIG_CONSFRONT = y
 CONFIG_XENBUS = y
-# XC is special: it needs support from outside
-CONFIG_XC = n
-# LWIP is special: it needs support from outside
-CONFIG_LWIP = n
 CONFIG_BALLOON = y
 CONFIG_USE_XEN_CONSOLE = y
+# The following are special: they need support from outside
+CONFIG_LIBXENCTRL = n
+CONFIG_LIBXENEVTCHN = n
+CONFIG_LIBXENGNTTAB = n
+CONFIG_LWIP = n
index 2a3ed2ee273fcea2c31fe1350e966be41273e13d..f72123b5fd7ae6d1621216a46718fcfb2d9be155 100644 (file)
@@ -13,10 +13,11 @@ CONFIG_FBFRONT = y
 CONFIG_KBDFRONT = y
 CONFIG_CONSFRONT = y
 CONFIG_XENBUS = y
-# XC is special: it needs support from outside
-CONFIG_XC = n
-# LWIP is special: it needs support from outside
-CONFIG_LWIP = n
 CONFIG_BALLOON = y
 CONFIG_USE_XEN_CONSOLE = y
 XEN_INTERFACE_VERSION=__XEN_LATEST_INTERFACE_VERSION__
+# The following are special: they need support from outside
+CONFIG_LIBXENCTRL = n
+CONFIG_LIBXENEVTCHN = n
+CONFIG_LIBXENGNTTAB = n
+CONFIG_LWIP = n
index c6a7b9f460a3b416f69d326372e07b7cf3b09f41..e8d5eb2551f36d97090a0df81047eef7d296b447 100644 (file)
--- a/lib/sys.c
+++ b/lib/sys.c
@@ -437,13 +437,17 @@ int close(int fd)
            return res;
        }
 #endif
-#ifdef CONFIG_XC
+#ifdef CONFIG_LIBXENCTRL
        case FTYPE_XC:
            minios_interface_close_fd(fd);
            return 0;
+#endif
+#ifdef CONFIG_LIBXENEVTCHN
        case FTYPE_EVTCHN:
            minios_evtchn_close_fd(fd);
             return 0;
+#endif
+#ifdef CONFIG_LIBXENGNTTAB
        case FTYPE_GNTMAP:
            minios_gnttab_close_fd(fd);
            return 0;
@@ -1373,7 +1377,7 @@ void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset
 
     if (fd == -1)
         return map_zero(n, 1);
-#ifdef CONFIG_XC
+#ifdef CONFIG_LIBXENCTRL
     else if (files[fd].type == FTYPE_XC) {
         unsigned long zero = 0;
         return map_frames_ex(&zero, n, 0, 0, 1, DOMID_SELF, NULL, 0);