HVM SMBIOS support 5/6
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
@@ -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
@@ -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
@@ -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
@@ -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