cpu: Add support for overriding path to CPU map XML file

This commit is contained in:
Jiri Denemark 2010-09-16 16:56:07 +02:00
parent 1b6f13bb70
commit 72bce49dcc
3 changed files with 23 additions and 2 deletions

View File

@ -32,6 +32,8 @@
#define CPUMAPFILE PKGDATADIR "/cpu_map.xml"
static char *cpumap;
VIR_ENUM_IMPL(cpuMapElement, CPU_MAP_ELEMENT_LAST,
"vendor",
"feature",
@ -81,6 +83,7 @@ int cpuMapLoad(const char *arch,
char *xpath = NULL;
int ret = -1;
int element;
const char *mapfile = (cpumap ? cpumap : CPUMAPFILE);
if (arch == NULL) {
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
@ -94,10 +97,10 @@ int cpuMapLoad(const char *arch,
return -1;
}
if ((xml = xmlParseFile(CPUMAPFILE)) == NULL) {
if ((xml = xmlParseFile(mapfile)) == NULL) {
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse CPU map file: %s"),
CPUMAPFILE);
mapfile);
goto cleanup;
}
@ -139,3 +142,17 @@ no_memory:
virReportOOMError();
goto cleanup;
}
int
cpuMapOverride(const char *path)
{
char *map;
if (!(map = strdup(path)))
return -1;
VIR_FREE(cpumap);
cpumap = map;
return 0;
}

View File

@ -48,4 +48,7 @@ cpuMapLoad(const char *arch,
cpuMapLoadCallback cb,
void *data);
extern int
cpuMapOverride(const char *path);
#endif /* __VIR_CPU_MAP_H__ */

View File

@ -105,6 +105,7 @@ cpuDecode;
cpuEncode;
cpuGuestData;
cpuHasFeature;
cpuMapOverride;
cpuNodeData;
cpuUpdate;