[PATCH 01/14] src: Tweak source code to allow C++ compilation

Rayhan Faizel posted 14 patches 3 months ago
[PATCH 01/14] src: Tweak source code to allow C++ compilation
Posted by Rayhan Faizel 3 months ago
Since the fuzzers require C++ and will include various libvirt headers,
some minor fixups will be needed.

1. 'this' and 'namespace' are reserved C++ keywords so replace them.
2. There is an enum and struct sharing the same name virNetDevVPortProfile.
   This is not allowed under C++.
3. G_NO_INLINE works differently under C++. Some compile errors
   occur because of this. To work around this, we rearrange G_NO_INLINE to
   allow compilation while allowing libvirt to compile normally as before
   without fuzzing enabled.

Signed-off-by: Rayhan Faizel <rayhan.faizel@gmail.com>
---
 src/conf/domain_conf.c               | 18 +++++++++---------
 src/conf/domain_conf.h               |  4 ++--
 src/conf/netdev_vport_profile_conf.c |  2 +-
 src/qemu/qemu_monitor.c              |  6 +++---
 src/qemu/qemu_monitor.h              |  2 +-
 src/util/virfile.h                   |  2 +-
 src/util/virnetdev.h                 | 12 ++++++------
 src/util/virnetdevip.h               |  2 +-
 src/util/virnetdevmacvlan.h          |  2 +-
 src/util/virnetdevvportprofile.c     |  2 +-
 src/util/virnetdevvportprofile.h     |  2 +-
 src/util/virnvme.c                   |  4 ++--
 src/util/virnvme.h                   |  2 +-
 src/util/viruuid.h                   |  2 +-
 14 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d950921667..61418c4bc2 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -29863,15 +29863,15 @@ virDomainAudioBackendIsEqual(virDomainAudioDef *this,
 
 
 bool
-virDomainAudioIsEqual(virDomainAudioDef *this,
-                      virDomainAudioDef *that)
-{
-    return this->type == that->type &&
-        this->id == that->id &&
-        this->timerPeriod == that->timerPeriod &&
-        virDomainAudioIOCommonIsEqual(&this->input, &that->input) &&
-        virDomainAudioIOCommonIsEqual(&this->output, &that->output) &&
-        virDomainAudioBackendIsEqual(this, that);
+virDomainAudioIsEqual(virDomainAudioDef *first,
+                      virDomainAudioDef *second)
+{
+    return first->type == second->type &&
+        first->id == second->id &&
+        first->timerPeriod == second->timerPeriod &&
+        virDomainAudioIOCommonIsEqual(&first->input, &second->input) &&
+        virDomainAudioIOCommonIsEqual(&first->output, &second->output) &&
+        virDomainAudioBackendIsEqual(first, second);
 }
 
 
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index eae621f900..3e97dd6293 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -4346,8 +4346,8 @@ virDomainSoundModelSupportsCodecs(virDomainSoundDef *def);
 bool
 virDomainAudioIOCommonIsSet(virDomainAudioIOCommon *common);
 bool
-virDomainAudioIsEqual(virDomainAudioDef *this,
-                      virDomainAudioDef *that);
+virDomainAudioIsEqual(virDomainAudioDef *first,
+                      virDomainAudioDef *second);
 
 const char *virDomainChrSourceDefGetPath(virDomainChrSourceDef *chr);
 
diff --git a/src/conf/netdev_vport_profile_conf.c b/src/conf/netdev_vport_profile_conf.c
index 032a3147d7..f815ac6bf5 100644
--- a/src/conf/netdev_vport_profile_conf.c
+++ b/src/conf/netdev_vport_profile_conf.c
@@ -181,7 +181,7 @@ void
 virNetDevVPortProfileFormat(const virNetDevVPortProfile *virtPort,
                             virBuffer *buf)
 {
-    enum virNetDevVPortProfile type;
+    virNetDevVPortProfileType type;
     bool noParameters;
 
     if (!virtPort)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 7f65c23748..0a6acc5470 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -3464,16 +3464,16 @@ qemuMonitorNBDServerStart(qemuMonitor *mon,
 int
 qemuMonitorNBDServerAdd(qemuMonitor *mon,
                         const char *deviceID,
-                        const char *export,
+                        const char *nbd_export,
                         bool writable,
                         const char *bitmap)
 {
-    VIR_DEBUG("deviceID=%s, export=%s, bitmap=%s", deviceID, NULLSTR(export),
+    VIR_DEBUG("deviceID=%s, export=%s, bitmap=%s", deviceID, NULLSTR(nbd_export),
               NULLSTR(bitmap));
 
     QEMU_CHECK_MONITOR(mon);
 
-    return qemuMonitorJSONNBDServerAdd(mon, deviceID, export, writable,
+    return qemuMonitorJSONNBDServerAdd(mon, deviceID, nbd_export, writable,
                                        bitmap);
 }
 
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index 57d1b45bf5..0baf237f92 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1197,7 +1197,7 @@ int qemuMonitorNBDServerStart(qemuMonitor *mon,
     ATTRIBUTE_NONNULL(2);
 int qemuMonitorNBDServerAdd(qemuMonitor *mon,
                             const char *deviceID,
-                            const char *export,
+                            const char *nbd_export,
                             bool writable,
                             const char *bitmap);
 int qemuMonitorNBDServerStop(qemuMonitor *mon);
diff --git a/src/util/virfile.h b/src/util/virfile.h
index 7df3fcb840..871aa06f14 100644
--- a/src/util/virfile.h
+++ b/src/util/virfile.h
@@ -215,7 +215,7 @@ void virFileActivateDirOverrideForLib(void);
 
 off_t virFileLength(const char *path, int fd) ATTRIBUTE_NONNULL(1);
 bool virFileIsDir (const char *file) ATTRIBUTE_NONNULL(1);
-bool virFileExists(const char *file) ATTRIBUTE_NONNULL(1) G_NO_INLINE;
+bool virFileExists(const char *file) G_NO_INLINE ATTRIBUTE_NONNULL(1);
 bool virFileIsExecutable(const char *file) ATTRIBUTE_NONNULL(1);
 bool virFileIsRegular(const char *file) ATTRIBUTE_NONNULL(1);
 
diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h
index c287a7b272..db22519a15 100644
--- a/src/util/virnetdev.h
+++ b/src/util/virnetdev.h
@@ -168,11 +168,11 @@ int virNetDevSetupControl(const char *ifname,
     G_GNUC_WARN_UNUSED_RESULT;
 
 int virNetDevExists(const char *brname)
-    ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_NO_INLINE;
+    G_NO_INLINE ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
 
 int virNetDevSetOnline(const char *ifname,
                        bool online)
-    ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_NO_INLINE;
+    G_NO_INLINE ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
 int virNetDevGetOnline(const char *ifname,
                       bool *online)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;
@@ -180,7 +180,7 @@ int virNetDevGetOnline(const char *ifname,
 
 int virNetDevSetMAC(const char *ifname,
                     const virMacAddr *macaddr)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT G_NO_INLINE;
+    G_NO_INLINE ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;
 int virNetDevGetMAC(const char *ifname,
                     virMacAddr *macaddr)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;
@@ -202,7 +202,7 @@ int virNetDevSetCoalesce(const char *ifname,
 
 int virNetDevSetMTU(const char *ifname,
                     int mtu)
-    ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_NO_INLINE;
+    G_NO_INLINE ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
 int virNetDevSetMTUFromDevice(const char *ifname,
                               const char *otherifname)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;
@@ -323,8 +323,8 @@ int virNetDevGetRcvAllMulti(const char *ifname, bool *receive)
 int virNetDevSysfsFile(char **pf_sysfs_device_link,
                        const char *ifname,
                        const char *file)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
-    G_GNUC_WARN_UNUSED_RESULT G_NO_INLINE;
+    G_NO_INLINE ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
+    G_GNUC_WARN_UNUSED_RESULT;
 
 int virNetDevRunEthernetScript(const char *ifname, const char *script)
     G_NO_INLINE;
diff --git a/src/util/virnetdevip.h b/src/util/virnetdevip.h
index fdf116f509..2b45d360ae 100644
--- a/src/util/virnetdevip.h
+++ b/src/util/virnetdevip.h
@@ -59,7 +59,7 @@ int virNetDevIPAddrAdd(const char *ifname,
                        virSocketAddr *addr,
                        virSocketAddr *peer,
                        unsigned int prefix)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT G_NO_INLINE;
+    G_NO_INLINE ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;
 int virNetDevIPRouteAdd(const char *ifname,
                         virSocketAddr *addr,
                         unsigned int prefix,
diff --git a/src/util/virnetdevmacvlan.h b/src/util/virnetdevmacvlan.h
index a5c34d6417..5846018df1 100644
--- a/src/util/virnetdevmacvlan.h
+++ b/src/util/virnetdevmacvlan.h
@@ -47,7 +47,7 @@ typedef enum {
 } virNetDevMacVLanCreateFlags;
 
 bool virNetDevMacVLanIsMacvtap(const char *ifname)
-   ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_NO_INLINE;
+   G_NO_INLINE ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
 
 int virNetDevMacVLanCreate(const char *ifname,
                            const virMacAddr *macaddress,
diff --git a/src/util/virnetdevvportprofile.c b/src/util/virnetdevvportprofile.c
index c755fa79ec..221e0888b3 100644
--- a/src/util/virnetdevvportprofile.c
+++ b/src/util/virnetdevvportprofile.c
@@ -279,7 +279,7 @@ static int
 virNetDevVPortProfileMerge(virNetDevVPortProfile *orig,
                            const virNetDevVPortProfile *mods)
 {
-    enum virNetDevVPortProfile otype;
+    virNetDevVPortProfileType otype;
 
     if (!orig || !mods)
         return 0;
diff --git a/src/util/virnetdevvportprofile.h b/src/util/virnetdevvportprofile.h
index 600b2093c5..1714116e9c 100644
--- a/src/util/virnetdevvportprofile.h
+++ b/src/util/virnetdevvportprofile.h
@@ -25,7 +25,7 @@
 
 #define LIBVIRT_IFLA_VF_PORT_PROFILE_MAX 40
 
-typedef enum virNetDevVPortProfile {
+typedef enum _virNetDevVPortProfileType {
     VIR_NETDEV_VPORT_PROFILE_NONE,
     VIR_NETDEV_VPORT_PROFILE_8021QBG,
     VIR_NETDEV_VPORT_PROFILE_8021QBH,
diff --git a/src/util/virnvme.c b/src/util/virnvme.c
index 37333d515b..e996ae2c5b 100644
--- a/src/util/virnvme.c
+++ b/src/util/virnvme.c
@@ -63,7 +63,7 @@ VIR_ONCE_GLOBAL_INIT(virNVMe);
 
 virNVMeDevice *
 virNVMeDeviceNew(const virPCIDeviceAddress *address,
-                 unsigned long namespace,
+                 unsigned long nvme_namespace,
                  bool managed)
 {
     virNVMeDevice *dev = NULL;
@@ -71,7 +71,7 @@ virNVMeDeviceNew(const virPCIDeviceAddress *address,
     dev = g_new0(virNVMeDevice, 1);
 
     virPCIDeviceAddressCopy(&dev->address, address);
-    dev->namespace = namespace;
+    dev->namespace = nvme_namespace;
     dev->managed = managed;
 
     return dev;
diff --git a/src/util/virnvme.h b/src/util/virnvme.h
index ceef402c4b..f1d0bb5da0 100644
--- a/src/util/virnvme.h
+++ b/src/util/virnvme.h
@@ -33,7 +33,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(virNVMeDeviceList, virObjectUnref);
 
 virNVMeDevice *
 virNVMeDeviceNew(const virPCIDeviceAddress *address,
-                 unsigned long namespace,
+                 unsigned long nvme_namespace,
                  bool managed);
 
 void
diff --git a/src/util/viruuid.h b/src/util/viruuid.h
index 9667bd3200..9d0b6d1b00 100644
--- a/src/util/viruuid.h
+++ b/src/util/viruuid.h
@@ -41,7 +41,7 @@
 
 
 int virSetHostUUIDStr(const char *host_uuid);
-int virGetHostUUID(unsigned char *host_uuid) ATTRIBUTE_NONNULL(1) G_NO_INLINE;
+int virGetHostUUID(unsigned char *host_uuid) G_NO_INLINE ATTRIBUTE_NONNULL(1);
 
 bool virUUIDIsValid(const unsigned char *uuid);
 
-- 
2.34.1