The QEMU flags are commonly stored as a signed or unsigned int,
allowing only 31 flags. This limit is rather close, so to aid
future patches, change it to a 64-bit int
* src/qemu/qemu_conf.c, src/qemu/qemu_conf.h, src/qemu/qemu_driver.c,
tests/qemuargv2xmltest.c, tests/qemuhelptest.c, tests/qemuxml2argvtest.c:
Use 'unsigned long long' for QEMU flags
---
src/qemu/qemu_conf.c | 28 ++++++++++++++--------------
src/qemu/qemu_conf.h | 14 +++++++-------
src/qemu/qemu_driver.c | 12 ++++++------
tests/qemuargv2xmltest.c | 2 +-
tests/qemuhelptest.c | 13 +++++++------
tests/qemuxml2argvtest.c | 7 ++++---
6 files changed, 39 insertions(+), 37 deletions(-)
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 257b4a4..e3769c8 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1108,12 +1108,12 @@ virCapsPtr qemudCapsInit(virCapsPtr old_caps) {
return NULL;
}
-static unsigned int qemudComputeCmdFlags(const char *help,
- unsigned int version,
- unsigned int is_kvm,
- unsigned int kvm_version)
+static unsigned long long qemudComputeCmdFlags(const char *help,
+ unsigned int version,
+ unsigned int is_kvm,
+ unsigned int kvm_version)
{
- unsigned int flags = 0;
+ unsigned long long flags = 0;
if (strstr(help, "-no-kqemu"))
flags |= QEMUD_CMD_FLAG_KQEMU;
@@ -1236,7 +1236,7 @@ static unsigned int qemudComputeCmdFlags(const char *help,
#define SKIP_BLANKS(p) do { while ((*(p) == ' ') || (*(p) == '\t'))
(p)++; } while (0)
int qemudParseHelpStr(const char *help,
- unsigned int *flags,
+ unsigned long long *flags,
unsigned int *version,
unsigned int *is_kvm,
unsigned int *kvm_version)
@@ -1316,14 +1316,14 @@ fail:
int qemudExtractVersionInfo(const char *qemu,
unsigned int *retversion,
- unsigned int *retflags) {
+ unsigned long long *retflags) {
const char *const qemuarg[] = { qemu, "-help", NULL };
const char *const qemuenv[] = { "LC_ALL=C", NULL };
pid_t child;
int newstdout = -1;
int ret = -1, status;
unsigned int version, is_kvm, kvm_version;
- unsigned int flags = 0;
+ unsigned long long flags = 0;
if (retflags)
*retflags = 0;
@@ -1425,7 +1425,7 @@ int
qemudNetworkIfaceConnect(virConnectPtr conn,
struct qemud_driver *driver,
virDomainNetDefPtr net,
- int qemuCmdFlags)
+ unsigned long long qemuCmdFlags)
{
char *brname = NULL;
int err;
@@ -1637,7 +1637,7 @@ no_memory:
int
-qemuAssignDeviceDiskAlias(virDomainDiskDefPtr def, int qemuCmdFlags)
+qemuAssignDeviceDiskAlias(virDomainDiskDefPtr def, unsigned long long qemuCmdFlags)
{
if (qemuCmdFlags & QEMUD_CMD_FLAG_DRIVE) {
if (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE)
@@ -1720,7 +1720,7 @@ qemuAssignDeviceControllerAlias(virDomainControllerDefPtr
controller)
static int
-qemuAssignDeviceAliases(virDomainDefPtr def, int qemuCmdFlags)
+qemuAssignDeviceAliases(virDomainDefPtr def, unsigned long long qemuCmdFlags)
{
int i;
@@ -2189,7 +2189,7 @@ qemuSafeSerialParamValue(virConnectPtr conn,
char *
qemuBuildDriveStr(virDomainDiskDefPtr disk,
int bootable,
- int qemuCmdFlags)
+ unsigned long long qemuCmdFlags)
{
virBuffer opt = VIR_BUFFER_INITIALIZER;
const char *bus = virDomainDiskQEMUBusTypeToString(disk->bus);
@@ -3017,7 +3017,7 @@ no_memory:
static char *
qemuBuildSmpArgStr(const virDomainDefPtr def,
- int qemuCmdFlags)
+ unsigned long long qemuCmdFlags)
{
virBuffer buf = VIR_BUFFER_INITIALIZER;
@@ -3057,7 +3057,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
virDomainDefPtr def,
virDomainChrDefPtr monitor_chr,
int monitor_json,
- unsigned int qemuCmdFlags,
+ unsigned long long qemuCmdFlags,
const char ***retargv,
const char ***retenv,
int **tapfds,
diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
index 5525b6c..f6397b7 100644
--- a/src/qemu/qemu_conf.h
+++ b/src/qemu/qemu_conf.h
@@ -170,10 +170,10 @@ virCapsPtr qemudCapsInit (virCapsPtr old_caps);
int qemudExtractVersion (struct qemud_driver *driver);
int qemudExtractVersionInfo (const char *qemu,
unsigned int *version,
- unsigned int *flags);
+ unsigned long long *qemuCmdFlags);
int qemudParseHelpStr (const char *str,
- unsigned int *flags,
+ unsigned long long *qemuCmdFlags,
unsigned int *version,
unsigned int *is_kvm,
unsigned int *kvm_version);
@@ -183,7 +183,7 @@ int qemudBuildCommandLine (virConnectPtr conn,
virDomainDefPtr def,
virDomainChrDefPtr monitor_chr,
int monitor_json,
- unsigned int qemuCmdFlags,
+ unsigned long long qemuCmdFlags,
const char ***retargv,
const char ***retenv,
int **tapfds,
@@ -205,12 +205,12 @@ char * qemuBuildNicStr(virConnectPtr conn,
/* Current, best practice */
char * qemuBuildNicDevStr(virDomainNetDefPtr net,
- int qemuCmdFlags);
+ int vlan);
/* Both legacy & current support */
char *qemuBuildDriveStr(virDomainDiskDefPtr disk,
int bootable,
- int qemuCmdFlags);
+ unsigned long long qemuCmdFlags);
/* Current, best practice */
char * qemuBuildDriveDevStr(virConnectPtr conn,
@@ -244,7 +244,7 @@ char * qemuBuildUSBHostdevDevStr(virDomainHostdevDefPtr dev);
int qemudNetworkIfaceConnect (virConnectPtr conn,
struct qemud_driver *driver,
virDomainNetDefPtr net,
- int qemuCmdFlags);
+ unsigned long long qemuCmdFlags);
int qemudProbeMachineTypes (const char *binary,
virCapsGuestMachinePtr **machines,
@@ -283,7 +283,7 @@ int qemuAssignDevicePCISlots(virDomainDefPtr def,
qemuDomainPCIAddressSetPtr ad
int qemuDomainNetVLAN(virDomainNetDefPtr def);
int qemuAssignDeviceNetAlias(virDomainDefPtr def, virDomainNetDefPtr net, int idx);
-int qemuAssignDeviceDiskAlias(virDomainDiskDefPtr def, int qemuCmdFlags);
+int qemuAssignDeviceDiskAlias(virDomainDiskDefPtr def, unsigned long long qemuCmdFlags);
int qemuAssignDeviceHostdevAlias(virDomainDefPtr def, virDomainHostdevDefPtr net, int
idx);
int qemuAssignDeviceControllerAlias(virDomainControllerDefPtr controller);
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 4374291..54d33cd 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2520,7 +2520,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
struct stat sb;
int *tapfds = NULL;
int ntapfds = 0;
- unsigned int qemuCmdFlags;
+ unsigned long long qemuCmdFlags;
fd_set keepfd;
const char *emulator;
pid_t child;
@@ -4707,7 +4707,7 @@ static char *qemuDomainXMLToNative(virConnectPtr conn,
virDomainDefPtr def = NULL;
virDomainChrDef monConfig;
const char *emulator;
- unsigned int qemuCmdFlags;
+ unsigned long long qemuCmdFlags;
struct stat sb;
const char **retargv = NULL;
const char **retenv = NULL;
@@ -5586,7 +5586,7 @@ static int qemudDomainAttachNetDevice(virConnectPtr conn,
struct qemud_driver *driver,
virDomainObjPtr vm,
virDomainNetDefPtr net,
- unsigned int qemuCmdFlags)
+ unsigned long long qemuCmdFlags)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
char *tapfd_name = NULL;
@@ -5901,7 +5901,7 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
struct qemud_driver *driver = dom->conn->privateData;
virDomainObjPtr vm;
virDomainDeviceDefPtr dev = NULL;
- unsigned int qemuCmdFlags;
+ unsigned long long qemuCmdFlags;
virCgroupPtr cgroup = NULL;
int ret = -1;
@@ -7437,7 +7437,7 @@ qemudDomainMigratePrepareTunnel(virConnectPtr dconn,
int ret = -1;
int internalret;
char *unixfile = NULL;
- unsigned int qemuCmdFlags;
+ unsigned long long qemuCmdFlags;
struct qemuStreamMigFile *qemust = NULL;
qemuDriverLock(driver);
@@ -7884,7 +7884,7 @@ static int doTunnelMigrate(virDomainPtr dom,
virStreamPtr st = NULL;
char *unixfile = NULL;
int internalret;
- unsigned int qemuCmdFlags;
+ unsigned long long qemuCmdFlags;
int status;
unsigned long long transferred, remaining, total;
diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c
index 1f1914b..c125a34 100644
--- a/tests/qemuargv2xmltest.c
+++ b/tests/qemuargv2xmltest.c
@@ -75,7 +75,7 @@ static int testCompareXMLToArgvFiles(const char *xml,
struct testInfo {
const char *name;
- int extraFlags;
+ unsigned long long extraFlags;
const char *migrateFrom;
};
diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c
index 34a6048..0f2b509 100644
--- a/tests/qemuhelptest.c
+++ b/tests/qemuhelptest.c
@@ -12,10 +12,10 @@
struct testInfo {
const char *name;
- unsigned flags;
- unsigned version;
- unsigned is_kvm;
- unsigned kvm_version;
+ unsigned long long flags;
+ unsigned int version;
+ unsigned int is_kvm;
+ unsigned int kvm_version;
};
static char *progname;
@@ -41,7 +41,8 @@ static int testHelpStrParsing(const void *data)
char path[PATH_MAX];
char helpStr[MAX_HELP_OUTPUT_SIZE];
char *help = &(helpStr[0]);
- unsigned flags, version, is_kvm, kvm_version;
+ unsigned int version, is_kvm, kvm_version;
+ unsigned long long flags;
snprintf(path, PATH_MAX, "%s/qemuhelpdata/%s", abs_srcdir, info->name);
@@ -52,7 +53,7 @@ static int testHelpStrParsing(const void *data)
return -1;
if (flags != info->flags) {
- fprintf(stderr, "Computed flags do not match: got 0x%x, expected
0x%x\n",
+ fprintf(stderr, "Computed flags do not match: got 0x%llx, expected
0x%llx\n",
flags, info->flags);
if (getenv("VIR_TEST_DEBUG"))
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 67dc47e..f4908b8 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -24,7 +24,7 @@ static struct qemud_driver driver;
static int testCompareXMLToArgvFiles(const char *xml,
const char *cmd,
- int extraFlags,
+ unsigned long long extraFlags,
const char *migrateFrom) {
char argvData[MAX_FILE];
char *expectargv = &(argvData[0]);
@@ -32,7 +32,8 @@ static int testCompareXMLToArgvFiles(const char *xml,
const char **argv = NULL;
const char **qenv = NULL;
const char **tmp = NULL;
- int ret = -1, len, flags;
+ int ret = -1, len;
+ unsigned long long flags;
virDomainDefPtr vmdef = NULL;
virDomainChrDef monitor_chr;
@@ -142,7 +143,7 @@ static int testCompareXMLToArgvFiles(const char *xml,
struct testInfo {
const char *name;
- int extraFlags;
+ unsigned long long extraFlags;
const char *migrateFrom;
};
--
1.6.6