NULL, 0, NULL)) == NULL)
goto error;
- if (virCapabilitiesAddGuestDomain(guest,
- "bhyve", NULL, NULL, 0, NULL) == NULL)
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_BHYVE,
+ NULL, NULL, 0, NULL) == NULL)
goto error;
if (virBhyveCapsInitCPU(caps, virArchFromHost()) < 0)
for (i = 0; i < dom->info.nmachines; i++)
virCapabilitiesFreeGuestMachine(dom->info.machines[i]);
VIR_FREE(dom->info.machines);
- VIR_FREE(dom->type);
VIR_FREE(dom);
}
*/
virCapsGuestDomainPtr
virCapabilitiesAddGuestDomain(virCapsGuestPtr guest,
- const char *hvtype,
+ int hvtype,
const char *emulator,
const char *loader,
int nmachines,
if (VIR_ALLOC(dom) < 0)
goto error;
- if (VIR_STRDUP(dom->type, hvtype) < 0 ||
- VIR_STRDUP(dom->info.emulator, emulator) < 0 ||
+ dom->type = hvtype;
+ if (VIR_STRDUP(dom->info.emulator, emulator) < 0 ||
VIR_STRDUP(dom->info.loader, loader) < 0)
goto error;
* virCapabilitiesDefaultGuestArch:
* @caps: capabilities to query
* @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
+ * @domain: domain type to search for, of enum VIR_DOMAIN_VIRT
*
* Returns the first architecture able to run the
* requested operating system type
extern virArch
virCapabilitiesDefaultGuestArch(virCapsPtr caps,
int ostype,
- const char *domain)
+ int domain)
{
size_t i, j;
for (i = 0; i < caps->nguests; i++) {
if (caps->guests[i]->ostype == ostype) {
for (j = 0; j < caps->guests[i]->arch.ndomains; j++) {
- if (STREQ(caps->guests[i]->arch.domains[j]->type, domain) &&
+ if (caps->guests[i]->arch.domains[j]->type == domain &&
caps->guests[i]->arch.id == caps->host.arch)
return caps->guests[i]->arch.id;
}
for (i = 0; i < caps->nguests; i++) {
if (caps->guests[i]->ostype == ostype) {
for (j = 0; j < caps->guests[i]->arch.ndomains; j++) {
- if (STREQ(caps->guests[i]->arch.domains[j]->type, domain))
+ if (caps->guests[i]->arch.domains[j]->type == domain)
return caps->guests[i]->arch.id;
}
}
* @caps: capabilities to query
* @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
* @arch: architecture to search for
- * @domain: domain type to search for
+ * @domain: domain type to search for, of enum VIR_DOMAIN_VIRT
*
* Returns the first machine variant associated with
* the requested operating system type, architecture
virCapabilitiesDefaultGuestMachine(virCapsPtr caps,
int ostype,
virArch arch,
- const char *domain)
+ int domain)
{
size_t i;
for (j = 0; j < guest->arch.ndomains; j++) {
virCapsGuestDomainPtr dom = guest->arch.domains[j];
- if (!STREQ(dom->type, domain))
+ if (dom->type != domain)
continue;
if (!dom->info.nmachines)
* @caps: capabilities to query
* @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
* @arch: architecture to search for
- * @domain: domain type ('xen', 'qemu', 'kvm')
+ * @domain: domain type to search for, of enum VIR_DOMAIN_VIRT
*
* Returns the first emulator path associated with
* the requested operating system type, architecture
virCapabilitiesDefaultGuestEmulator(virCapsPtr caps,
int ostype,
virArch arch,
- const char *domain)
+ int domain)
{
size_t i, j;
caps->guests[i]->arch.id == arch) {
emulator = caps->guests[i]->arch.defaultInfo.emulator;
for (j = 0; j < caps->guests[i]->arch.ndomains; j++) {
- if (STREQ(caps->guests[i]->arch.domains[j]->type, domain)) {
+ if (caps->guests[i]->arch.domains[j]->type == domain) {
if (caps->guests[i]->arch.domains[j]->info.emulator)
emulator = caps->guests[i]->arch.domains[j]->info.emulator;
}
for (j = 0; j < caps->guests[i]->arch.ndomains; j++) {
virBufferAsprintf(&buf, "<domain type='%s'",
- caps->guests[i]->arch.domains[j]->type);
+ virDomainVirtTypeToString(caps->guests[i]->arch.domains[j]->type));
if (!caps->guests[i]->arch.domains[j]->info.emulator &&
!caps->guests[i]->arch.domains[j]->info.loader &&
!caps->guests[i]->arch.domains[j]->info.nmachines) {
typedef struct _virCapsGuestDomain virCapsGuestDomain;
typedef virCapsGuestDomain *virCapsGuestDomainPtr;
struct _virCapsGuestDomain {
- char *type;
+ int type;
virCapsGuestDomainInfo info;
};
extern virCapsGuestDomainPtr
virCapabilitiesAddGuestDomain(virCapsGuestPtr guest,
- const char *hvtype,
+ int hvtype,
const char *emulator,
const char *loader,
int nmachines,
extern virArch
virCapabilitiesDefaultGuestArch(virCapsPtr caps,
int ostype,
- const char *domain);
+ int domain);
extern const char *
virCapabilitiesDefaultGuestMachine(virCapsPtr caps,
int ostype,
virArch arch,
- const char *domain);
+ int domain);
extern const char *
virCapabilitiesDefaultGuestEmulator(virCapsPtr caps,
int ostype,
virArch arch,
- const char *domain);
+ int domain);
extern char *
virCapabilitiesFormatXML(virCapsPtr caps);
virDomainDefGetDefaultEmulator(virDomainDefPtr def,
virCapsPtr caps)
{
- const char *type;
const char *emulator;
char *retemu;
- type = virDomainVirtTypeToString(def->virtType);
- if (!type) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- "%s", _("unknown virt type"));
- return NULL;
- }
-
emulator = virCapabilitiesDefaultGuestEmulator(caps,
def->os.type,
def->os.arch,
- type);
+ def->virtType);
if (!emulator) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("no emulator for domain %s os type %s "
"on architecture %s"),
- type, virDomainOSTypeToString(def->os.type),
+ virDomainVirtTypeToString(def->virtType),
+ virDomainOSTypeToString(def->os.type),
virArchToString(def->os.arch));
return NULL;
}
def->os.arch =
virCapabilitiesDefaultGuestArch(caps,
def->os.type,
- virDomainVirtTypeToString(def->virtType));
+ def->virtType);
if (!def->os.arch) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("no supported architecture for os type '%s'"),
const char *defaultMachine = virCapabilitiesDefaultGuestMachine(caps,
def->os.type,
def->os.arch,
- virDomainVirtTypeToString(def->virtType));
+ def->virtType);
if (VIR_STRDUP(def->os.machine, defaultMachine) < 0)
goto error;
}
if (!guest)
goto failure;
- if (!virCapabilitiesAddGuestDomain(guest, "vmware", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL, NULL, 0, NULL))
goto failure;
/* x86_64 */
if (!guest)
goto failure;
- if (!virCapabilitiesAddGuestDomain(guest, "vmware", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL, NULL, 0, NULL))
goto failure;
}
machines = NULL;
if (virCapabilitiesAddGuestDomain(guest,
- "xen",
+ VIR_DOMAIN_VIRT_XEN,
NULL,
NULL,
0,
goto error;
if (virCapabilitiesAddGuestDomain(guest,
- "lxc",
+ VIR_DOMAIN_VIRT_LXC,
NULL,
NULL,
0,
goto error;
if (virCapabilitiesAddGuestDomain(guest,
- "lxc",
+ VIR_DOMAIN_VIRT_LXC,
NULL,
NULL,
0,
goto no_memory;
if (virCapabilitiesAddGuestDomain(guest,
- "openvz",
+ VIR_DOMAIN_VIRT_OPENVZ,
NULL,
NULL,
0,
goto error;
- if (virCapabilitiesAddGuestDomain(guest,
- "parallels", NULL, NULL, 0, NULL) == NULL)
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_PARALLELS,
+ NULL, NULL, 0, NULL) == NULL)
goto error;
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_EXE,
NULL, 0, NULL)) == NULL)
goto error;
- if (virCapabilitiesAddGuestDomain(guest,
- "parallels", NULL, NULL, 0, NULL) == NULL)
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_PARALLELS,
+ NULL, NULL, 0, NULL) == NULL)
goto error;
if (nodeGetInfo(&nodeinfo))
NULL, NULL, 0, NULL)) == NULL)
goto no_memory;
- if (virCapabilitiesAddGuestDomain(guest,
- "phyp", NULL, NULL, 0, NULL) == NULL)
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_PHYP,
+ NULL, NULL, 0, NULL) == NULL)
goto no_memory;
return caps;
goto cleanup;
if (virCapabilitiesAddGuestDomain(guest,
- "qemu",
+ VIR_DOMAIN_VIRT_QEMU,
NULL,
NULL,
0,
if (haskqemu &&
virCapabilitiesAddGuestDomain(guest,
- "kqemu",
+ VIR_DOMAIN_VIRT_KQEMU,
NULL,
NULL,
0,
goto cleanup;
if ((dom = virCapabilitiesAddGuestDomain(guest,
- "kvm",
+ VIR_DOMAIN_VIRT_KVM,
kvmbin ? kvmbin : binary,
NULL,
nmachines,
if ((binary = virCapabilitiesDefaultGuestEmulator(caps,
VIR_DOMAIN_OSTYPE_HVM,
hostarch,
- "qemu")) == NULL) {
+ VIR_DOMAIN_VIRT_QEMU)) == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Cannot find suitable emulator for %s"),
virArchToString(hostarch));
virCapabilitiesDefaultGuestMachine(qemuCaps,
def->os.type,
def->os.arch,
- virDomainVirtTypeToString(def->virtType));
+ def->virtType);
if (defaultMachine != NULL)
if (VIR_STRDUP(def->os.machine, defaultMachine) < 0)
goto error;
goto error;
if (virCapabilitiesAddGuestDomain(guest,
- "test",
+ VIR_DOMAIN_VIRT_TEST,
NULL,
NULL,
0,
goto error;
if (virCapabilitiesAddGuestDomain(guest,
- "uml",
+ VIR_DOMAIN_VIRT_UML,
NULL,
NULL,
0,
goto no_memory;
if (virCapabilitiesAddGuestDomain(guest,
- "vbox",
+ VIR_DOMAIN_VIRT_VBOX,
NULL,
NULL,
0,
goto error;
if (virCapabilitiesAddGuestDomain(guest,
- "vmware",
+ VIR_DOMAIN_VIRT_VMWARE,
NULL, NULL, 0, NULL) == NULL)
goto error;
goto error;
if (virCapabilitiesAddGuestDomain(guest,
- "vmware",
+ VIR_DOMAIN_VIRT_VMWARE,
NULL, NULL, 0, NULL) == NULL)
goto error;
}
machines = NULL;
if (virCapabilitiesAddGuestDomain(guest,
- "xen",
+ VIR_DOMAIN_VIRT_XEN,
NULL,
NULL,
0,
guest1 = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_X86_64, "", "", 0, NULL);
if (!guest1)
goto error_cleanup;
- domain1 = virCapabilitiesAddGuestDomain(guest1, "xen", "", "", 0, NULL);
+ domain1 = virCapabilitiesAddGuestDomain(guest1, VIR_DOMAIN_VIRT_XEN, "", "", 0, NULL);
if (!domain1)
goto error_cleanup;
guest2 = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_XEN, VIR_ARCH_X86_64, "", "", 0, NULL);
if (!guest2)
goto error_cleanup;
- domain2 = virCapabilitiesAddGuestDomain(guest2, "xen", "", "", 0, NULL);
+ domain2 = virCapabilitiesAddGuestDomain(guest2, VIR_DOMAIN_VIRT_XEN, "", "", 0, NULL);
if (!domain2)
goto error_cleanup;
def->os.arch =
virCapabilitiesDefaultGuestArch(caps,
def->os.type,
- virDomainVirtTypeToString(def->virtType));
+ def->virtType);
if (!def->os.arch) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("no supported architecture for os type '%s'"),
defaultMachine = virCapabilitiesDefaultGuestMachine(caps,
def->os.type,
def->os.arch,
- virDomainVirtTypeToString(def->virtType));
+ def->virtType);
if (defaultMachine != NULL) {
if (VIR_STRDUP(def->os.machine, defaultMachine) < 0)
return -1;
0, NULL)) == NULL)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "test", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_TEST, NULL, NULL, 0, NULL))
goto error;
0, NULL)) == NULL)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "test", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_TEST, NULL, NULL, 0, NULL))
goto error;
0, NULL)) == NULL)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "lxc", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_LXC, NULL, NULL, 0, NULL))
goto error;
0, NULL)) == NULL)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "lxc", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_LXC, NULL, NULL, 0, NULL))
goto error;
if (!guest)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "qemu", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_QEMU, NULL, NULL, 0, NULL))
goto error;
return 0;
if (!guest)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "qemu", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_QEMU, NULL, NULL, 0, NULL))
goto error;
return 0;
if (!guest)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "qemu", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_QEMU, NULL, NULL, 0, NULL))
goto error;
return 0;
if (!guest)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "qemu", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_QEMU, NULL, NULL, 0, NULL))
goto error;
return 0;
if (!guest)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "qemu", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_QEMU, NULL, NULL, 0, NULL))
goto error;
return 0;
if (!guest)
goto error;
- if (!virCapabilitiesAddGuestDomain(guest, "qemu", NULL, NULL, 0, NULL))
+ if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_QEMU, NULL, NULL, 0, NULL))
goto error;
return 0;
machines = NULL;
if (virCapabilitiesAddGuestDomain(guest,
- "qemu",
+ VIR_DOMAIN_VIRT_QEMU,
NULL,
NULL,
0,
machines = NULL;
if (virCapabilitiesAddGuestDomain(guest,
- "qemu",
+ VIR_DOMAIN_VIRT_QEMU,
NULL,
NULL,
0,
goto cleanup;
if (virCapabilitiesAddGuestDomain(guest,
- "kvm",
+ VIR_DOMAIN_VIRT_KVM,
"/usr/bin/kvm",
NULL,
nmachines,
machines = NULL;
if (virCapabilitiesAddGuestDomain(guest,
- "kvm",
+ VIR_DOMAIN_VIRT_KVM,
"/usr/bin/kvm",
NULL,
0,
machines = NULL;
if (virCapabilitiesAddGuestDomain(guest,
- "xen",
+ VIR_DOMAIN_VIRT_XEN,
NULL,
NULL,
0,
machines = NULL;
if (virCapabilitiesAddGuestDomain(guest,
- "xen",
+ VIR_DOMAIN_VIRT_XEN,
NULL,
NULL,
0,
nmachines, machines)) == NULL)
goto cleanup;
machines = NULL;
- if (virCapabilitiesAddGuestDomain(guest, "xen", NULL,
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_XEN, NULL,
NULL, 0, NULL) == NULL)
goto cleanup;
nmachines = ARRAY_CARDINALITY(xen_machines);
goto cleanup;
machines = NULL;
- if (virCapabilitiesAddGuestDomain(guest, "xen", NULL,
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_XEN, NULL,
NULL, 0, NULL) == NULL)
goto cleanup;
return caps;
if (guest == NULL)
goto failure;
- if (virCapabilitiesAddGuestDomain(guest, "vmware", NULL, NULL, 0,
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL, NULL, 0,
NULL) == NULL) {
goto failure;
}
if (guest == NULL)
goto failure;
- if (virCapabilitiesAddGuestDomain(guest, "vmware", NULL, NULL, 0,
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL, NULL, 0,
NULL) == NULL) {
goto failure;
}
if (guest == NULL)
goto failure;
- if (virCapabilitiesAddGuestDomain(guest, "vmware", NULL, NULL, 0,
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL, NULL, 0,
NULL) == NULL) {
goto failure;
}
if (guest == NULL)
goto failure;
- if (virCapabilitiesAddGuestDomain(guest, "vmware", NULL, NULL, 0,
+ if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL, NULL, 0,
NULL) == NULL) {
goto failure;
}