On Tue, Jul 23, 2013 at 06:11:31PM +0200, Jiri Denemark wrote: This is adding a new function as well as exporting some existing functions, so should probably be split in two.
--- src/cpu/cpu_x86.c | 21 ++++++++++++++++++--- src/cpu/cpu_x86.h | 10 ++++++++++ src/libvirt_private.syms | 7 +++++++ 3 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 560a2a9..dbbcfd2 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -203,7 +203,7 @@ x86DataCpuid(const struct cpuX86Data *data, }
-static void +void x86DataFree(struct cpuX86Data *data)
These are kind of generic names to be exposing outside the file. It would be nice to update this file to use a better naming prefix for all its functions "virCPUx86DataNNNNN"
{ if (data == NULL) @@ -215,7 +215,7 @@ x86DataFree(struct cpuX86Data *data) }
-static virCPUDataPtr +virCPUDataPtr x86MakeCPUData(virArch arch, struct cpuX86Data **data) { virCPUDataPtr cpuData; @@ -295,7 +295,7 @@ x86DataExpand(struct cpuX86Data *data, }
-static int +int x86DataAddCpuid(struct cpuX86Data *data, const struct cpuX86cpuid *cpuid) { @@ -323,6 +323,21 @@ x86DataAddCpuid(struct cpuX86Data *data, }
+int +x86DataSetVendor(struct cpuX86Data *data, + const char *vendor) +{ + struct cpuX86cpuid cpuid; + + cpuid.function = 0; + cpuid.ebx = virReadBufInt32LE(vendor); + cpuid.edx = virReadBufInt32LE(vendor + 4); + cpuid.ecx = virReadBufInt32LE(vendor + 8); + + return x86DataAddCpuid(data, &cpuid); +} + + static int x86DataAdd(struct cpuX86Data *data1, const struct cpuX86Data *data2) diff --git a/src/cpu/cpu_x86.h b/src/cpu/cpu_x86.h index 77965b7..8235076 100644 --- a/src/cpu/cpu_x86.h +++ b/src/cpu/cpu_x86.h @@ -25,7 +25,17 @@ # define __VIR_CPU_X86_H__
# include "cpu.h" +# include "cpu_x86_data.h"
extern struct cpuArchDriver cpuDriverX86;
+int x86DataAddCpuid(struct cpuX86Data *data, + const struct cpuX86cpuid *cpuid); +int x86DataSetVendor(struct cpuX86Data *data, + const char *vendor); + +void x86DataFree(struct cpuX86Data *data); + +virCPUDataPtr x86MakeCPUData(virArch arch, struct cpuX86Data **data); + #endif /* __VIR_CPU_X86_H__ */ diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index e0f3876..7fe2bc0 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -724,6 +724,13 @@ cpuNodeData; cpuUpdate;
+# cpu/cpu_x86.h +x86DataAddCpuid; +x86DataFree; +x86DataSetVendor; +x86MakeCPUData; + + # datatypes.h virConnectClass; virDomainClass;
Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|