]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
drivers/xenbus: Properly export public API
authorSimon Kuenzer <simon@unikraft.io>
Mon, 9 Dec 2024 00:04:47 +0000 (01:04 +0100)
committerUnikraft Bot <monkey@unikraft.io>
Sat, 14 Dec 2024 10:47:46 +0000 (10:47 +0000)
This commit cleanly defines and exports the public API of the XenBus
driver. This is done to avoid that other Xen drivers or services
require to cross-include the XenBus headers which were technically
defined as "internal". Such an approach breaks library convention and
is typical source of problems that have to do with Makefile processing
order and symbol linking errors.

Signed-off-by: Simon Kuenzer <simon@unikraft.io>
Reviewed-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Reviewed-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Reviewed-by: Michalis Pappas <michalis@unikraft.io>
Approved-by: Michalis Pappas <michalis@unikraft.io>
GitHub-Closes: #1501

drivers/xen/9pfront/Makefile.uk
drivers/xen/blkfront/Makefile.uk
drivers/xen/netfront/Makefile.uk
drivers/xen/xenbus/Makefile.uk
drivers/xen/xenbus/exportsyms.uk [new file with mode: 0644]
drivers/xen/xenbus/include/uk/xenbus/client.h
drivers/xen/xenbus/include/uk/xenbus/xenbus.h
drivers/xen/xenbus/include/uk/xenbus/xs.h
drivers/xen/xencons/Makefile.uk

index d2e0416ab2a1d801b3e8398ca903b19dc1bfb8e9..4d14b4877d32e57e13cd69107d64c3f843ac29a1 100644 (file)
@@ -3,6 +3,5 @@ $(eval $(call addlib_s,lib9pfront,$(CONFIG_LIB9PFRONT)))
 # FIXME: Extra includes should be removed
 LIB9PFRONT_CFLAGS-y         += $(LIBXENPLAT_CFLAGS-y)
 LIB9PFRONT_CINCLUDES-y      += $(LIBXENPLAT_CINCLUDES-y)
-LIB9PFRONT_CINCLUDES-y      += $(LIBXENBUS_CINCLUDES-y)
 LIB9PFRONT_SRCS-y           += $(LIB9PFRONT_BASE)/9pfront.c
 LIB9PFRONT_SRCS-y           += $(LIB9PFRONT_BASE)/9pfront_xs.c
index d14439e3af9d068cbeeb36250963d3874bfac5d2..d5ee6cee4d35461ba8c351cbf4e46e87bdf7eeb1 100644 (file)
@@ -3,6 +3,5 @@ $(eval $(call addlib_s,libblkfront,$(CONFIG_LIBBLKFRONT)))
 # FIXME: Extra includes should be removed
 LIBBLKFRONT_CFLAGS-y         += $(LIBXENPLAT_CFLAGS-y)
 LIBBLKFRONT_CINCLUDES-y      += $(LIBXENPLAT_CINCLUDES-y)
-LIBBLKFRONT_CINCLUDES-y      += $(LIBXENBUS_CINCLUDES-y)
 LIBBLKFRONT_SRCS-y           += $(LIBBLKFRONT_BASE)/blkfront.c
 LIBBLKFRONT_SRCS-y           += $(LIBBLKFRONT_BASE)/blkfront_xs.c
index a2ce5204c9761140565d01187e7fa4fe77d31aee..99ffdaa349e7785649f95e2fb76843f27bc43ed3 100644 (file)
@@ -3,6 +3,5 @@ $(eval $(call addlib_s,libnetfront,$(CONFIG_LIBNETFRONT)))
 # FIXME: Extra includes should be removed
 LIBNETFRONT_CFLAGS-y        += $(LIBXENPLAT_CFLAGS-y)
 LIBNETFRONT_CINCLUDES-y     += $(LIBXENPLAT_CINCLUDES-y)
-LIBNETFRONT_CINCLUDES-y     += $(LIBXENBUS_CINCLUDES-y)
 LIBNETFRONT_SRCS-y          += $(LIBNETFRONT_BASE)/netfront.c
 LIBNETFRONT_SRCS-y          += $(LIBNETFRONT_BASE)/netfront_xs.c
index 75dbade59b7985c0794a483a1fcb333e4138d43f..f7f8126625601556fe9b1653fce5d90218174d51 100644 (file)
@@ -1,6 +1,6 @@
 $(eval $(call addlib_s,libxenbus,$(CONFIG_LIBXENBUS)))
 
-LIBXENBUS_CINCLUDES-y          += -I$(LIBXENBUS_BASE)/include
+CINCLUDES-$(CONFIG_LIBXENBUS)  += -I$(LIBXENBUS_BASE)/include
 LIBXENBUS_CINCLUDES-y          += $(LIBXENPLAT_CINCLUDES-y)
 
 LIBXENBUS_CFLAGS-y             += $(LIBXENPLAT_CFLAGS-y)
diff --git a/drivers/xen/xenbus/exportsyms.uk b/drivers/xen/xenbus/exportsyms.uk
new file mode 100644 (file)
index 0000000..1e8bcc3
--- /dev/null
@@ -0,0 +1,34 @@
+uk_xenbus_state_to_str
+uk_xenbus_devtype_to_str
+uk_xenbus_str_to_devtype
+uk_xenbus_watch_wait_event
+uk_xenbus_watch_notify_event
+uk_xenbus_read_driver_state
+uk_xenbus_switch_state
+uk_xenbus_wait_for_state_change
+_xenbus_register_driver
+uk_xb_malloc
+uk_xb_calloc
+uk_xb_free
+xs_read
+xs_write
+xs_ls
+xs_rm
+xs_char_to_perm
+xs_perm_to_char
+xs_str_to_perm
+xs_perm_to_str
+xs_get_acl
+xs_set_acl
+xs_get_perm
+xs_set_perm
+xs_del_perm
+xs_watch_path
+xs_unwatch
+xs_transaction_start
+xs_transaction_end
+xs_debug_msg
+xs_read_integer
+xs_scanf
+xs_printf
+xs_get_self_id
index 12974b74679a090c6d00c5c438563c3e1db0d21d..1db17aebab498f0deb337262c20761393bd36138 100644 (file)
@@ -34,8 +34,8 @@
  * Ported from Mini-OS xenbus.c
  */
 
-#ifndef __XENBUS_CLIENT_H__
-#define __XENBUS_CLIENT_H__
+#ifndef __UK_XENBUS_CLIENT_H__
+#define __UK_XENBUS_CLIENT_H__
 
 #include <uk/xenbus/xenbus.h>
 
@@ -119,4 +119,4 @@ int uk_xenbus_switch_state(xenbus_transaction_t xbt,
 int uk_xenbus_wait_for_state_change(const char *path, XenbusState *state,
        struct xenbus_watch *watch);
 
-#endif /* __XENBUS_CLIENT_H__ */
+#endif /* __UK_XENBUS_CLIENT_H__ */
index f018c0393c33e7532f914bd15d9ca25919d458f8..b0f60a54364bdda816a35135faa029843e33c6a5 100644 (file)
@@ -30,8 +30,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef __XENBUS_H__
-#define __XENBUS_H__
+#ifndef __UK_XENBUS_H__
+#define __UK_XENBUS_H__
 
 #include <uk/arch/spinlock.h>
 #include <uk/bus.h>
@@ -153,4 +153,4 @@ void *uk_xb_malloc(size_t size);
 void *uk_xb_calloc(size_t nmemb, size_t size);
 void  uk_xb_free(void *ptr);
 
-#endif /* __XENBUS_H__ */
+#endif /* __UK_XENBUS_H__ */
index 24030d33ecb663936d4a8dcb051f56f725789cb9..ad34368486573b1d6bfc2da0ea3c6fdfb5f03ea3 100644 (file)
@@ -37,8 +37,8 @@
  * data is allocated with 'malloc'/'calloc'.
  */
 
-#ifndef __XS_H__
-#define __XS_H__
+#ifndef __UK_XS_H__
+#define __UK_XS_H__
 
 #include <uk/xenbus/xenbus.h>
 
@@ -296,4 +296,4 @@ int xs_printf(xenbus_transaction_t xbt, const char *dir, const char *node,
  */
 domid_t xs_get_self_id(void);
 
-#endif /* __XS_H__ */
+#endif /* __UK_XS_H__ */
index 4ad1a6ea8dfb5ba788faf4cea584a1c527091f80..df3a3a41d89d6abce7ece3c5777a0fafae6f5b9d 100644 (file)
@@ -5,5 +5,4 @@ CINCLUDES-$(CONFIG_LIBXENCONS)   += -I$(LIBXENCONS_BASE)/include
 # FIXME: Extra includes should be removed
 LIBXENCONS_CFLAGS-y        += $(LIBXENPLAT_CFLAGS-y)
 LIBXENCONS_CINCLUDES-y     += $(LIBXENPLAT_CINCLUDES-y)
-LIBXENCONS_CINCLUDES-y     += $(LIBXENBUS_CINCLUDES-y)
 LIBXENCONS_SRCS-y          += $(LIBXENCONS_BASE)/console.c|isr