[PATCH 6/7] KVM: ARM: Selftest: Move printf from cp15-guest.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Take the printf implementation in cp15 guest and make it available
to all guests that might want to use it.
---
 tools/testing/selftests/kvm/arm/Makefile     |    7 ++--
 tools/testing/selftests/kvm/arm/cp15-guest.c |   44 -------------------------
 tools/testing/selftests/kvm/arm/guest-util.c |   45 ++++++++++++++++++++++++++
 tools/testing/selftests/kvm/arm/guest-util.h |    8 +++++
 tools/testing/selftests/kvm/arm/guest.h      |    1 +
 5 files changed, 59 insertions(+), 46 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/arm/guest-util.c
 create mode 100644 tools/testing/selftests/kvm/arm/guest-util.h

diff --git a/tools/testing/selftests/kvm/arm/Makefile b/tools/testing/selftests/kvm/arm/Makefile
index 4f6d6be..85490f7 100644
--- a/tools/testing/selftests/kvm/arm/Makefile
+++ b/tools/testing/selftests/kvm/arm/Makefile
@@ -43,11 +43,14 @@ guest-driver: $(DRIVER_OBJS)
 guest-base.o: guest-base.S
 	$(GCC) $(CFLAGS) -fno-builtin -ffreestanding -c -o $@ $<
 
+guest-util.o: guest-util.c
+	$(GCC) $(CFLAGS) $(CFLAGS_$@) -fno-builtin -ffreestanding -c -o $@ $<
+
 %-guest.o: %-guest.c
 	$(GCC) $(CFLAGS) $(CFLAGS_$@) -fno-builtin -ffreestanding -c -o $@ $<
 
-%-guest: %-guest.o guest.lds guest-base.o
-	$(LD) -o $@ --script=guest.lds $< guest-base.o
+%-guest: %-guest.o guest.lds guest-base.o guest-util.o
+	$(LD) -o $@ --script=guest.lds $< guest-base.o guest-util.o
 
 %-host.o: %-host.c
 	$(GCC) $(CFLAGS) $(CFLAGS_$@) -c -o $@ $<
diff --git a/tools/testing/selftests/kvm/arm/cp15-guest.c b/tools/testing/selftests/kvm/arm/cp15-guest.c
index b83b747..9652183 100644
--- a/tools/testing/selftests/kvm/arm/cp15-guest.c
+++ b/tools/testing/selftests/kvm/arm/cp15-guest.c
@@ -1,5 +1,4 @@
 #include "guest.h"
-#include <stdarg.h>
 #include "cp15_test.h"
 
 /* Don't test things we know fail. */
@@ -18,49 +17,6 @@ struct test32 {
 
 extern u32 mcr_insn, mrc_insn, mcrr_insn, mrrc_insn;
 
-/* Only understands %u, %s */
-static void printf(const char *fmt, ...)
-{
-	va_list ap;
-	unsigned val;
-	char intbuf[20], *p;
-
-	va_start(ap, fmt);
-	while (*fmt) {
-		if (*fmt != '%') {
-			putc(*(fmt++));
-			continue;
-		}
-		fmt++;
-		switch (*fmt) {
-		case 'u':
-			fmt++;
-			val = va_arg(ap, int);
-			if (!val) {
-				putc('0');
-				continue;
-			}
-			p = &intbuf[19];
-			*(p--) = '\0';
-			while (val) {
-				*(p--) = (val % 10) + '0';
-				val /= 10;
-			}
-			print(p+1);
-			break;
-		case 's':
-			fmt++;
-			p = va_arg(ap, char *);
-			print(p);
-			break;
-		default:
-			putc('%');
-			continue;
-		}
-	}
-	va_end(ap);
-}
-
 /* Alter mcr or mrc instruction */
 static void alter_insn32(u32 *insn,
 			 unsigned int opc1,
diff --git a/tools/testing/selftests/kvm/arm/guest-util.c b/tools/testing/selftests/kvm/arm/guest-util.c
new file mode 100644
index 0000000..e51cdd4
--- /dev/null
+++ b/tools/testing/selftests/kvm/arm/guest-util.c
@@ -0,0 +1,45 @@
+#include <stdarg.h>
+#include "guest-util.h"
+
+/* Only understands %u, %s */
+void printf(const char *fmt, ...)
+{
+	va_list ap;
+	unsigned val;
+	char intbuf[20], *p;
+
+	va_start(ap, fmt);
+	while (*fmt) {
+		if (*fmt != '%') {
+			putc(*(fmt++));
+			continue;
+		}
+		fmt++;
+		switch (*fmt) {
+		case 'u':
+			fmt++;
+			val = va_arg(ap, int);
+			if (!val) {
+				putc('0');
+				continue;
+			}
+			p = &intbuf[19];
+			*(p--) = '\0';
+			while (val) {
+				*(p--) = (val % 10) + '0';
+				val /= 10;
+			}
+			print(p+1);
+			break;
+		case 's':
+			fmt++;
+			p = va_arg(ap, char *);
+			print(p);
+			break;
+		default:
+			putc('%');
+			continue;
+		}
+	}
+	va_end(ap);
+}
diff --git a/tools/testing/selftests/kvm/arm/guest-util.h b/tools/testing/selftests/kvm/arm/guest-util.h
new file mode 100644
index 0000000..7f0dbf9
--- /dev/null
+++ b/tools/testing/selftests/kvm/arm/guest-util.h
@@ -0,0 +1,8 @@
+#ifndef GUEST_UTIL_H
+#define GUEST_UTIL_H
+#include <stdarg.h>
+#include "guest.h"
+
+void printf(const char *fmt, ...);
+
+#endif /* GUEST_UTIL_H */
diff --git a/tools/testing/selftests/kvm/arm/guest.h b/tools/testing/selftests/kvm/arm/guest.h
index b6068d0..4fe3a31 100644
--- a/tools/testing/selftests/kvm/arm/guest.h
+++ b/tools/testing/selftests/kvm/arm/guest.h
@@ -2,6 +2,7 @@
 #define GUEST_H
 #include <stdint.h>
 #include <stdbool.h>
+#include "guest-util.h"
 
 void ok(void);
 void fail(void);
-- 
1.7.9.5

_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm


[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux