Skip to contentSkip to conversation

HVM SMBIOS support 5/6

RFC PATCH New Andrew D. Ball 1 participant 1 message Jul 7, 2006

lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/1 HVM SMBIOS support 5/6

[HVM] [Firmware] Refactor hvmloader.c and acpi_madt.c to allow other files to use some utility functions (memcpy, puts, get_hvm_info_table). Add some string manipulation functions, memcmp, and memset for SMBIOS generation code.

tools/firmware/hvmloader/Makefile +4 -4
diff -r 5610d916ad1b tools/firmware/hvmloader/Makefile
@@ -31,7 +31,7 @@
 DEFINES  =-DDEBUG
 XENINC   =-I$(XEN_ROOT)/tools/libxc
 
-OBJECTS	 = hvmloader.o acpi_madt.o 
+OBJECTS	 = hvmloader.o acpi_madt.o util.o
 
 # Disable PIE/SSP if GCC supports them. They can break us.
 CFLAGS  += $(call test-gcc-flag,$(CC),-nopie)
@@ -45,9 +45,9 @@
 .PHONY: all
 all: hvmloader
 
-hvmloader: roms.h hvmloader.c acpi_madt.c
-	$(CC) $(CFLAGS) -c hvmloader.c acpi_madt.c
-	$(CC) $(LDFLAGS) -o hvmloader.tmp hvmloader.o acpi_madt.o
+hvmloader: roms.h hvmloader.c acpi_madt.c util.c
+	$(CC) $(CFLAGS) -c hvmloader.c acpi_madt.c util.c
+	$(CC) $(LDFLAGS) -o hvmloader.tmp hvmloader.o acpi_madt.o util.o
 	$(OBJCOPY) hvmloader.tmp hvmloader
 	rm -f hvmloader.tmp
 
tools/firmware/hvmloader/acpi_madt.c +7 -51

78 lines not on this page · raw message

tools/firmware/hvmloader/hvmloader.c +1 -22
diff -r 5610d916ad1b tools/firmware/hvmloader/hvmloader.c
@@ -23,6 +23,7 @@
  */
 #include "roms.h"
 #include "../acpi/acpi2_0.h"  /* for ACPI_PHYSICAL_ADDRESS */
+#include "util.h"
 
 /* memory map */
 #define VGABIOS_PHYSICAL_ADDRESS	0x000C0000
@@ -91,28 +92,6 @@
 
         __asm__ __volatile__ ("inb %w1,%0" : "=a" (val) : "Nd" (addr));
         return val;
-}
-
-void *
-memcpy(void *dest, const void *src, unsigned n)
-{
-	int t0, t1, t2;
-
-	__asm__ __volatile__(
-		"cld\n"
-		"rep; movsl\n"
-		"testb $2,%b4\n"
-		"je 1f\n"
-		"movsw\n"
-		"1: testb $1,%b4\n"
-		"je 2f\n"
-		"movsb\n"
-		"2:"
-		: "=&c" (t0), "=&D" (t1), "=&S" (t2)
-		: "0" (n/4), "q" (n), "1" ((long) dest), "2" ((long) src)
-		: "memory"
-	);
-	return dest;
 }
 
 int
tools/firmware/hvmloader/util.c new file +155 -0

155 lines not on this page · raw message

tools/firmware/hvmloader/util.h new file +66 -0

66 lines not on this page · raw message

[HVM] [Firmware] Refactor hvmloader.c and acpi_madt.c to allow other files to use some utility functions (memcpy, puts, get_hvm_info_table). Add some string manipulation functions, memcmp, and memset for SMBIOS generation code.

tools/firmware/hvmloader/Makefile +4 -4
diff -r 5610d916ad1b tools/firmware/hvmloader/Makefile
@@ -31,7 +31,7 @@
 DEFINES  =-DDEBUG
 XENINC   =-I$(XEN_ROOT)/tools/libxc
 
-OBJECTS	 = hvmloader.o acpi_madt.o 
+OBJECTS	 = hvmloader.o acpi_madt.o util.o
 
 # Disable PIE/SSP if GCC supports them. They can break us.
 CFLAGS  += $(call test-gcc-flag,$(CC),-nopie)
@@ -45,9 +45,9 @@
 .PHONY: all
 all: hvmloader
 
-hvmloader: roms.h hvmloader.c acpi_madt.c
-	$(CC) $(CFLAGS) -c hvmloader.c acpi_madt.c
-	$(CC) $(LDFLAGS) -o hvmloader.tmp hvmloader.o acpi_madt.o
+hvmloader: roms.h hvmloader.c acpi_madt.c util.c
+	$(CC) $(CFLAGS) -c hvmloader.c acpi_madt.c util.c
+	$(CC) $(LDFLAGS) -o hvmloader.tmp hvmloader.o acpi_madt.o util.o
 	$(OBJCOPY) hvmloader.tmp hvmloader
 	rm -f hvmloader.tmp
 
tools/firmware/hvmloader/acpi_madt.c +7 -51

78 lines not on this page · raw message

tools/firmware/hvmloader/hvmloader.c +1 -22
diff -r 5610d916ad1b tools/firmware/hvmloader/hvmloader.c
@@ -23,6 +23,7 @@
  */
 #include "roms.h"
 #include "../acpi/acpi2_0.h"  /* for ACPI_PHYSICAL_ADDRESS */
+#include "util.h"
 
 /* memory map */
 #define VGABIOS_PHYSICAL_ADDRESS	0x000C0000
@@ -91,28 +92,6 @@
 
         __asm__ __volatile__ ("inb %w1,%0" : "=a" (val) : "Nd" (addr));
         return val;
-}
-
-void *
-memcpy(void *dest, const void *src, unsigned n)
-{
-	int t0, t1, t2;
-
-	__asm__ __volatile__(
-		"cld\n"
-		"rep; movsl\n"
-		"testb $2,%b4\n"
-		"je 1f\n"
-		"movsw\n"
-		"1: testb $1,%b4\n"
-		"je 2f\n"
-		"movsb\n"
-		"2:"
-		: "=&c" (t0), "=&D" (t1), "=&S" (t2)
-		: "0" (n/4), "q" (n), "1" ((long) dest), "2" ((long) src)
-		: "memory"
-	);
-	return dest;
 }
 
 int
tools/firmware/hvmloader/util.c new file +155 -0

155 lines not on this page · raw message

tools/firmware/hvmloader/util.h new file +66 -0

66 lines not on this page · raw message

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel