}
if (rawio) {
- def->rawio_specified = true;
- if (STREQ(rawio, "yes")) {
- def->rawio = 1;
- } else if (STREQ(rawio, "no")) {
- def->rawio = 0;
- } else {
+ if ((def->rawio = virTristateBoolTypeFromString(rawio)) <= 0) {
virReportError(VIR_ERR_XML_ERROR,
_("unknown disk rawio setting '%s'"),
rawio);
virBufferAsprintf(buf,
"<disk type='%s' device='%s'",
type, device);
- if (def->rawio_specified) {
- if (def->rawio == 1) {
- virBufferAddLit(buf, " rawio='yes'");
- } else if (def->rawio == 0) {
- virBufferAddLit(buf, " rawio='no'");
- }
+ if (def->rawio) {
+ virBufferAsprintf(buf, " rawio='%s'",
+ virTristateBoolTypeToString(def->rawio));
}
if (def->sgio)
int startupPolicy; /* enum virDomainStartupPolicy */
bool transient;
virDomainDeviceInfo info;
- bool rawio_specified;
- int rawio; /* no = 0, yes = 1 */
+ int rawio; /* enum virTristateBool */
int sgio; /* enum virDomainDeviceSGIO */
int discard; /* enum virDomainDiskDiscard */
unsigned int iothread; /* unused = 0, > 0 specific thread # */
cfg->allowDiskFormatProbing)
qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_DISK_PROBING, logFD);
- if (disk->rawio == 1)
- qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_HIGH_PRIVILEGES, logFD);
+ if (disk->rawio == VIR_TRISTATE_BOOL_YES)
+ qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_HIGH_PRIVILEGES,
+ logFD);
virObjectUnref(cfg);
}
virDomainDeviceDef dev;
virDomainDiskDefPtr disk = vm->def->disks[i];
- if (vm->def->disks[i]->rawio == 1) {
+ if (vm->def->disks[i]->rawio == VIR_TRISTATE_BOOL_YES) {
#ifdef CAP_SYS_RAWIO
virCommandAllowCap(cmd, CAP_SYS_RAWIO);
#else