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 :|