|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/ZYDIS PATCH 3/3] libzydis: Disassembler library port
Introduces a port of ZyDis to Unikraft
Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
---
Config.uk | 10 +++++++++
Makefile.uk | 34 ++++++++++++++++++++++++++++++
include/ZydisExportConfig.h | 42 +++++++++++++++++++++++++++++++++++++
3 files changed, 86 insertions(+)
create mode 100644 include/ZydisExportConfig.h
diff --git a/Config.uk b/Config.uk
index 508b8f2..6a7ebc7 100644
--- a/Config.uk
+++ b/Config.uk
@@ -5,3 +5,13 @@ config LIBZYCOREC
depends on ARCH_X86_32 || ARCH_X86_64
select LIBNOLIBC if !HAVE_LIBC
select LIBUKTIME if !HAVE_LIBC
+
+config LIBZYDIS
+ bool "libzydis: x86/x86-64 disassembler"
+ default n
+ depends on ARCH_X86_32 || ARCH_X86_64
+ select LIBNOLIBC if !HAVE_LIBC
+ select LIBUKTIME if !HAVE_LIBC
+ select LIBZYCOREC
+ help
+ Fast and lightweight open-source x86/x86-64 disassembler
library: https://zydis.re/
diff --git a/Makefile.uk b/Makefile.uk
index caa3d09..f0d4403 100644
--- a/Makefile.uk
+++ b/Makefile.uk
@@ -33,3 +33,37 @@ CINCLUDES-$(CONFIG_LIBZYCOREC) +=
-I$(LIBZYCOREC_INCLUDES)
#LIBZYCOREC_SRCS-$(CONFIG_LIBPTHREAD_EMBEDDED) +=
$(LIBZYCOREC_SOURCES)/API/Synchronization.c
#LIBZYCOREC_SRCS-$(CONFIG_LIBPTHREAD_EMBEDDED) +=
$(LIBZYCOREC_SOURCES)/API/Thread.c
#LIBZYCOREC_SRCS-$(CONFIG_LIBVFSCORE) += $(LIBZYCOREC_SOURCES)/API/Terminal.c
+
+# -------------------------------------------------------
+# ZyDis
+# -------------------------------------------------------
+
+$(eval $(call addlib_s,libzydis,$(CONFIG_LIBZYDIS)))
+
+LIBZYDIS_VERSION=3.0.0
+LIBZYDIS_URL=https://github.com/zyantific/zydis/archive/v$(LIBZYDIS_VERSION).tar.gz
+
+$(eval $(call fetch,libzydis,$(LIBZYDIS_URL)))
+
+LIBZYDIS_EXTRACTED=$(LIBZYDIS_ORIGIN)/zydis-$(LIBZYDIS_VERSION)
+LIBZYDIS_SOURCES=$(LIBZYDIS_EXTRACTED)/src
+LIBZYDIS_INCLUDES=$(LIBZYDIS_EXTRACTED)/include
+LIBZYDIS_COMPFLAGS-y=-Wno-implicit-fallthrough
+
+CINCLUDES-$(CONFIG_LIBZYDIS) += -I$(LIBZYDIS_INCLUDES)
+LIBZYDIS_CINCLUDES += -I$(LIBZYDIS_SOURCES)
+
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/Decoder.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/DecoderData.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/Formatter.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/FormatterATT.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/FormatterBase.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/FormatterBuffer.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/FormatterIntel.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/MetaInfo.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/Mnemonic.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/Register.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/SharedData.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/String.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/Utils.c
+LIBZYDIS_SRCS-y += $(LIBZYDIS_SOURCES)/Zydis.c
diff --git a/include/ZydisExportConfig.h b/include/ZydisExportConfig.h
new file mode 100644
index 0000000..2e75243
--- /dev/null
+++ b/include/ZydisExportConfig.h
@@ -0,0 +1,42 @@
+
+#ifndef ZYDIS_EXPORT_H
+#define ZYDIS_EXPORT_H
+
+#ifdef ZYDIS_STATIC_DEFINE
+# define ZYDIS_EXPORT
+# define ZYDIS_NO_EXPORT
+#else
+# ifndef ZYDIS_EXPORT
+# ifdef Zydis_EXPORTS
+ /* We are building this library */
+# define ZYDIS_EXPORT
+# else
+ /* We are using this library */
+# define ZYDIS_EXPORT
+# endif
+# endif
+
+# ifndef ZYDIS_NO_EXPORT
+# define ZYDIS_NO_EXPORT
+# endif
+#endif
+
+#ifndef ZYDIS_DEPRECATED
+# define ZYDIS_DEPRECATED __attribute__ ((__deprecated__))
+#endif
+
+#ifndef ZYDIS_DEPRECATED_EXPORT
+# define ZYDIS_DEPRECATED_EXPORT ZYDIS_EXPORT ZYDIS_DEPRECATED
+#endif
+
+#ifndef ZYDIS_DEPRECATED_NO_EXPORT
+# define ZYDIS_DEPRECATED_NO_EXPORT ZYDIS_NO_EXPORT ZYDIS_DEPRECATED
+#endif
+
+#if 0 /* DEFINE_NO_DEPRECATED */
+# ifndef ZYDIS_NO_DEPRECATED
+# define ZYDIS_NO_DEPRECATED
+# endif
+#endif
+
+#endif /* ZYDIS_EXPORT_H */
--
2.20.1
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |