[libvirt] [PATCH 0/8] Use even morer of GLib's macros (glib chronicles)

Ján Tomko (8): syntax-check: mock-noinline: fix after G_GNUC attribute invocations syntax-check: prohibit_attribute_macros: generalize error Use G_GNUC_NO_INLINE instead of ATTRIBUTE_NOINLINE Use G_GNUC_PRINTF instead of ATTRIBUTE_FMT_PRINTF Document the ATTRIBUTE_FALLTHROUGH macro Use G_GNUC_FALLTHROUGH instead of ATTRIBUTE_FALLTHROUGH examples: Use G_N_ELEMENTS instead of ARRAY_CARDINALITY Use G_N_ELEMENTS instead of ARRAY_CARDINALITY build-aux/mock-noinline.pl | 4 +- build-aux/syntax-check.mk | 10 ++- examples/c/misc/event-test.c | 26 +++---- src/access/viraccessmanager.c | 2 +- src/conf/domain_capabilities.h | 2 +- src/conf/domain_conf.c | 10 +-- src/conf/network_conf.c | 2 +- src/conf/nwfilter_conf.c | 14 ++-- src/conf/storage_conf.c | 2 +- src/conf/virdomainsnapshotobjlist.c | 2 +- src/cpu/cpu.c | 4 +- src/cpu/cpu_arm.c | 2 +- src/cpu/cpu_ppc64.c | 6 +- src/cpu/cpu_s390.c | 2 +- src/cpu/cpu_x86.c | 8 +- src/esx/esx_vi.c | 4 +- src/internal.h | 41 ++++------ src/libvirt-domain.c | 8 +- src/libvirt-host.c | 2 +- src/libxl/libxl_capabilities.c | 8 +- src/libxl/libxl_conf.c | 2 +- src/libxl/libxl_driver.c | 2 +- src/libxl/libxl_logger.c | 2 +- src/libxl/libxl_migration.c | 4 +- src/libxl/xen_xl.c | 2 +- src/locking/domain_lock.c | 4 +- src/locking/lock_daemon.c | 4 +- src/locking/sanlock_helper.c | 2 +- src/logging/log_daemon.c | 4 +- src/lxc/lxc_container.c | 8 +- src/lxc/lxc_controller.c | 2 +- src/lxc/lxc_monitor.c | 2 +- src/network/bridge_driver.c | 8 +- src/network/leaseshelper.c | 4 +- src/node_device/node_device_hal.c | 4 +- src/node_device/node_device_udev.c | 2 +- src/nwfilter/nwfilter_dhcpsnoop.c | 10 +-- src/nwfilter/nwfilter_learnipaddr.c | 2 +- src/phyp/phyp_driver.c | 2 +- src/qemu/qemu_agent.c | 2 +- src/qemu/qemu_capabilities.c | 112 ++++++++++++++-------------- src/qemu/qemu_capspriv.h | 2 +- src/qemu/qemu_command.c | 6 +- src/qemu/qemu_conf.c | 2 +- src/qemu/qemu_domain.c | 8 +- src/qemu/qemu_domain.h | 4 +- src/qemu/qemu_driver.c | 4 +- src/qemu/qemu_hotplug.c | 4 +- src/qemu/qemu_migration.c | 8 +- src/qemu/qemu_migration_params.c | 12 +-- src/qemu/qemu_monitor_json.c | 2 +- src/qemu/qemu_process.c | 2 +- src/qemu/qemu_qapi.c | 2 +- src/remote/remote_daemon.c | 4 +- src/remote/remote_daemon_dispatch.c | 14 ++-- src/remote/remote_driver.c | 8 +- src/rpc/gendispatch.pl | 2 +- src/rpc/virnetclient.c | 8 +- src/rpc/virnetsocket.h | 4 +- src/security/security_dac.c | 2 +- src/security/security_driver.c | 2 +- src/security/security_selinux.c | 2 +- src/security/virt-aa-helper.c | 6 +- src/test/test_driver.c | 2 +- src/util/virarch.c | 2 +- src/util/viraudit.c | 2 +- src/util/viraudit.h | 2 +- src/util/virbuffer.h | 4 +- src/util/vircgroupv1.c | 6 +- src/util/vircgroupv2.c | 4 +- src/util/vircommand.h | 6 +- src/util/virconf.c | 2 +- src/util/vircrypto.c | 2 +- src/util/virdbus.c | 2 +- src/util/virenum.h | 6 +- src/util/virerror.h | 8 +- src/util/virfile.h | 28 +++---- src/util/virfirewall.c | 2 +- src/util/virfirewall.h | 2 +- src/util/virhashcode.c | 6 +- src/util/virhashcode.h | 2 +- src/util/virhostcpu.c | 2 +- src/util/virhostcpu.h | 4 +- src/util/virhostuptime.h | 2 +- src/util/viriptables.c | 8 +- src/util/viriscsi.c | 2 +- src/util/virkeycode.c | 26 +++---- src/util/virlog.c | 6 +- src/util/virlog.h | 4 +- src/util/virmacaddr.h | 2 +- src/util/virnetdev.c | 4 +- src/util/virnetdev.h | 10 +-- src/util/virnetdevip.h | 2 +- src/util/virnetdevmacvlan.h | 2 +- src/util/virnetdevopenvswitch.h | 2 +- src/util/virnetdevtap.h | 6 +- src/util/virnetlink.c | 2 +- src/util/virnuma.h | 16 ++-- src/util/virperf.c | 2 +- src/util/virprocess.c | 2 +- src/util/virprocess.h | 4 +- src/util/virrandom.h | 6 +- src/util/virscsi.h | 2 +- src/util/virscsivhost.h | 2 +- src/util/virstoragefile.c | 6 +- src/util/virstring.h | 4 +- src/util/virtpm.c | 4 +- src/util/virtpm.h | 2 +- src/util/virtypedparam.c | 2 +- src/util/virtypedparam.h | 14 ++-- src/util/virutil.c | 14 ++-- src/util/virutil.h | 12 +-- src/util/viruuid.h | 2 +- src/vbox/vbox_XPCOMCGlue.c | 2 +- src/vmware/vmware_driver.c | 2 +- src/vz/vz_driver.c | 8 +- tests/commandhelper.c | 2 +- tests/esxutilstest.c | 8 +- tests/eventtest.c | 2 +- tests/nwfilterxml2firewalltest.c | 2 +- tests/openvzutilstest.c | 2 +- tests/qemufirmwaretest.c | 4 +- tests/qemumonitorjsontest.c | 4 +- tests/qemumonitortestutils.c | 2 +- tests/qemuvhostusertest.c | 2 +- tests/qemuxml2argvmock.c | 2 +- tests/qemuxml2argvtest.c | 18 ++--- tests/testutils.c | 2 +- tests/testutilshostcpus.h | 8 +- tests/testutilsqemu.c | 40 +++++----- tests/testutilsxen.c | 6 +- tests/utiltest.c | 10 +-- tests/virbitmaptest.c | 8 +- tests/vircgrouptest.c | 14 ++-- tests/virfiletest.c | 2 +- tests/virfirewalltest.c | 2 +- tests/virhashtest.c | 32 ++++---- tests/virhostcputest.c | 2 +- tests/viriscsitest.c | 2 +- tests/virnetmessagetest.c | 6 +- tests/virnettlscontexttest.c | 2 +- tests/virnettlssessiontest.c | 2 +- tests/virnumamock.c | 2 +- tests/virpcitest.c | 6 +- tests/virpolkittest.c | 2 +- tests/virrotatingfiletest.c | 10 +-- tests/virstoragetest.c | 8 +- tests/virstringtest.c | 8 +- tests/virsystemdtest.c | 4 +- tests/virtypedparamtest.c | 8 +- tools/virsh-domain.c | 6 +- tools/virsh-edit.c | 2 +- tools/virsh-network.c | 2 +- tools/virsh-nodedev.c | 2 +- tools/virsh-pool.c | 2 +- tools/virsh-secret.c | 2 +- tools/virsh.c | 2 +- tools/virt-admin.c | 2 +- tools/virt-host-validate-common.c | 4 +- tools/virt-host-validate-common.h | 4 +- tools/vsh.h | 10 +-- 161 files changed, 498 insertions(+), 503 deletions(-) -- 2.19.2

We started using G_GNUC macros instead of ATTRIBUTE for some attributes. Adjust this syntax-check accordingly. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- build-aux/mock-noinline.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-aux/mock-noinline.pl b/build-aux/mock-noinline.pl index 958e133885..db5420825f 100644 --- a/build-aux/mock-noinline.pl +++ b/build-aux/mock-noinline.pl @@ -40,7 +40,7 @@ sub scan_annotations { while (<FH>) { if (/^\s*(\w+)\(/ || /^(?:\w+\*?\s+)+(?:\*\s*)?(\w+)\(/) { my $name = $1; - if ($name !~ /ATTRIBUTE/) { + if ($name !~ /(?:G_GNUC|ATTRIBUTE)/) { $func = $name; } } elsif (/^\s*$/) { -- 2.19.2

Instead of enumerating every single macro variant, just emit a more generic error. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- build-aux/syntax-check.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk index c30d575e77..c0612a3319 100644 --- a/build-aux/syntax-check.mk +++ b/build-aux/syntax-check.mk @@ -631,7 +631,7 @@ sc_avoid_g_gnuc_unused_in_header: sc_prohibit_attribute_macros: @prohibit='ATTRIBUTE_(UNUSED|NORETURN|SENTINEL|RETURN_CHECK)' \ in_vc_files='\.[ch]$$' \ - halt='use GLib macros: G_GNUC_{UNUSED,NORETURN,NULL_TERMINATED,WARN_UNUSED_RESULT}' \ + halt='use GLib macros: G_GNUC_<ATTRIBUTE_SUFFIX> for most' \ $(_sc_search_regexp) sc_prohibit_int_index: -- 2.19.2

Define the macro for older GLib versions. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- build-aux/mock-noinline.pl | 2 +- build-aux/syntax-check.mk | 2 +- src/internal.h | 8 +++++--- src/qemu/qemu_capspriv.h | 2 +- src/rpc/virnetsocket.h | 4 ++-- src/util/vircommand.h | 2 +- src/util/virfile.h | 16 ++++++++-------- src/util/virhashcode.h | 2 +- src/util/virhostcpu.h | 4 ++-- src/util/virhostuptime.h | 2 +- src/util/virmacaddr.h | 2 +- src/util/virnetdev.h | 10 +++++----- src/util/virnetdevip.h | 2 +- src/util/virnetdevmacvlan.h | 2 +- src/util/virnetdevopenvswitch.h | 2 +- src/util/virnetdevtap.h | 6 +++--- src/util/virnuma.h | 16 ++++++++-------- src/util/virprocess.h | 4 ++-- src/util/virrandom.h | 6 +++--- src/util/virscsi.h | 2 +- src/util/virscsivhost.h | 2 +- src/util/virtpm.h | 2 +- src/util/virutil.h | 12 ++++++------ src/util/viruuid.h | 2 +- 24 files changed, 58 insertions(+), 56 deletions(-) diff --git a/build-aux/mock-noinline.pl b/build-aux/mock-noinline.pl index db5420825f..b005b8d95e 100644 --- a/build-aux/mock-noinline.pl +++ b/build-aux/mock-noinline.pl @@ -46,7 +46,7 @@ sub scan_annotations { } elsif (/^\s*$/) { $func = undef; } - if (/ATTRIBUTE_NOINLINE/) { + if (/G_GNUC_NO_INLINE/) { if (defined $func) { $noninlined{$func} = 1; } diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk index c0612a3319..c8ca6279a2 100644 --- a/build-aux/syntax-check.mk +++ b/build-aux/syntax-check.mk @@ -629,7 +629,7 @@ sc_avoid_g_gnuc_unused_in_header: $(_sc_search_regexp) sc_prohibit_attribute_macros: - @prohibit='ATTRIBUTE_(UNUSED|NORETURN|SENTINEL|RETURN_CHECK)' \ + @prohibit='ATTRIBUTE_(UNUSED|NORETURN|SENTINEL|RETURN_CHECK|NOINLINE)' \ in_vc_files='\.[ch]$$' \ halt='use GLib macros: G_GNUC_<ATTRIBUTE_SUFFIX> for most' \ $(_sc_search_regexp) diff --git a/src/internal.h b/src/internal.h index 7737d9a209..e2e27342d7 100644 --- a/src/internal.h +++ b/src/internal.h @@ -94,13 +94,15 @@ #define ARRAY_CARDINALITY(Array) (sizeof(Array) / sizeof(*(Array))) /** - * ATTRIBUTE_NOINLINE: + * G_GNUC_NO_INLINE: * * Force compiler not to inline a method. Should be used if * the method need to be overridable by test mocks. + * + * TODO: Remove after upgrading to GLib >= 2.58 */ -#ifndef ATTRIBUTE_NOINLINE -# define ATTRIBUTE_NOINLINE __attribute__((__noinline__)) +#ifndef G_GNUC_NO_INLINE +# define G_GNUC_NO_INLINE __attribute__((__noinline__)) #endif /** diff --git a/src/qemu/qemu_capspriv.h b/src/qemu/qemu_capspriv.h index 6b54e94fd3..e8fe48d8f0 100644 --- a/src/qemu/qemu_capspriv.h +++ b/src/qemu/qemu_capspriv.h @@ -83,7 +83,7 @@ virQEMUCapsGetCPUModelX86Data(virQEMUCapsPtr qemuCaps, virCPUDefPtr virQEMUCapsProbeHostCPU(virArch hostArch, - virDomainCapsCPUModelsPtr models) ATTRIBUTE_NOINLINE; + virDomainCapsCPUModelsPtr models) G_GNUC_NO_INLINE; void virQEMUCapsSetGICCapabilities(virQEMUCapsPtr qemuCaps, diff --git a/src/rpc/virnetsocket.h b/src/rpc/virnetsocket.h index 2f626cb08f..8d075464cb 100644 --- a/src/rpc/virnetsocket.h +++ b/src/rpc/virnetsocket.h @@ -136,10 +136,10 @@ int virNetSocketGetUNIXIdentity(virNetSocketPtr sock, gid_t *gid, pid_t *pid, unsigned long long *timestamp) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; int virNetSocketGetSELinuxContext(virNetSocketPtr sock, char **context) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; int virNetSocketSetBlocking(virNetSocketPtr sock, bool blocking); diff --git a/src/util/vircommand.h b/src/util/vircommand.h index 6bc1ef87b0..10961a328f 100644 --- a/src/util/vircommand.h +++ b/src/util/vircommand.h @@ -58,7 +58,7 @@ typedef enum { void virCommandPassFD(virCommandPtr cmd, int fd, - unsigned int flags) ATTRIBUTE_NOINLINE; + unsigned int flags) G_GNUC_NO_INLINE; int virCommandPassFDGetFDIndex(virCommandPtr cmd, int fd); diff --git a/src/util/virfile.h b/src/util/virfile.h index a66e3569a3..555e6ebee7 100644 --- a/src/util/virfile.h +++ b/src/util/virfile.h @@ -114,9 +114,9 @@ int virFileWrapperFdClose(virFileWrapperFdPtr dfd); void virFileWrapperFdFree(virFileWrapperFdPtr dfd); int virFileLock(int fd, bool shared, off_t start, off_t len, bool waitForLock) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; int virFileUnlock(int fd, off_t start, off_t len) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; int virFileFlock(int fd, bool lock, bool shared); @@ -199,7 +199,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) ATTRIBUTE_NOINLINE; +bool virFileExists(const char *file) ATTRIBUTE_NONNULL(1) G_GNUC_NO_INLINE; bool virFileIsExecutable(const char *file) ATTRIBUTE_NONNULL(1); bool virFileIsRegular(const char *file) ATTRIBUTE_NONNULL(1); @@ -231,7 +231,7 @@ int virFileGetMountReverseSubtree(const char *mtabpath, size_t *nmountsret) G_GNUC_WARN_UNUSED_RESULT; char *virFileSanitizePath(const char *path); -char *virFileCanonicalizePath(const char *path) ATTRIBUTE_NOINLINE; +char *virFileCanonicalizePath(const char *path) G_GNUC_NO_INLINE; enum { VIR_FILE_OPEN_NONE = 0, @@ -383,18 +383,18 @@ VIR_DEFINE_AUTOPTR_FUNC(virFileWrapperFd, virFileWrapperFdFree); int virFileGetXAttr(const char *path, const char *name, char **value) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; int virFileGetXAttrQuiet(const char *path, const char *name, char **value) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; int virFileSetXAttr(const char *path, const char *name, const char *value) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; int virFileRemoveXAttr(const char *path, const char *name) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; diff --git a/src/util/virhashcode.h b/src/util/virhashcode.h index af877c93cc..e23b0c3615 100644 --- a/src/util/virhashcode.h +++ b/src/util/virhashcode.h @@ -30,4 +30,4 @@ #include "internal.h" uint32_t virHashCodeGen(const void *key, size_t len, uint32_t seed) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; diff --git a/src/util/virhostcpu.h b/src/util/virhostcpu.h index 2ba79b97a5..d95d380d4a 100644 --- a/src/util/virhostcpu.h +++ b/src/util/virhostcpu.h @@ -44,7 +44,7 @@ bool virHostCPUHasBitmap(void); virBitmapPtr virHostCPUGetPresentBitmap(void); virBitmapPtr virHostCPUGetOnlineBitmap(void); int virHostCPUGetCount(void); -int virHostCPUGetThreadsPerSubcore(virArch arch) ATTRIBUTE_NOINLINE; +int virHostCPUGetThreadsPerSubcore(virArch arch) G_GNUC_NO_INLINE; int virHostCPUGetMap(unsigned char **cpumap, unsigned int *online, @@ -57,7 +57,7 @@ int virHostCPUGetInfo(virArch hostarch, unsigned int *cores, unsigned int *threads); -int virHostCPUGetKVMMaxVCPUs(void) ATTRIBUTE_NOINLINE; +int virHostCPUGetKVMMaxVCPUs(void) G_GNUC_NO_INLINE; int virHostCPUStatsAssign(virNodeCPUStatsPtr param, const char *name, diff --git a/src/util/virhostuptime.h b/src/util/virhostuptime.h index 03c1517a64..7e2c4c0c81 100644 --- a/src/util/virhostuptime.h +++ b/src/util/virhostuptime.h @@ -24,4 +24,4 @@ int virHostGetBootTime(unsigned long long *when) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; diff --git a/src/util/virmacaddr.h b/src/util/virmacaddr.h index cf26a8bbfa..843893d759 100644 --- a/src/util/virmacaddr.h +++ b/src/util/virmacaddr.h @@ -52,7 +52,7 @@ void virMacAddrGetRaw(const virMacAddr *src, unsigned char dst[VIR_MAC_BUFLEN]); const char *virMacAddrFormat(const virMacAddr *addr, char *str); void virMacAddrGenerate(const unsigned char prefix[VIR_MAC_PREFIX_BUFLEN], - virMacAddrPtr addr) ATTRIBUTE_NOINLINE; + virMacAddrPtr addr) G_GNUC_NO_INLINE; int virMacAddrParse(const char* str, virMacAddrPtr addr) G_GNUC_WARN_UNUSED_RESULT; int virMacAddrParseHex(const char* str, diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h index ff8df31a37..854fddfe77 100644 --- a/src/util/virnetdev.h +++ b/src/util/virnetdev.h @@ -150,11 +150,11 @@ int virNetDevSetupControl(const char *ifname, G_GNUC_WARN_UNUSED_RESULT; int virNetDevExists(const char *brname) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; int virNetDevSetOnline(const char *ifname, bool online) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; int virNetDevGetOnline(const char *ifname, bool *online) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; @@ -162,7 +162,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 ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; int virNetDevGetMAC(const char *ifname, virMacAddrPtr macaddr) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; @@ -306,9 +306,9 @@ 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 ATTRIBUTE_NOINLINE; + G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; int virNetDevRunEthernetScript(const char *ifname, const char *script) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; VIR_DEFINE_AUTOPTR_FUNC(virNetDevRxFilter, virNetDevRxFilterFree); diff --git a/src/util/virnetdevip.h b/src/util/virnetdevip.h index 43271f827b..7af94a49d7 100644 --- a/src/util/virnetdevip.h +++ b/src/util/virnetdevip.h @@ -63,7 +63,7 @@ int virNetDevIPAddrAdd(const char *ifname, virSocketAddr *addr, virSocketAddr *peer, unsigned int prefix) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; int virNetDevIPRouteAdd(const char *ifname, virSocketAddrPtr addr, unsigned int prefix, diff --git a/src/util/virnetdevmacvlan.h b/src/util/virnetdevmacvlan.h index 4c153dfb5c..30038a45b5 100644 --- a/src/util/virnetdevmacvlan.h +++ b/src/util/virnetdevmacvlan.h @@ -58,7 +58,7 @@ int virNetDevMacVLanReserveName(const char *name, bool quietfail); int virNetDevMacVLanReleaseName(const char *name); bool virNetDevMacVLanIsMacvtap(const char *ifname) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; int virNetDevMacVLanCreate(const char *ifname, const char *type, diff --git a/src/util/virnetdevopenvswitch.h b/src/util/virnetdevopenvswitch.h index b70ee7a559..2e15384b5f 100644 --- a/src/util/virnetdevopenvswitch.h +++ b/src/util/virnetdevopenvswitch.h @@ -62,7 +62,7 @@ int virNetDevOpenvswitchInterfaceGetMaster(const char *ifname, char **master) int virNetDevOpenvswitchGetVhostuserIfname(const char *path, char **ifname) - ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; int virNetDevOpenvswitchUpdateVlan(const char *ifname, virNetDevVlanPtr virtVlan) diff --git a/src/util/virnetdevtap.h b/src/util/virnetdevtap.h index 36c2be777e..cbc799bdbe 100644 --- a/src/util/virnetdevtap.h +++ b/src/util/virnetdevtap.h @@ -34,7 +34,7 @@ int virNetDevTapCreate(char **ifname, int *tapfd, size_t tapfdSize, unsigned int flags) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; int virNetDevTapDelete(const char *ifname, const char *tunpath) @@ -44,7 +44,7 @@ int virNetDevTapGetName(int tapfd, char **ifname) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; char* virNetDevTapGetRealDeviceName(char *ifname) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; typedef enum { VIR_NETDEV_TAP_CREATE_NONE = 0, @@ -96,7 +96,7 @@ int virNetDevTapCreateInBridgePort(const char *brname, unsigned int *actualMTU, unsigned int flags) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) - G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NOINLINE; + G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; int virNetDevTapInterfaceStats(const char *ifname, virDomainInterfaceStatsPtr stats, diff --git a/src/util/virnuma.h b/src/util/virnuma.h index 3afccdf08f..5a6b36f7e9 100644 --- a/src/util/virnuma.h +++ b/src/util/virnuma.h @@ -33,20 +33,20 @@ int virNumaSetupMemoryPolicy(virDomainNumatuneMemMode mode, virBitmapPtr nodeset); virBitmapPtr virNumaGetHostMemoryNodeset(void); -bool virNumaNodesetIsAvailable(virBitmapPtr nodeset) ATTRIBUTE_NOINLINE; -bool virNumaIsAvailable(void) ATTRIBUTE_NOINLINE; -int virNumaGetMaxNode(void) ATTRIBUTE_NOINLINE; -bool virNumaNodeIsAvailable(int node) ATTRIBUTE_NOINLINE; +bool virNumaNodesetIsAvailable(virBitmapPtr nodeset) G_GNUC_NO_INLINE; +bool virNumaIsAvailable(void) G_GNUC_NO_INLINE; +int virNumaGetMaxNode(void) G_GNUC_NO_INLINE; +bool virNumaNodeIsAvailable(int node) G_GNUC_NO_INLINE; int virNumaGetDistances(int node, int **distances, - int *ndistances) ATTRIBUTE_NOINLINE; + int *ndistances) G_GNUC_NO_INLINE; int virNumaGetNodeMemory(int node, unsigned long long *memsize, - unsigned long long *memfree) ATTRIBUTE_NOINLINE; + unsigned long long *memfree) G_GNUC_NO_INLINE; unsigned int virNumaGetMaxCPUs(void); -int virNumaGetNodeCPUs(int node, virBitmapPtr *cpus) ATTRIBUTE_NOINLINE; +int virNumaGetNodeCPUs(int node, virBitmapPtr *cpus) G_GNUC_NO_INLINE; int virNumaNodesetToCPUset(virBitmapPtr nodeset, virBitmapPtr *cpuset); @@ -60,7 +60,7 @@ int virNumaGetPages(int node, unsigned long long **pages_avail, unsigned long long **pages_free, size_t *npages) - ATTRIBUTE_NONNULL(5) ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(5) G_GNUC_NO_INLINE; int virNumaSetPagePoolSize(int node, unsigned int page_size, unsigned long long page_count, diff --git a/src/util/virprocess.h b/src/util/virprocess.h index b2a3a0a7a6..04adae6b82 100644 --- a/src/util/virprocess.h +++ b/src/util/virprocess.h @@ -75,7 +75,7 @@ int virProcessGetNamespaces(pid_t pid, int virProcessSetNamespaces(size_t nfdlist, int *fdlist); -int virProcessSetMaxMemLock(pid_t pid, unsigned long long bytes) ATTRIBUTE_NOINLINE; +int virProcessSetMaxMemLock(pid_t pid, unsigned long long bytes) G_GNUC_NO_INLINE; int virProcessSetMaxProcesses(pid_t pid, unsigned int procs); int virProcessSetMaxFiles(pid_t pid, unsigned int files); int virProcessSetMaxCoreSize(pid_t pid, unsigned long long bytes); @@ -108,7 +108,7 @@ typedef int (*virProcessForkCallback)(pid_t ppid, int virProcessRunInFork(virProcessForkCallback cb, void *opaque) - ATTRIBUTE_NOINLINE; + G_GNUC_NO_INLINE; int virProcessSetupPrivateMountNS(void); diff --git a/src/util/virrandom.h b/src/util/virrandom.h index 60f9aaf530..297721f912 100644 --- a/src/util/virrandom.h +++ b/src/util/virrandom.h @@ -20,9 +20,9 @@ #include "internal.h" -uint64_t virRandomBits(int nbits) ATTRIBUTE_NOINLINE; +uint64_t virRandomBits(int nbits) G_GNUC_NO_INLINE; double virRandom(void); uint32_t virRandomInt(uint32_t max); int virRandomBytes(unsigned char *buf, size_t buflen) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NOINLINE; -int virRandomGenerateWWN(char **wwn, const char *virt_type) ATTRIBUTE_NOINLINE; + ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT G_GNUC_NO_INLINE; +int virRandomGenerateWWN(char **wwn, const char *virt_type) G_GNUC_NO_INLINE; diff --git a/src/util/virscsi.h b/src/util/virscsi.h index 8c2c84e07b..cfd6ac7356 100644 --- a/src/util/virscsi.h +++ b/src/util/virscsi.h @@ -37,7 +37,7 @@ char *virSCSIDeviceGetSgName(const char *sysfs_prefix, const char *adapter, unsigned int bus, unsigned int target, - unsigned long long unit) ATTRIBUTE_NOINLINE; + unsigned long long unit) G_GNUC_NO_INLINE; char *virSCSIDeviceGetDevName(const char *sysfs_prefix, const char *adapter, unsigned int bus, diff --git a/src/util/virscsivhost.h b/src/util/virscsivhost.h index 334eb81af6..52f5d2c33f 100644 --- a/src/util/virscsivhost.h +++ b/src/util/virscsivhost.h @@ -61,6 +61,6 @@ void virSCSIVHostDeviceGetUsedBy(virSCSIVHostDevicePtr dev, const char **drv_name, const char **dom_name); void virSCSIVHostDeviceFree(virSCSIVHostDevicePtr dev); -int virSCSIVHostOpenVhostSCSI(int *vhostfd) ATTRIBUTE_NOINLINE; +int virSCSIVHostOpenVhostSCSI(int *vhostfd) G_GNUC_NO_INLINE; VIR_DEFINE_AUTOPTR_FUNC(virSCSIVHostDevice, virSCSIVHostDeviceFree); diff --git a/src/util/virtpm.h b/src/util/virtpm.h index 50948aac9a..d021a083b4 100644 --- a/src/util/virtpm.h +++ b/src/util/virtpm.h @@ -20,7 +20,7 @@ #pragma once -char *virTPMCreateCancelPath(const char *devpath) ATTRIBUTE_NOINLINE; +char *virTPMCreateCancelPath(const char *devpath) G_GNUC_NO_INLINE; char *virTPMGetSwtpm(void); char *virTPMGetSwtpmSetup(void); diff --git a/src/util/virutil.h b/src/util/virutil.h index d265d698d0..1a6ae1787a 100644 --- a/src/util/virutil.h +++ b/src/util/virutil.h @@ -103,8 +103,8 @@ char *virGetUserConfigDirectory(void); char *virGetUserCacheDirectory(void); char *virGetUserRuntimeDirectory(void); char *virGetUserShell(uid_t uid); -char *virGetUserName(uid_t uid) ATTRIBUTE_NOINLINE; -char *virGetGroupName(gid_t gid) ATTRIBUTE_NOINLINE; +char *virGetUserName(uid_t uid) G_GNUC_NO_INLINE; +char *virGetGroupName(gid_t gid) G_GNUC_NO_INLINE; int virGetGroupList(uid_t uid, gid_t group, gid_t **groups) ATTRIBUTE_NONNULL(3); int virGetUserID(const char *name, @@ -138,16 +138,16 @@ int virParseOwnershipIds(const char *label, uid_t *uidPtr, gid_t *gidPtr); time_t virGetSelfLastChanged(void); void virUpdateSelfLastChanged(const char *path); -long virGetSystemPageSize(void) ATTRIBUTE_NOINLINE; -long virGetSystemPageSizeKB(void) ATTRIBUTE_NOINLINE; +long virGetSystemPageSize(void) G_GNUC_NO_INLINE; +long virGetSystemPageSizeKB(void) G_GNUC_NO_INLINE; unsigned long long virMemoryLimitTruncate(unsigned long long value); bool virMemoryLimitIsSet(unsigned long long value); -unsigned long long virMemoryMaxValue(bool ulong) ATTRIBUTE_NOINLINE; +unsigned long long virMemoryMaxValue(bool ulong) G_GNUC_NO_INLINE; bool virHostHasIOMMU(void); -char *virHostGetDRMRenderNode(void) ATTRIBUTE_NOINLINE; +char *virHostGetDRMRenderNode(void) G_GNUC_NO_INLINE; /** * VIR_ASSIGN_IS_OVERFLOW: diff --git a/src/util/viruuid.h b/src/util/viruuid.h index 54fbd88805..6ea01bb7c1 100644 --- a/src/util/viruuid.h +++ b/src/util/viruuid.h @@ -45,7 +45,7 @@ int virGetHostUUID(unsigned char *host_uuid) ATTRIBUTE_NONNULL(1); int virUUIDIsValid(unsigned char *uuid); -int virUUIDGenerate(unsigned char *uuid) ATTRIBUTE_NOINLINE; +int virUUIDGenerate(unsigned char *uuid) G_GNUC_NO_INLINE; int virUUIDParse(const char *uuidstr, unsigned char *uuid) -- 2.19.2

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- build-aux/syntax-check.mk | 2 +- src/internal.h | 20 -------------------- src/libxl/libxl_logger.c | 2 +- src/qemu/qemu_domain.h | 4 ++-- src/util/viraudit.h | 2 +- src/util/virbuffer.h | 4 ++-- src/util/vircommand.h | 4 ++-- src/util/virerror.h | 8 ++++---- src/util/virfile.h | 12 ++++++------ src/util/virfirewall.h | 2 +- src/util/virlog.h | 4 ++-- src/util/virstring.h | 4 ++-- src/util/virtypedparam.c | 2 +- src/util/virtypedparam.h | 14 +++++++------- tests/eventtest.c | 2 +- tests/qemumonitortestutils.c | 2 +- tools/virt-host-validate-common.h | 4 ++-- tools/vsh.h | 10 +++++----- 18 files changed, 41 insertions(+), 61 deletions(-) diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk index c8ca6279a2..cfcc339c95 100644 --- a/build-aux/syntax-check.mk +++ b/build-aux/syntax-check.mk @@ -629,7 +629,7 @@ sc_avoid_g_gnuc_unused_in_header: $(_sc_search_regexp) sc_prohibit_attribute_macros: - @prohibit='ATTRIBUTE_(UNUSED|NORETURN|SENTINEL|RETURN_CHECK|NOINLINE)' \ + @prohibit='ATTRIBUTE_(UNUSED|NORETURN|SENTINEL|RETURN_CHECK|NOINLINE|FMT_PRINTF)' \ in_vc_files='\.[ch]$$' \ halt='use GLib macros: G_GNUC_<ATTRIBUTE_SUFFIX> for most' \ $(_sc_search_regexp) diff --git a/src/internal.h b/src/internal.h index e2e27342d7..0825e63993 100644 --- a/src/internal.h +++ b/src/internal.h @@ -105,26 +105,6 @@ # define G_GNUC_NO_INLINE __attribute__((__noinline__)) #endif -/** - * ATTRIBUTE_FMT_PRINTF - * - * Macro used to check printf like functions, if compiling - * with gcc. - * - * We use gnulib which guarantees we always have GNU style - * printf format specifiers even on broken Win32 platforms - * hence we have to force 'gnu_printf' for new GCC - */ -#ifndef ATTRIBUTE_FMT_PRINTF -# ifndef __clang__ -# define ATTRIBUTE_FMT_PRINTF(fmtpos, argpos) \ - __attribute__((__format__ (__gnu_printf__, fmtpos, argpos))) -# else -# define ATTRIBUTE_FMT_PRINTF(fmtpos, argpos) \ - __attribute__((__format__ (__printf__, fmtpos, argpos))) -# endif -#endif - /** * ATTRIBUTE_PACKED * diff --git a/src/libxl/libxl_logger.c b/src/libxl/libxl_logger.c index b4a38ae865..87ad793fb5 100644 --- a/src/libxl/libxl_logger.c +++ b/src/libxl/libxl_logger.c @@ -54,7 +54,7 @@ libxlLoggerFileFree(void *payload, const void *key G_GNUC_UNUSED) file = NULL; } -ATTRIBUTE_FMT_PRINTF(5, 0) static void +G_GNUC_PRINTF(5, 0) static void libvirt_vmessage(xentoollog_logger *logger_in, xentoollog_level level, int errnoval, diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 9174631ad2..d703417862 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -739,7 +739,7 @@ qemuDomainLogContextPtr qemuDomainLogContextNew(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuDomainLogContextMode mode); int qemuDomainLogContextWrite(qemuDomainLogContextPtr ctxt, - const char *fmt, ...) ATTRIBUTE_FMT_PRINTF(2, 3); + const char *fmt, ...) G_GNUC_PRINTF(2, 3); ssize_t qemuDomainLogContextRead(qemuDomainLogContextPtr ctxt, char **msg); int qemuDomainLogContextGetWriteFD(qemuDomainLogContextPtr ctxt); @@ -750,7 +750,7 @@ virLogManagerPtr qemuDomainLogContextGetManager(qemuDomainLogContextPtr ctxt); int qemuDomainLogAppendMessage(virQEMUDriverPtr driver, virDomainObjPtr vm, const char *fmt, - ...) ATTRIBUTE_FMT_PRINTF(3, 4); + ...) G_GNUC_PRINTF(3, 4); const char *qemuFindQemuImgBinary(virQEMUDriverPtr driver); diff --git a/src/util/viraudit.h b/src/util/viraudit.h index 51e152ad1e..a36cc77ca6 100644 --- a/src/util/viraudit.h +++ b/src/util/viraudit.h @@ -39,7 +39,7 @@ void virAuditSend(virLogSourcePtr source, const char *clienttty, const char *clientaddr, virAuditRecordType type, bool success, const char *fmt, ...) - ATTRIBUTE_FMT_PRINTF(9, 10); + G_GNUC_PRINTF(9, 10); char *virAuditEncode(const char *key, const char *value); diff --git a/src/util/virbuffer.h b/src/util/virbuffer.h index 75e26c32ff..1c9748643e 100644 --- a/src/util/virbuffer.h +++ b/src/util/virbuffer.h @@ -73,9 +73,9 @@ void virBufferAdd(virBufferPtr buf, const char *str, int len); void virBufferAddBuffer(virBufferPtr buf, virBufferPtr toadd); void virBufferAddChar(virBufferPtr buf, char c); void virBufferAsprintf(virBufferPtr buf, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); void virBufferVasprintf(virBufferPtr buf, const char *format, va_list ap) - ATTRIBUTE_FMT_PRINTF(2, 0); + G_GNUC_PRINTF(2, 0); void virBufferStrcat(virBufferPtr buf, ...) G_GNUC_NULL_TERMINATED; void virBufferStrcatVArgs(virBufferPtr buf, va_list ap); diff --git a/src/util/vircommand.h b/src/util/vircommand.h index 10961a328f..ed04eb4bd3 100644 --- a/src/util/vircommand.h +++ b/src/util/vircommand.h @@ -98,7 +98,7 @@ void virCommandNonblockingFDs(virCommandPtr cmd); void virCommandRawStatus(virCommandPtr cmd); void virCommandAddEnvFormat(virCommandPtr cmd, const char *format, ...) - ATTRIBUTE_NONNULL(2) ATTRIBUTE_FMT_PRINTF(2, 3); + ATTRIBUTE_NONNULL(2) G_GNUC_PRINTF(2, 3); void virCommandAddEnvPair(virCommandPtr cmd, const char *name, @@ -125,7 +125,7 @@ void virCommandAddArgBuffer(virCommandPtr cmd, void virCommandAddArgFormat(virCommandPtr cmd, const char *format, ...) - ATTRIBUTE_NONNULL(2) ATTRIBUTE_FMT_PRINTF(2, 3); + ATTRIBUTE_NONNULL(2) G_GNUC_PRINTF(2, 3); void virCommandAddArgPair(virCommandPtr cmd, const char *name, diff --git a/src/util/virerror.h b/src/util/virerror.h index 201195d660..e3a08982b3 100644 --- a/src/util/virerror.h +++ b/src/util/virerror.h @@ -42,7 +42,7 @@ void virRaiseErrorFull(const char *filename, int int1, int int2, const char *fmt, ...) - ATTRIBUTE_FMT_PRINTF(12, 13); + G_GNUC_PRINTF(12, 13); void virRaiseErrorObject(const char *filename, const char *funcname, @@ -54,7 +54,7 @@ void virReportErrorHelper(int domcode, int errcode, const char *funcname, size_t linenr, const char *fmt, ...) - ATTRIBUTE_FMT_PRINTF(6, 7); + G_GNUC_PRINTF(6, 7); void virReportSystemErrorFull(int domcode, int theerrno, @@ -62,7 +62,7 @@ void virReportSystemErrorFull(int domcode, const char *funcname, size_t linenr, const char *fmt, ...) - ATTRIBUTE_FMT_PRINTF(6, 7); + G_GNUC_PRINTF(6, 7); #define virReportSystemError(theerrno, fmt,...) \ virReportSystemErrorFull(VIR_FROM_THIS, \ @@ -207,6 +207,6 @@ void virErrorPreserveLast(virErrorPtr *saveerr); void virErrorRestore(virErrorPtr *savederr); void virLastErrorPrefixMessage(const char *fmt, ...) - ATTRIBUTE_FMT_PRINTF(1, 2); + G_GNUC_PRINTF(1, 2); VIR_DEFINE_AUTOPTR_FUNC(virError, virFreeError); diff --git a/src/util/virfile.h b/src/util/virfile.h index 555e6ebee7..a60b2bef9a 100644 --- a/src/util/virfile.h +++ b/src/util/virfile.h @@ -320,7 +320,7 @@ char *virFileFindMountPoint(const char *type); int virBuildPathInternal(char **path, ...) G_GNUC_NULL_TERMINATED; int virFilePrintf(FILE *fp, const char *msg, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); typedef struct _virHugeTLBFS virHugeTLBFS; typedef virHugeTLBFS *virHugeTLBFSPtr; @@ -361,15 +361,15 @@ int virFileCopyACLs(const char *src, int virFileComparePaths(const char *p1, const char *p2); int virFileReadValueInt(int *value, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); int virFileReadValueUint(unsigned int *value, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); int virFileReadValueBitmap(virBitmapPtr *value, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); int virFileReadValueScaledInt(unsigned long long *value, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); int virFileReadValueString(char **value, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); int virFileWaitForExists(const char *path, size_t ms, size_t tries); diff --git a/src/util/virfirewall.h b/src/util/virfirewall.h index a2c0e9c26d..56e78a0672 100644 --- a/src/util/virfirewall.h +++ b/src/util/virfirewall.h @@ -78,7 +78,7 @@ void virFirewallRuleAddArg(virFirewallPtr firewall, void virFirewallRuleAddArgFormat(virFirewallPtr firewall, virFirewallRulePtr rule, const char *fmt, ...) - ATTRIBUTE_NONNULL(3) ATTRIBUTE_FMT_PRINTF(3, 4); + ATTRIBUTE_NONNULL(3) G_GNUC_PRINTF(3, 4); void virFirewallRuleAddArgSet(virFirewallPtr firewall, virFirewallRulePtr rule, diff --git a/src/util/virlog.h b/src/util/virlog.h index b4feb5b1b9..9d9461f339 100644 --- a/src/util/virlog.h +++ b/src/util/virlog.h @@ -206,7 +206,7 @@ void virLogMessage(virLogSourcePtr source, int linenr, const char *funcname, virLogMetadataPtr metadata, - const char *fmt, ...) ATTRIBUTE_FMT_PRINTF(7, 8); + const char *fmt, ...) G_GNUC_PRINTF(7, 8); void virLogVMessage(virLogSourcePtr source, virLogPriority priority, const char *filename, @@ -214,7 +214,7 @@ void virLogVMessage(virLogSourcePtr source, const char *funcname, virLogMetadataPtr metadata, const char *fmt, - va_list vargs) ATTRIBUTE_FMT_PRINTF(7, 0); + va_list vargs) G_GNUC_PRINTF(7, 0); bool virLogProbablyLogMessage(const char *str); virLogOutputPtr virLogOutputNew(virLogOutputFunc f, diff --git a/src/util/virstring.h b/src/util/virstring.h index a7ef9a36a7..f5e2302b8b 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -134,10 +134,10 @@ int virStrdup(char **dest, const char *src) int virStrndup(char **dest, const char *src, ssize_t n) G_GNUC_WARN_UNUSED_RESULT ATTRIBUTE_NONNULL(1); int virAsprintfInternal(char **strp, const char *fmt, ...) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_FMT_PRINTF(2, 3) + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_PRINTF(2, 3) G_GNUC_WARN_UNUSED_RESULT; int virVasprintfInternal(char **strp, const char *fmt, va_list list) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_FMT_PRINTF(2, 0) + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_PRINTF(2, 0) G_GNUC_WARN_UNUSED_RESULT; /** diff --git a/src/util/virtypedparam.c b/src/util/virtypedparam.c index 7b3fcd118e..a9dfa85be2 100644 --- a/src/util/virtypedparam.c +++ b/src/util/virtypedparam.c @@ -769,7 +769,7 @@ virTypedParamListStealParams(virTypedParamListPtr list, } -static int ATTRIBUTE_FMT_PRINTF(2, 0) +static int G_GNUC_PRINTF(2, 0) virTypedParamSetNameVPrintf(virTypedParameterPtr par, const char *fmt, va_list ap) diff --git a/src/util/virtypedparam.h b/src/util/virtypedparam.h index 0e39a19120..b35f1f93ef 100644 --- a/src/util/virtypedparam.h +++ b/src/util/virtypedparam.h @@ -149,34 +149,34 @@ int virTypedParamListAddInt(virTypedParamListPtr list, int value, const char *namefmt, ...) - ATTRIBUTE_FMT_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; + G_GNUC_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; int virTypedParamListAddUInt(virTypedParamListPtr list, unsigned int value, const char *namefmt, ...) - ATTRIBUTE_FMT_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; + G_GNUC_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; int virTypedParamListAddLLong(virTypedParamListPtr list, long long value, const char *namefmt, ...) - ATTRIBUTE_FMT_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; + G_GNUC_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; int virTypedParamListAddULLong(virTypedParamListPtr list, unsigned long long value, const char *namefmt, ...) - ATTRIBUTE_FMT_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; + G_GNUC_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; int virTypedParamListAddString(virTypedParamListPtr list, const char *value, const char *namefmt, ...) - ATTRIBUTE_FMT_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; + G_GNUC_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; int virTypedParamListAddBoolean(virTypedParamListPtr list, bool value, const char *namefmt, ...) - ATTRIBUTE_FMT_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; + G_GNUC_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; int virTypedParamListAddDouble(virTypedParamListPtr list, double value, const char *namefmt, ...) - ATTRIBUTE_FMT_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; + G_GNUC_PRINTF(3, 4) G_GNUC_WARN_UNUSED_RESULT; diff --git a/tests/eventtest.c b/tests/eventtest.c index d64854ecc6..363fc776fd 100644 --- a/tests/eventtest.c +++ b/tests/eventtest.c @@ -81,7 +81,7 @@ testEventResultCallback(const void *opaque) } static void -ATTRIBUTE_FMT_PRINTF(3, 4) +G_GNUC_PRINTF(3, 4) testEventReport(const char *name, bool failed, const char *msg, ...) { va_list vargs; diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c index 64e73dcf01..4dd7328028 100644 --- a/tests/qemumonitortestutils.c +++ b/tests/qemumonitortestutils.c @@ -183,7 +183,7 @@ qemuMonitorTestAddInvalidCommandResponse(qemuMonitorTestPtr test, } -int ATTRIBUTE_FMT_PRINTF(2, 3) +int G_GNUC_PRINTF(2, 3) qemuMonitorReportError(qemuMonitorTestPtr test, const char *errmsg, ...) { va_list msgargs; diff --git a/tools/virt-host-validate-common.h b/tools/virt-host-validate-common.h index c4e4fa2175..1b7e93e520 100644 --- a/tools/virt-host-validate-common.h +++ b/tools/virt-host-validate-common.h @@ -48,12 +48,12 @@ void virHostMsgSetQuiet(bool quietFlag); void virHostMsgCheck(const char *prefix, const char *format, - ...) ATTRIBUTE_FMT_PRINTF(2, 3); + ...) G_GNUC_PRINTF(2, 3); void virHostMsgPass(void); void virHostMsgFail(virHostValidateLevel level, const char *format, - ...) ATTRIBUTE_FMT_PRINTF(2, 3); + ...) G_GNUC_PRINTF(2, 3); int virHostValidateDeviceExists(const char *hvname, const char *dev_name, diff --git a/tools/vsh.h b/tools/vsh.h index 947904f6c0..99977af7e3 100644 --- a/tools/vsh.h +++ b/tools/vsh.h @@ -240,11 +240,11 @@ struct _vshCmdGrp { }; void vshError(vshControl *ctl, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); void vshOpenLogFile(vshControl *ctl); void vshOutputLogFile(vshControl *ctl, int log_level, const char *format, va_list ap) - ATTRIBUTE_FMT_PRINTF(3, 0); + G_GNUC_PRINTF(3, 0); void vshCloseLogFile(vshControl *ctl); const char *vshCmddefGetInfo(const vshCmdDef *cmd, const char *info); @@ -302,14 +302,14 @@ bool vshCommandArgvParse(vshControl *ctl, int nargs, char **argv); int vshCommandOptTimeoutToMs(vshControl *ctl, const vshCmd *cmd, int *timeout); void vshPrint(vshControl *ctl, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); void vshPrintExtra(vshControl *ctl, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(2, 3); + G_GNUC_PRINTF(2, 3); bool vshInit(vshControl *ctl, const vshCmdGrp *groups, const vshCmdDef *set); bool vshInitReload(vshControl *ctl); void vshDeinit(vshControl *ctl); void vshDebug(vshControl *ctl, int level, const char *format, ...) - ATTRIBUTE_FMT_PRINTF(3, 4); + G_GNUC_PRINTF(3, 4); /* User visible sort, so we want locale-specific case comparison. */ #define vshStrcasecmp(S1, S2) strcasecmp(S1, S2) -- 2.19.2

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/internal.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/internal.h b/src/internal.h index 0825e63993..1f70123e47 100644 --- a/src/internal.h +++ b/src/internal.h @@ -135,6 +135,13 @@ # endif #endif +/** + * + * ATTRIBUTE_FALLTHROUGH + * + * silence the compiler warning when falling through a switch case + * + */ #ifndef ATTRIBUTE_FALLTHROUGH # if __GNUC_PREREQ (7, 0) # define ATTRIBUTE_FALLTHROUGH __attribute__((fallthrough)) -- 2.19.2

Also define the macro for building with GLib older than 2.60 Signed-off-by: Ján Tomko <jtomko@redhat.com> --- build-aux/syntax-check.mk | 2 +- src/conf/domain_conf.c | 8 ++++---- src/conf/network_conf.c | 2 +- src/conf/nwfilter_conf.c | 14 +++++++------- src/cpu/cpu_ppc64.c | 2 +- src/internal.h | 9 +++++---- src/libvirt-domain.c | 2 +- src/libxl/libxl_conf.c | 2 +- src/lxc/lxc_container.c | 2 +- src/network/bridge_driver.c | 8 ++++---- src/network/leaseshelper.c | 4 ++-- src/qemu/qemu_command.c | 4 ++-- src/qemu/qemu_domain.c | 6 +++--- src/qemu/qemu_driver.c | 4 ++-- src/qemu/qemu_hotplug.c | 4 ++-- src/qemu/qemu_migration.c | 4 ++-- src/qemu/qemu_process.c | 2 +- src/remote/remote_driver.c | 2 +- src/util/virconf.c | 2 +- src/util/virhashcode.c | 6 +++--- src/util/viriscsi.c | 2 +- src/util/virutil.c | 10 +++++----- tools/virsh-domain.c | 4 ++-- tools/virsh-edit.c | 2 +- tools/virsh.c | 2 +- tools/virt-admin.c | 2 +- 26 files changed, 56 insertions(+), 55 deletions(-) diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk index cfcc339c95..63b9ce70f6 100644 --- a/build-aux/syntax-check.mk +++ b/build-aux/syntax-check.mk @@ -629,7 +629,7 @@ sc_avoid_g_gnuc_unused_in_header: $(_sc_search_regexp) sc_prohibit_attribute_macros: - @prohibit='ATTRIBUTE_(UNUSED|NORETURN|SENTINEL|RETURN_CHECK|NOINLINE|FMT_PRINTF)' \ + @prohibit='ATTRIBUTE_(UNUSED|NORETURN|SENTINEL|RETURN_CHECK|NOINLINE|FMT_PRINTF|FALLTHROUGH)' \ in_vc_files='\.[ch]$$' \ halt='use GLib macros: G_GNUC_<ATTRIBUTE_SUFFIX> for most' \ $(_sc_search_regexp) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 6bd2d4935d..c128d34ba2 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -17486,7 +17486,7 @@ virDomainChrEquals(virDomainChrDefPtr src, if (src->targetType != tgt->targetType) return false; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE: case VIR_DOMAIN_CHR_DEVICE_TYPE_PARALLEL: @@ -20290,7 +20290,7 @@ virDomainDefParseXML(xmlDocPtr xml, def->apic_eoi = eoi; VIR_FREE(tmp); } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_FEATURE_ACPI: case VIR_DOMAIN_FEATURE_PAE: case VIR_DOMAIN_FEATURE_VIRIDIAN: @@ -31205,7 +31205,7 @@ virDomainNetResolveActualType(virDomainNetDefPtr iface) /* intentionally fall through to the direct case for * VIR_NETWORK_FORWARD_BRIDGE with no bridge device defined */ - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_NETWORK_FORWARD_PRIVATE: case VIR_NETWORK_FORWARD_VEPA: @@ -31471,7 +31471,7 @@ virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def) case VIR_STORAGE_SOURCE_POOL_MODE_DEFAULT: case VIR_STORAGE_SOURCE_POOL_MODE_LAST: def->src->srcpool->mode = VIR_STORAGE_SOURCE_POOL_MODE_HOST; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_STORAGE_SOURCE_POOL_MODE_HOST: def->src->srcpool->actualtype = VIR_STORAGE_TYPE_BLOCK; if (!(def->src->path = virStorageVolGetPath(vol))) diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 58a0e32dd7..75ec5ccc27 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -1984,7 +1984,7 @@ virNetworkDefParseXML(xmlXPathContextPtr ctxt, def->name); goto error; } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_NETWORK_FORWARD_BRIDGE: if (def->delay || stp || def->bridgeZone) { diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 6b7a606b64..aba12cd698 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -1863,7 +1863,7 @@ virNWFilterRuleDetailsParse(xmlNodePtr node, switch (datatype) { case DATATYPE_UINT8_HEX: base = 16; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case DATATYPE_UINT8: if (virStrToLong_ui(prop, NULL, base, &uint_val) >= 0) { if (uint_val <= 0xff) { @@ -1880,7 +1880,7 @@ virNWFilterRuleDetailsParse(xmlNodePtr node, case DATATYPE_UINT16_HEX: base = 16; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case DATATYPE_UINT16: if (virStrToLong_ui(prop, NULL, base, &uint_val) >= 0) { if (uint_val <= 0xffff) { @@ -1897,7 +1897,7 @@ virNWFilterRuleDetailsParse(xmlNodePtr node, case DATATYPE_UINT32_HEX: base = 16; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case DATATYPE_UINT32: if (virStrToLong_ui(prop, NULL, base, &uint_val) >= 0) { item->u.u32 = uint_val; @@ -2131,7 +2131,7 @@ virNWFilterRuleValidate(virNWFilterRuleDefPtr rule) portData = &rule->p.ipHdrFilter.portData; protocol = "IP"; dataProtocolID = &rule->p.ipHdrFilter.ipHdr.dataProtocolID; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_NWFILTER_RULE_PROTOCOL_IPV6: if (portData == NULL) { portData = &rule->p.ipv6HdrFilter.portData; @@ -2926,7 +2926,7 @@ virNWFilterRuleDefDetailsFormat(virBufferPtr buf, case DATATYPE_UINT8_HEX: asHex = true; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case DATATYPE_IPMASK: case DATATYPE_IPV6MASK: /* display all masks in CIDR format */ @@ -2937,7 +2937,7 @@ virNWFilterRuleDefDetailsFormat(virBufferPtr buf, case DATATYPE_UINT16_HEX: asHex = true; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case DATATYPE_UINT16: virBufferAsprintf(buf, asHex ? "0x%x" : "%d", item->u.u16); @@ -2945,7 +2945,7 @@ virNWFilterRuleDefDetailsFormat(virBufferPtr buf, case DATATYPE_UINT32_HEX: asHex = true; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case DATATYPE_UINT32: virBufferAsprintf(buf, asHex ? "0x%x" : "%u", item->u.u32); diff --git a/src/cpu/cpu_ppc64.c b/src/cpu/cpu_ppc64.c index 5194c2adc1..b11695f24d 100644 --- a/src/cpu/cpu_ppc64.c +++ b/src/cpu/cpu_ppc64.c @@ -510,7 +510,7 @@ ppc64Compute(virCPUDefPtr host, ret = tmp; goto cleanup; } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_CPU_MODE_HOST_PASSTHROUGH: /* host-model and host-passthrough: diff --git a/src/internal.h b/src/internal.h index 1f70123e47..59c58a72e1 100644 --- a/src/internal.h +++ b/src/internal.h @@ -137,16 +137,17 @@ /** * - * ATTRIBUTE_FALLTHROUGH + * G_GNUC_FALLTHROUGH * * silence the compiler warning when falling through a switch case * + * TODO: Remove after upgrading to GLib >= 2.60 */ -#ifndef ATTRIBUTE_FALLTHROUGH +#ifndef G_GNUC_FALLTHROUGH # if __GNUC_PREREQ (7, 0) -# define ATTRIBUTE_FALLTHROUGH __attribute__((fallthrough)) +# define G_GNUC_FALLTHROUGH __attribute__((fallthrough)) # else -# define ATTRIBUTE_FALLTHROUGH do {} while(0) +# define G_GNUC_FALLTHROUGH do {} while(0) # endif #endif diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index 65c73be312..6b12ff5a03 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -8037,7 +8037,7 @@ virDomainSetMetadata(virDomainPtr domain, "newlines")); goto error; } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_METADATA_DESCRIPTION: virCheckNullArgGoto(uri, error); virCheckNullArgGoto(key, error); diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 443c6fb114..74246e7b3a 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -1346,7 +1346,7 @@ libxlMakeNic(virDomainDefPtr def, if (VIR_STRDUP(x_nic->bridge, virBufferCurrentContent(&buf)) < 0) goto cleanup; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_NET_TYPE_ETHERNET: if (VIR_STRDUP(x_nic->script, script) < 0) goto cleanup; diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 2a0b04117e..7fcbbb424a 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -2044,7 +2044,7 @@ static int lxcContainerDropCapabilities(virDomainDefPtr def, default: /* User specified capabilities to drop */ toDrop = (state == VIR_TRISTATE_SWITCH_OFF); } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_CAPABILITIES_POLICY_ALLOW: if (policy == VIR_DOMAIN_CAPABILITIES_POLICY_ALLOW) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 4beb28a5d9..fe47668d4d 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -2961,7 +2961,7 @@ networkStartNetwork(virNetworkDriverStatePtr driver, * VIR_NETWORK_FORWARD_BRIDGE with no bridge device defined * (since that is macvtap bridge mode). */ - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_NETWORK_FORWARD_PRIVATE: case VIR_NETWORK_FORWARD_VEPA: @@ -3048,7 +3048,7 @@ networkShutdownNetwork(virNetworkDriverStatePtr driver, * VIR_NETWORK_FORWARD_BRIDGE with no bridge device defined * (since that is macvtap bridge mode). */ - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_NETWORK_FORWARD_PRIVATE: case VIR_NETWORK_FORWARD_VEPA: @@ -3433,7 +3433,7 @@ networkValidate(virNetworkDriverStatePtr driver, if (def->bridge != NULL) bandwidthAllowed = true; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_NETWORK_FORWARD_PRIVATE: case VIR_NETWORK_FORWARD_VEPA: @@ -4710,7 +4710,7 @@ networkAllocatePort(virNetworkObjPtr obj, /* intentionally fall through to the direct case for * VIR_NETWORK_FORWARD_BRIDGE with no bridge device defined */ - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_NETWORK_FORWARD_PRIVATE: case VIR_NETWORK_FORWARD_VEPA: diff --git a/src/network/leaseshelper.c b/src/network/leaseshelper.c index dc737879ca..959162b814 100644 --- a/src/network/leaseshelper.c +++ b/src/network/leaseshelper.c @@ -193,7 +193,7 @@ main(int argc, char **argv) if (!lease_new) break; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_LEASE_ACTION_DEL: /* Delete the corresponding lease, if it already exists */ delete = true; @@ -230,7 +230,7 @@ main(int argc, char **argv) } lease_new = NULL; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_LEASE_ACTION_DEL: if (!(leases_str = virJSONValueToString(leases_array_new, true))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a41156476f..d2fc7b6f1e 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7254,7 +7254,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, * early instead of erroring out */ break; } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_GIC_VERSION_3: case VIR_GIC_VERSION_HOST: @@ -9053,7 +9053,7 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager, virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &buf); - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_DOORBELL: devstr = qemuBuildShmemDevStr(def, shmem, qemuCaps); break; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b257db44b0..e11c0c8ea2 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -209,7 +209,7 @@ qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job, case QEMU_ASYNC_JOB_SNAPSHOT: case QEMU_ASYNC_JOB_START: case QEMU_ASYNC_JOB_NONE: - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case QEMU_ASYNC_JOB_LAST: break; } @@ -234,7 +234,7 @@ qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob job, case QEMU_ASYNC_JOB_SNAPSHOT: case QEMU_ASYNC_JOB_START: case QEMU_ASYNC_JOB_NONE: - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case QEMU_ASYNC_JOB_LAST: break; } @@ -3102,7 +3102,7 @@ qemuDomainObjPrivateXMLParseBlockjobDataSpecific(qemuBlockJobDataPtr job, if (!job->data.commit.topparent) goto broken; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case QEMU_BLOCKJOB_TYPE_ACTIVE_COMMIT: qemuDomainObjPrivateXMLParseBlockjobNodename(job, "string(./top/@node)", diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 42866c6060..6ce6348593 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -4324,7 +4324,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, case VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_DESTROY: if (doCoreDumpToAutoDumpPath(driver, vm, flags) < 0) goto endjob; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY: qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_CRASHED, @@ -4341,7 +4341,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, case VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_RESTART: if (doCoreDumpToAutoDumpPath(driver, vm, flags) < 0) goto endjob; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART: qemuDomainSetFakeReboot(driver, vm, true); diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 88984dff67..fcb206a8af 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2957,7 +2957,7 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver, virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("live attach of shmem model '%s' is not supported"), virDomainShmemModelTypeToString(shmem->model)); - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_SHMEM_MODEL_LAST: return -1; } @@ -5454,7 +5454,7 @@ qemuDomainDetachPrepShmem(virDomainObjPtr vm, virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("live detach of shmem model '%s' is not supported"), virDomainShmemModelTypeToString(shmem->model)); - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_SHMEM_MODEL_LAST: return -1; } diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 1cbb27e104..59661fd6b0 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -582,7 +582,7 @@ qemuMigrationSrcNBDCopyCancelled(virDomainObjPtr vm, qemuMigrationNBDReportMirrorError(job, disk->dst); failed = true; } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_BLOCK_JOB_CANCELED: case VIR_DOMAIN_BLOCK_JOB_COMPLETED: diskPriv->migrating = false; @@ -656,7 +656,7 @@ qemuMigrationSrcNBDCopyCancelOne(virQEMUDriverPtr driver, qemuMigrationNBDReportMirrorError(job, disk->dst); goto cleanup; } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_DOMAIN_BLOCK_JOB_COMPLETED: ret = 1; goto cleanup; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 0afb7c79e4..9c50c4a1d8 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4811,7 +4811,7 @@ qemuProcessGetNetworkAddress(const char *netname, * fall through if netdef->bridge wasn't set, since that is * macvtap bridge mode network. */ - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_NETWORK_FORWARD_PRIVATE: case VIR_NETWORK_FORWARD_VEPA: diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 3191f9032e..bd4017c4dc 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -1159,7 +1159,7 @@ doRemoteOpen(virConnectPtr conn, if (!priv->tls) goto failed; priv->is_secure = 1; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; #else (void)tls_priority; (void)sanity; diff --git a/src/util/virconf.c b/src/util/virconf.c index 665805b7cf..6f7bf3be8e 100644 --- a/src/util/virconf.c +++ b/src/util/virconf.c @@ -984,7 +984,7 @@ int virConfGetValueStringList(virConfPtr conf, } break; } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_CONF_LLONG: case VIR_CONF_ULLONG: diff --git a/src/util/virhashcode.c b/src/util/virhashcode.c index 98d5dceeba..07d9e16fc4 100644 --- a/src/util/virhashcode.c +++ b/src/util/virhashcode.c @@ -101,17 +101,17 @@ uint32_t virHashCodeGen(const void *key, size_t len, uint32_t seed) switch (len & 3) { case 3: k1 ^= tail[2] << 16; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case 2: k1 ^= tail[1] << 8; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case 1: k1 ^= tail[0]; k1 *= c1; k1 = rotl32(k1, 15); k1 *= c2; h1 ^= k1; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; default: break; } diff --git a/src/util/viriscsi.c b/src/util/viriscsi.c index b869c4cacd..25b77eead7 100644 --- a/src/util/viriscsi.c +++ b/src/util/viriscsi.c @@ -487,7 +487,7 @@ virISCSIScanTargets(const char *portal, virReportError(VIR_ERR_OPERATION_FAILED, _("no iSCSI interface defined for IQN %s"), initiatoriqn); - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case IQN_ERROR: default: return -1; diff --git a/src/util/virutil.c b/src/util/virutil.c index 587540ae03..aae07d48e6 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -212,19 +212,19 @@ virScaleInteger(unsigned long long *value, const char *suffix, switch (c_tolower(*suffix)) { case 'e': scale *= base; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case 'p': scale *= base; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case 't': scale *= base; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case 'g': scale *= base; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case 'm': scale *= base; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case 'k': scale *= base; break; diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index e188c0a34f..5c0aa0e588 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -2596,14 +2596,14 @@ virshBlockJobInfo(vshControl *ctl, switch (last_error->code) { case VIR_ERR_INVALID_ARG: priv->blockJobNoBytes = true; - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case VIR_ERR_OVERFLOW: if (!bytes && !raw) { /* try again with MiB/s, unless forcing bytes */ vshResetLibvirtError(); break; } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; default: goto cleanup; } diff --git a/tools/virsh-edit.c b/tools/virsh-edit.c index 5091ac74b7..5dc1a1fe5a 100644 --- a/tools/virsh-edit.c +++ b/tools/virsh-edit.c @@ -137,7 +137,7 @@ do { relax_avail = false; goto redefine; } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; #endif default: diff --git a/tools/virsh.c b/tools/virsh.c index 0ed46e0e64..4aae877160 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -762,7 +762,7 @@ virshParseArgv(vshControl *ctl, int argc, char **argv) puts(VERSION); exit(EXIT_SUCCESS); } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case 'V': virshShowVersion(ctl); exit(EXIT_SUCCESS); diff --git a/tools/virt-admin.c b/tools/virt-admin.c index 95a3c3d30e..c0cc0999cb 100644 --- a/tools/virt-admin.c +++ b/tools/virt-admin.c @@ -1329,7 +1329,7 @@ vshAdmParseArgv(vshControl *ctl, int argc, char **argv) puts(VERSION); exit(EXIT_SUCCESS); } - ATTRIBUTE_FALLTHROUGH; + G_GNUC_FALLTHROUGH; case 'V': vshAdmShowVersion(ctl); exit(EXIT_SUCCESS); -- 2.19.2

We try to keep the example programs independent of libraries other than libvirt. Rename the locally defined ARRAY_CARDINALITY macro to G_N_ELEMENTS which GLib provides, even though we don't actually include GLib. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- examples/c/misc/event-test.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/c/misc/event-test.c b/examples/c/misc/event-test.c index 533b8da9bf..5db572175d 100644 --- a/examples/c/misc/event-test.c +++ b/examples/c/misc/event-test.c @@ -9,7 +9,7 @@ #include <libvirt/libvirt.h> #include <libvirt/virterror.h> -#define ARRAY_CARDINALITY(Array) (sizeof(Array) / sizeof(*(Array))) +#define G_N_ELEMENTS(Array) (sizeof(Array) / sizeof(*(Array))) #define STREQ(a, b) (strcmp(a, b) == 0) #define NULLSTR(s) ((s) ? (s) : "<null>") @@ -1135,10 +1135,10 @@ struct secretEventData secretEvents[] = { }; /* make sure that the events are kept in sync */ -verify(ARRAY_CARDINALITY(domainEvents) == VIR_DOMAIN_EVENT_ID_LAST); -verify(ARRAY_CARDINALITY(storagePoolEvents) == VIR_STORAGE_POOL_EVENT_ID_LAST); -verify(ARRAY_CARDINALITY(nodeDeviceEvents) == VIR_NODE_DEVICE_EVENT_ID_LAST); -verify(ARRAY_CARDINALITY(secretEvents) == VIR_SECRET_EVENT_ID_LAST); +verify(G_N_ELEMENTS(domainEvents) == VIR_DOMAIN_EVENT_ID_LAST); +verify(G_N_ELEMENTS(storagePoolEvents) == VIR_STORAGE_POOL_EVENT_ID_LAST); +verify(G_N_ELEMENTS(nodeDeviceEvents) == VIR_NODE_DEVICE_EVENT_ID_LAST); +verify(G_N_ELEMENTS(secretEvents) == VIR_SECRET_EVENT_ID_LAST); int main(int argc, char **argv) @@ -1190,7 +1190,7 @@ main(int argc, char **argv) strdup("callback 1"), myFreeFunc); /* register common domain callbacks */ - for (i = 0; i < ARRAY_CARDINALITY(domainEvents); i++) { + for (i = 0; i < G_N_ELEMENTS(domainEvents); i++) { struct domainEventData *event = domainEvents + i; event->id = virConnectDomainEventRegisterAny(dconn, NULL, @@ -1212,7 +1212,7 @@ main(int argc, char **argv) strdup("net callback"), myFreeFunc); /* register common storage pool callbacks */ - for (i = 0; i < ARRAY_CARDINALITY(storagePoolEvents); i++) { + for (i = 0; i < G_N_ELEMENTS(storagePoolEvents); i++) { struct storagePoolEventData *event = storagePoolEvents + i; event->id = virConnectStoragePoolEventRegisterAny(dconn, NULL, @@ -1228,7 +1228,7 @@ main(int argc, char **argv) } /* register common node device callbacks */ - for (i = 0; i < ARRAY_CARDINALITY(nodeDeviceEvents); i++) { + for (i = 0; i < G_N_ELEMENTS(nodeDeviceEvents); i++) { struct nodeDeviceEventData *event = nodeDeviceEvents + i; event->id = virConnectNodeDeviceEventRegisterAny(dconn, NULL, @@ -1244,7 +1244,7 @@ main(int argc, char **argv) } /* register common secret callbacks */ - for (i = 0; i < ARRAY_CARDINALITY(secretEvents); i++) { + for (i = 0; i < G_N_ELEMENTS(secretEvents); i++) { struct secretEventData *event = secretEvents + i; event->id = virConnectSecretEventRegisterAny(dconn, NULL, @@ -1282,27 +1282,27 @@ main(int argc, char **argv) printf("Deregistering domain event callbacks\n"); - for (i = 0; i < ARRAY_CARDINALITY(domainEvents); i++) { + for (i = 0; i < G_N_ELEMENTS(domainEvents); i++) { if (domainEvents[i].id > 0) virConnectDomainEventDeregisterAny(dconn, domainEvents[i].id); } printf("Deregistering storage pool event callbacks\n"); - for (i = 0; i < ARRAY_CARDINALITY(storagePoolEvents); i++) { + for (i = 0; i < G_N_ELEMENTS(storagePoolEvents); i++) { if (storagePoolEvents[i].id > 0) virConnectStoragePoolEventDeregisterAny(dconn, storagePoolEvents[i].id); } printf("Deregistering node device event callbacks\n"); - for (i = 0; i < ARRAY_CARDINALITY(nodeDeviceEvents); i++) { + for (i = 0; i < G_N_ELEMENTS(nodeDeviceEvents); i++) { if (nodeDeviceEvents[i].id > 0) virConnectNodeDeviceEventDeregisterAny(dconn, nodeDeviceEvents[i].id); } printf("Deregistering secret event callbacks\n"); - for (i = 0; i < ARRAY_CARDINALITY(secretEvents); i++) { + for (i = 0; i < G_N_ELEMENTS(secretEvents); i++) { if (secretEvents[i].id > 0) virConnectSecretEventDeregisterAny(dconn, secretEvents[i].id); } -- 2.19.2

On Tue, 2019-10-15 at 14:21 +0200, Ján Tomko wrote:
We try to keep the example programs independent of libraries other than libvirt.
Rename the locally defined ARRAY_CARDINALITY macro to G_N_ELEMENTS which GLib provides, even though we don't actually include GLib.
[...]
-#define ARRAY_CARDINALITY(Array) (sizeof(Array) / sizeof(*(Array))) +#define G_N_ELEMENTS(Array) (sizeof(Array) / sizeof(*(Array)))
In this case, and in this case only, I think we should leave the name alone. When we use GLib and simply provide our own implementation when using a version that's too old, the GLib name is obviously accurate, but in this specific case I think it's misleading and we should stick with the current one. -- Andrea Bolognani / Red Hat / Virtualization

On Tue, Oct 15, 2019 at 04:10:55PM +0200, Andrea Bolognani wrote:
On Tue, 2019-10-15 at 14:21 +0200, Ján Tomko wrote:
We try to keep the example programs independent of libraries other than libvirt.
Rename the locally defined ARRAY_CARDINALITY macro to G_N_ELEMENTS which GLib provides, even though we don't actually include GLib.
[...]
-#define ARRAY_CARDINALITY(Array) (sizeof(Array) / sizeof(*(Array))) +#define G_N_ELEMENTS(Array) (sizeof(Array) / sizeof(*(Array)))
In this case, and in this case only, I think we should leave the name alone.
This case being "the isolated event-test.c example" or "the ARRAY_CARDINALITY macro in event-test.c"? If it's the latter, I can add an exception to syntax-check instead. Note that I also added a G_GNUC_UNUSED macro earlier, if the G_ prefix is the issue. (The ATTRIBUTE_UNUSED spelling is used by multiple libs, including libxml2) Also, we open-code the 'verify' macro from gnulib.
When we use GLib and simply provide our own implementation when using a version that's too old, the GLib name is obviously accurate, but in this specific case I think it's misleading and we should stick with the current one.
Alternatively, would a comment along the lines of: /* define these macros to avoid pulling in glib */ make it less misleading? The reason we included these macros here in the first place is that we wanted to keep the code in sync with the rest of libvirt. Jano
-- Andrea Bolognani / Red Hat / Virtualization

On Tue, Oct 15, 2019 at 04:10:55PM +0200, Andrea Bolognani wrote:
On Tue, 2019-10-15 at 14:21 +0200, Ján Tomko wrote:
We try to keep the example programs independent of libraries other than libvirt.
Rename the locally defined ARRAY_CARDINALITY macro to G_N_ELEMENTS which GLib provides, even though we don't actually include GLib.
[...]
-#define ARRAY_CARDINALITY(Array) (sizeof(Array) / sizeof(*(Array))) +#define G_N_ELEMENTS(Array) (sizeof(Array) / sizeof(*(Array)))
In this case, and in this case only, I think we should leave the name alone.
When we use GLib and simply provide our own implementation when using a version that's too old, the GLib name is obviously accurate, but in this specific case I think it's misleading and we should stick with the current one.
We do have the option to have our example programs use GLib instead of plain C. If people are using libvirt from plain C, I'm inclined to suggest they'd be wise to use GLib for the same reasons that it is beneficial for libvirt to use GLib. If they're not using GLib, they likely have enough C knowledge to figure out what they must do from our examples anyway. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Tue, 2019-10-15 at 18:21 +0100, Daniel P. Berrangé wrote:
On Tue, Oct 15, 2019 at 04:10:55PM +0200, Andrea Bolognani wrote:
On Tue, 2019-10-15 at 14:21 +0200, Ján Tomko wrote:
-#define ARRAY_CARDINALITY(Array) (sizeof(Array) / sizeof(*(Array))) +#define G_N_ELEMENTS(Array) (sizeof(Array) / sizeof(*(Array)))
In this case, and in this case only, I think we should leave the name alone.
When we use GLib and simply provide our own implementation when using a version that's too old, the GLib name is obviously accurate, but in this specific case I think it's misleading and we should stick with the current one.
We do have the option to have our example programs use GLib instead of plain C. If people are using libvirt from plain C, I'm inclined to suggest they'd be wise to use GLib for the same reasons that it is beneficial for libvirt to use GLib.
If they're not using GLib, they likely have enough C knowledge to figure out what they must do from our examples anyway.
Introducing a dependency on GLib for the example sounds acceptable to me, and certainly better than defining G_* macros ourselves. One thing we could do, and which would be useful in general as well as being fairly common from what I've seen in other projects, is to have a comment at the start of the example file along the lines of /* event-test - listen to libvirt events * * Compile with: * * gcc -o event-test event-test.c \ * $(pkg-config --cflags --libs libvirt glib-2.0) */ At that point even people who are not that familiar with C, libvirt or GLib will be able to build and run the example. -- Andrea Bolognani / Red Hat / Virtualization

Prefer the GLib version of the macro. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- build-aux/syntax-check.mk | 6 ++ src/access/viraccessmanager.c | 2 +- src/conf/domain_capabilities.h | 2 +- src/conf/domain_conf.c | 2 +- src/conf/storage_conf.c | 2 +- src/conf/virdomainsnapshotobjlist.c | 2 +- src/cpu/cpu.c | 4 +- src/cpu/cpu_arm.c | 2 +- src/cpu/cpu_ppc64.c | 4 +- src/cpu/cpu_s390.c | 2 +- src/cpu/cpu_x86.c | 8 +- src/esx/esx_vi.c | 4 +- src/internal.h | 1 - src/libvirt-domain.c | 6 +- src/libvirt-host.c | 2 +- src/libxl/libxl_capabilities.c | 8 +- src/libxl/libxl_driver.c | 2 +- src/libxl/libxl_migration.c | 4 +- src/libxl/xen_xl.c | 2 +- src/locking/domain_lock.c | 4 +- src/locking/lock_daemon.c | 4 +- src/locking/sanlock_helper.c | 2 +- src/logging/log_daemon.c | 4 +- src/lxc/lxc_container.c | 6 +- src/lxc/lxc_controller.c | 2 +- src/lxc/lxc_monitor.c | 2 +- src/node_device/node_device_hal.c | 4 +- src/node_device/node_device_udev.c | 2 +- src/nwfilter/nwfilter_dhcpsnoop.c | 10 +-- src/nwfilter/nwfilter_learnipaddr.c | 2 +- src/phyp/phyp_driver.c | 2 +- src/qemu/qemu_agent.c | 2 +- src/qemu/qemu_capabilities.c | 112 ++++++++++++++-------------- src/qemu/qemu_command.c | 2 +- src/qemu/qemu_conf.c | 2 +- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_migration.c | 4 +- src/qemu/qemu_migration_params.c | 12 +-- src/qemu/qemu_monitor_json.c | 2 +- src/qemu/qemu_qapi.c | 2 +- src/remote/remote_daemon.c | 4 +- src/remote/remote_daemon_dispatch.c | 14 ++-- src/remote/remote_driver.c | 6 +- src/rpc/gendispatch.pl | 2 +- src/rpc/virnetclient.c | 8 +- src/security/security_dac.c | 2 +- src/security/security_driver.c | 2 +- src/security/security_selinux.c | 2 +- src/security/virt-aa-helper.c | 6 +- src/test/test_driver.c | 2 +- src/util/virarch.c | 2 +- src/util/viraudit.c | 2 +- src/util/vircgroupv1.c | 6 +- src/util/vircgroupv2.c | 4 +- src/util/vircrypto.c | 2 +- src/util/virdbus.c | 2 +- src/util/virenum.h | 6 +- src/util/virfirewall.c | 2 +- src/util/virhostcpu.c | 2 +- src/util/viriptables.c | 8 +- src/util/virkeycode.c | 26 +++---- src/util/virlog.c | 6 +- src/util/virnetdev.c | 4 +- src/util/virnetlink.c | 2 +- src/util/virperf.c | 2 +- src/util/virprocess.c | 2 +- src/util/virstoragefile.c | 6 +- src/util/virtpm.c | 4 +- src/util/virutil.c | 4 +- src/vbox/vbox_XPCOMCGlue.c | 2 +- src/vmware/vmware_driver.c | 2 +- src/vz/vz_driver.c | 8 +- tests/commandhelper.c | 2 +- tests/esxutilstest.c | 8 +- tests/nwfilterxml2firewalltest.c | 2 +- tests/openvzutilstest.c | 2 +- tests/qemufirmwaretest.c | 4 +- tests/qemumonitorjsontest.c | 4 +- tests/qemuvhostusertest.c | 2 +- tests/qemuxml2argvmock.c | 2 +- tests/qemuxml2argvtest.c | 18 ++--- tests/testutils.c | 2 +- tests/testutilshostcpus.h | 8 +- tests/testutilsqemu.c | 40 +++++----- tests/testutilsxen.c | 6 +- tests/utiltest.c | 10 +-- tests/virbitmaptest.c | 8 +- tests/vircgrouptest.c | 14 ++-- tests/virfiletest.c | 2 +- tests/virfirewalltest.c | 2 +- tests/virhashtest.c | 32 ++++---- tests/virhostcputest.c | 2 +- tests/viriscsitest.c | 2 +- tests/virnetmessagetest.c | 6 +- tests/virnettlscontexttest.c | 2 +- tests/virnettlssessiontest.c | 2 +- tests/virnumamock.c | 2 +- tests/virpcitest.c | 6 +- tests/virpolkittest.c | 2 +- tests/virrotatingfiletest.c | 10 +-- tests/virstoragetest.c | 8 +- tests/virstringtest.c | 8 +- tests/virsystemdtest.c | 4 +- tests/virtypedparamtest.c | 8 +- tools/virsh-domain.c | 2 +- tools/virsh-network.c | 2 +- tools/virsh-nodedev.c | 2 +- tools/virsh-pool.c | 2 +- tools/virsh-secret.c | 2 +- tools/virt-host-validate-common.c | 4 +- 110 files changed, 325 insertions(+), 320 deletions(-) diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk index 63b9ce70f6..033eaf70c4 100644 --- a/build-aux/syntax-check.mk +++ b/build-aux/syntax-check.mk @@ -634,6 +634,12 @@ sc_prohibit_attribute_macros: halt='use GLib macros: G_GNUC_<ATTRIBUTE_SUFFIX> for most' \ $(_sc_search_regexp) +sc_prohibit_non_glib_macros: + @prohibit='ARRAY_CARDINALITY' \ + in_vc_files='\.[ch]$$' \ + halt='use GLib macros: G_N_ELEMENTS' \ + $(_sc_search_regexp) + sc_prohibit_int_index: @prohibit='\<(int|unsigned)\s*\*?index\>(\s|,|;)' \ halt='use different name than 'index' for declaration' \ diff --git a/src/access/viraccessmanager.c b/src/access/viraccessmanager.c index 24d9713cfd..31e1787919 100644 --- a/src/access/viraccessmanager.c +++ b/src/access/viraccessmanager.c @@ -118,7 +118,7 @@ static virAccessDriverPtr accessDrivers[] = { static virAccessDriverPtr virAccessManagerFindDriver(const char *name) { size_t i; - for (i = 0; i < ARRAY_CARDINALITY(accessDrivers); i++) { + for (i = 0; i < G_N_ELEMENTS(accessDrivers); i++) { if (STREQ(name, accessDrivers[i]->name)) return accessDrivers[i]; } diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index f5571b2188..3a92194602 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -215,7 +215,7 @@ virDomainCapsCPUModelsGet(virDomainCapsCPUModelsPtr cpuModels, #define VIR_DOMAIN_CAPS_ENUM_SET(capsEnum, ...) \ do { \ unsigned int __values[] = {__VA_ARGS__}; \ - size_t __nvalues = ARRAY_CARDINALITY(__values); \ + size_t __nvalues = G_N_ELEMENTS(__values); \ virDomainCapsEnumSet(&(capsEnum), #capsEnum, \ __nvalues, __values); \ } while (0) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index c128d34ba2..10d6bf0eea 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -29809,7 +29809,7 @@ virDomainNetSetModelString(virDomainNetDefPtr net, if (!model) return 0; - for (i = 0; i < ARRAY_CARDINALITY(virDomainNetModelTypeList); i++) { + for (i = 0; i < G_N_ELEMENTS(virDomainNetModelTypeList); i++) { if (STRCASEEQ(virDomainNetModelTypeList[i], model)) { net->model = i; return 0; diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index fcd1701d37..2658f80e33 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -309,7 +309,7 @@ static virStoragePoolTypeInfoPtr virStoragePoolTypeInfoLookup(int type) { size_t i; - for (i = 0; i < ARRAY_CARDINALITY(poolTypeInfo); i++) + for (i = 0; i < G_N_ELEMENTS(poolTypeInfo); i++) if (poolTypeInfo[i].poolType == type) return &poolTypeInfo[i]; diff --git a/src/conf/virdomainsnapshotobjlist.c b/src/conf/virdomainsnapshotobjlist.c index 95622f0ba7..910b0714c7 100644 --- a/src/conf/virdomainsnapshotobjlist.c +++ b/src/conf/virdomainsnapshotobjlist.c @@ -131,7 +131,7 @@ virDomainSnapshotObjListGetNames(virDomainSnapshotObjListPtr snapshots, }; size_t i; - for (i = 0; i < ARRAY_CARDINALITY(map); i++) { + for (i = 0; i < G_N_ELEMENTS(map); i++) { if (flags & map[i].snap_flag) { flags &= ~map[i].snap_flag; moment_flags |= map[i].moment_flag; diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index 2278d79a77..40f725fd21 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -57,7 +57,7 @@ cpuGetSubDriver(virArch arch) return NULL; } - for (i = 0; i < ARRAY_CARDINALITY(drivers); i++) { + for (i = 0; i < G_N_ELEMENTS(drivers); i++) { for (j = 0; j < drivers[i]->narch; j++) { if (arch == drivers[i]->arch[j]) return drivers[i]; @@ -76,7 +76,7 @@ cpuGetSubDriverByName(const char *name) { size_t i; - for (i = 0; i < ARRAY_CARDINALITY(drivers); i++) { + for (i = 0; i < G_N_ELEMENTS(drivers); i++) { if (STREQ_NULLABLE(name, drivers[i]->name)) return drivers[i]; } diff --git a/src/cpu/cpu_arm.c b/src/cpu/cpu_arm.c index d464d7add2..c271e53a90 100644 --- a/src/cpu/cpu_arm.c +++ b/src/cpu/cpu_arm.c @@ -101,7 +101,7 @@ virCPUarmCompare(virCPUDefPtr host G_GNUC_UNUSED, struct cpuArchDriver cpuDriverArm = { .name = "arm", .arch = archs, - .narch = ARRAY_CARDINALITY(archs), + .narch = G_N_ELEMENTS(archs), .compare = virCPUarmCompare, .decode = NULL, .encode = NULL, diff --git a/src/cpu/cpu_ppc64.c b/src/cpu/cpu_ppc64.c index b11695f24d..1d9d6bca12 100644 --- a/src/cpu/cpu_ppc64.c +++ b/src/cpu/cpu_ppc64.c @@ -452,7 +452,7 @@ ppc64Compute(virCPUDefPtr host, if (cpu->arch != VIR_ARCH_NONE) { bool found = false; - for (i = 0; i < ARRAY_CARDINALITY(archs); i++) { + for (i = 0; i < G_N_ELEMENTS(archs); i++) { if (archs[i] == cpu->arch) { found = true; break; @@ -824,7 +824,7 @@ virCPUppc64DriverGetModels(char ***models) struct cpuArchDriver cpuDriverPPC64 = { .name = "ppc64", .arch = archs, - .narch = ARRAY_CARDINALITY(archs), + .narch = G_N_ELEMENTS(archs), .compare = virCPUppc64Compare, .decode = ppc64DriverDecode, .encode = NULL, diff --git a/src/cpu/cpu_s390.c b/src/cpu/cpu_s390.c index 712e249f23..a4a381f4b8 100644 --- a/src/cpu/cpu_s390.c +++ b/src/cpu/cpu_s390.c @@ -114,7 +114,7 @@ virCPUs390ValidateFeatures(virCPUDefPtr cpu) struct cpuArchDriver cpuDriverS390 = { .name = "s390", .arch = archs, - .narch = ARRAY_CARDINALITY(archs), + .narch = G_N_ELEMENTS(archs), .compare = virCPUs390Compare, .decode = NULL, .encode = NULL, diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index b2b16ca512..70159a6613 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -68,7 +68,7 @@ struct _virCPUx86Feature { { \ .name = (char *) Name, \ .data = { \ - .len = ARRAY_CARDINALITY(Name ## _data), \ + .len = G_N_ELEMENTS(Name ## _data), \ .items = Name ## _data, \ } \ } @@ -364,7 +364,7 @@ static virCPUx86FeaturePtr x86FeatureFindInternal(const char *name) { size_t i; - size_t count = ARRAY_CARDINALITY(x86_kvm_features); + size_t count = G_N_ELEMENTS(x86_kvm_features); for (i = 0; i < count; i++) { if (STREQ(x86_kvm_features[i].name, name)) @@ -1757,7 +1757,7 @@ x86Compute(virCPUDefPtr host, if (cpu->arch != VIR_ARCH_NONE) { bool found = false; - for (i = 0; i < ARRAY_CARDINALITY(archs); i++) { + for (i = 0; i < G_N_ELEMENTS(archs); i++) { if (archs[i] == cpu->arch) { found = true; break; @@ -3422,7 +3422,7 @@ virCPUx86FeatureFilterDropMSR(const char *name, struct cpuArchDriver cpuDriverX86 = { .name = "x86", .arch = archs, - .narch = ARRAY_CARDINALITY(archs), + .narch = G_N_ELEMENTS(archs), .compare = virCPUx86Compare, .decode = x86DecodeCPUData, .encode = x86Encode, diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c index fc21a7b6eb..004434c454 100644 --- a/src/esx/esx_vi.c +++ b/src/esx/esx_vi.c @@ -547,7 +547,7 @@ ESX_VI__TEMPLATE__FREE(SharedCURL, if (item->handle) curl_share_cleanup(item->handle); - for (i = 0; i < ARRAY_CARDINALITY(item->locks); ++i) + for (i = 0; i < G_N_ELEMENTS(item->locks); ++i) virMutexDestroy(&item->locks[i]); }) @@ -587,7 +587,7 @@ esxVI_SharedCURL_Add(esxVI_SharedCURL *shared, esxVI_CURL *curl) curl_share_setopt(shared->handle, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS); - for (i = 0; i < ARRAY_CARDINALITY(shared->locks); ++i) { + for (i = 0; i < G_N_ELEMENTS(shared->locks); ++i) { if (virMutexInit(&shared->locks[i]) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Could not initialize a CURL (share) mutex")); diff --git a/src/internal.h b/src/internal.h index 59c58a72e1..25df0560af 100644 --- a/src/internal.h +++ b/src/internal.h @@ -91,7 +91,6 @@ ((a) ? !(b) || STRNEQ((a), (b)) : !!(b)) #define NUL_TERMINATE(buf) do { (buf)[sizeof(buf)-1] = '\0'; } while (0) -#define ARRAY_CARDINALITY(Array) (sizeof(Array) / sizeof(*(Array))) /** * G_GNUC_NO_INLINE: diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index 6b12ff5a03..68e8ffff3c 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -3323,7 +3323,7 @@ virDomainMigrateUnmanagedProto2(virDomainPtr domain, unsigned long long bandwidth = 0; if (!virTypedParamsCheck(params, nparams, compatParams, - ARRAY_CARDINALITY(compatParams))) { + G_N_ELEMENTS(compatParams))) { virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", _("Some parameters are not supported by migration " "protocol 2")); @@ -3372,7 +3372,7 @@ virDomainMigrateUnmanagedProto3(virDomainPtr domain, unsigned long long bandwidth = 0; if (!virTypedParamsCheck(params, nparams, compatParams, - ARRAY_CARDINALITY(compatParams))) { + G_N_ELEMENTS(compatParams))) { virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", _("Some parameters are not supported by migration " "protocol 3")); @@ -3933,7 +3933,7 @@ virDomainMigrate3(virDomainPtr domain, } if (!virTypedParamsCheck(params, nparams, compatParams, - ARRAY_CARDINALITY(compatParams))) { + G_N_ELEMENTS(compatParams))) { virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", _("Migration APIs with extensible parameters are not " "supported but extended parameters were passed")); diff --git a/src/libvirt-host.c b/src/libvirt-host.c index d7b1b82277..221a1b7a43 100644 --- a/src/libvirt-host.c +++ b/src/libvirt-host.c @@ -1551,7 +1551,7 @@ virNodeGetCPUMap(virConnectPtr conn, * Example how to use this API: * * unsigned int pages[] = { 4, 2048, 1048576} - * unsigned int npages = ARRAY_CARDINALITY(pages); + * unsigned int npages = G_N_ELEMENTS(pages); * int startcell = 0; * unsigned int cellcount = 2; * diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index 65c68ffb52..54a8c090b0 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -134,11 +134,11 @@ libxlCapsNodeData(virCPUDefPtr cpu, libxl_hwcap hwcap, if (!(cpudata = virCPUDataNew(cpu->arch))) goto error; - ncaps = ARRAY_CARDINALITY(cpuid); + ncaps = G_N_ELEMENTS(cpuid); if (libxlCapsAddCPUID(cpudata, cpuid, ncaps) < 0) goto error; - ncaps = ARRAY_CARDINALITY(cpuid_ver1); + ncaps = G_N_ELEMENTS(cpuid_ver1); if (version > LIBXL_HWCAP_V0 && libxlCapsAddCPUID(cpudata, cpuid_ver1, ncaps) < 0) goto error; @@ -471,7 +471,7 @@ libxlCapsInitGuests(libxl_ctx *ctx, virCapsPtr caps) } /* Too many arch flavours - highly unlikely ! */ - if (i >= ARRAY_CARDINALITY(guest_archs)) + if (i >= G_N_ELEMENTS(guest_archs)) continue; /* Didn't find a match, so create a new one */ if (i == nr_guest_archs) @@ -500,7 +500,7 @@ libxlCapsInitGuests(libxl_ctx *ctx, virCapsPtr caps) #ifdef HAVE_XEN_PVH if (hvm && i == nr_guest_archs-1) { /* Ensure we have not exhausted the guest_archs array */ - if (nr_guest_archs >= ARRAY_CARDINALITY(guest_archs)) + if (nr_guest_archs >= G_N_ELEMENTS(guest_archs)) continue; i = nr_guest_archs; nr_guest_archs++; diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 7153a82e20..59398a0a4d 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -5339,7 +5339,7 @@ libxlDiskPathToID(const char *virtpath) fmt = id = -1; /* Find any disk prefixes we know about */ - for (i = 0; i < ARRAY_CARDINALITY(drive_prefix); i++) { + for (i = 0; i < G_N_ELEMENTS(drive_prefix); i++) { if (STRPREFIX(virtpath, drive_prefix[i]) && !virDiskNameParse(virtpath, &disk, &partition)) { fmt = i; diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index ea325bf2cb..8a41e9374d 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -860,7 +860,7 @@ static void libxlTunnel3MigrationSrcFunc(void *arg) fds[0].events = POLLIN; fds[0].revents = 0; - ret = poll(fds, ARRAY_CARDINALITY(fds), timeout); + ret = poll(fds, G_N_ELEMENTS(fds), timeout); if (ret < 0) { if (errno == EAGAIN || errno == EINTR) continue; @@ -1138,7 +1138,7 @@ static int virConnectCredType[] = { static virConnectAuth virConnectAuthConfig = { .credtype = virConnectCredType, - .ncredtype = ARRAY_CARDINALITY(virConnectCredType), + .ncredtype = G_N_ELEMENTS(virConnectCredType), }; /* On P2P mode there is only the Perform3 phase and we need to handle diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c index 015f0aa620..9e3d307078 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -250,7 +250,7 @@ xenTranslateCPUFeature(const char *feature_name, bool from_libxl) }; size_t i; - for (i = 0; i < ARRAY_CARDINALITY(translation_table); i++) + for (i = 0; i < G_N_ELEMENTS(translation_table); i++) if (STREQ(translation_table[i][from_libxl], feature_name)) return translation_table[i][!from_libxl]; return feature_name; diff --git a/src/locking/domain_lock.c b/src/locking/domain_lock.c index d91ac83c45..bc281eac54 100644 --- a/src/locking/domain_lock.c +++ b/src/locking/domain_lock.c @@ -50,7 +50,7 @@ static int virDomainLockManagerAddLease(virLockManagerPtr lock, .value = { .str = lease->lockspace }, }, }; - size_t nparams = ARRAY_CARDINALITY(lparams); + size_t nparams = G_N_ELEMENTS(lparams); if (!lease->lockspace) nparams--; @@ -137,7 +137,7 @@ static virLockManagerPtr virDomainLockManagerNew(virLockManagerPluginPtr plugin, if (!(lock = virLockManagerNew(virLockManagerPluginGetDriver(plugin), VIR_LOCK_MANAGER_OBJECT_TYPE_DOMAIN, - ARRAY_CARDINALITY(params), + G_N_ELEMENTS(params), params, flags))) goto error; diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c index 59167d7d31..baffaa6de9 100644 --- a/src/locking/lock_daemon.c +++ b/src/locking/lock_daemon.c @@ -314,7 +314,7 @@ virLockDaemonNewPostExecRestart(virJSONValuePtr object, bool privileged) } if (!(lockd->dmn = virNetDaemonNewPostExecRestart(child, - ARRAY_CARDINALITY(serverNames), + G_N_ELEMENTS(serverNames), serverNames, virLockDaemonNewServerPostExecRestart, (void*)(intptr_t)(privileged ? 0x1 : 0x0)))) @@ -1317,7 +1317,7 @@ int main(int argc, char **argv) { } if (virSystemdGetActivation(actmap, - ARRAY_CARDINALITY(actmap), + G_N_ELEMENTS(actmap), &act) < 0) { ret = VIR_LOCK_DAEMON_ERR_NETWORK; goto cleanup; diff --git a/src/locking/sanlock_helper.c b/src/locking/sanlock_helper.c index e07db8a6df..50deccfd67 100644 --- a/src/locking/sanlock_helper.c +++ b/src/locking/sanlock_helper.c @@ -63,7 +63,7 @@ main(int argc, char **argv) }; virConnectAuth auth = { .credtype = authTypes, - .ncredtype = ARRAY_CARDINALITY(authTypes), + .ncredtype = G_N_ELEMENTS(authTypes), .cb = authCallback, }; diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c index e56dbf2919..c667e31185 100644 --- a/src/logging/log_daemon.c +++ b/src/logging/log_daemon.c @@ -266,7 +266,7 @@ virLogDaemonNewPostExecRestart(virJSONValuePtr object, bool privileged, } if (!(logd->dmn = virNetDaemonNewPostExecRestart(child, - ARRAY_CARDINALITY(serverNames), + G_N_ELEMENTS(serverNames), serverNames, virLogDaemonNewServerPostExecRestart, (void*)(intptr_t)(privileged ? 0x1 : 0x0)))) @@ -1090,7 +1090,7 @@ int main(int argc, char **argv) { } if (virSystemdGetActivation(actmap, - ARRAY_CARDINALITY(actmap), + G_N_ELEMENTS(actmap), &act) < 0) { ret = VIR_LOG_DAEMON_ERR_NETWORK; goto cleanup; diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 7fcbbb424a..5002356fe7 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -823,7 +823,7 @@ bool lxcIsBasicMountLocation(const char *path) { size_t i; - for (i = 0; i < ARRAY_CARDINALITY(lxcBasicMounts); i++) { + for (i = 0; i < G_N_ELEMENTS(lxcBasicMounts); i++) { if (STREQ(path, lxcBasicMounts[i].dst)) return true; } @@ -900,7 +900,7 @@ static int lxcContainerMountBasicFS(bool userns_enabled, VIR_DEBUG("Mounting basic filesystems"); - for (i = 0; i < ARRAY_CARDINALITY(lxcBasicMounts); i++) { + for (i = 0; i < G_N_ELEMENTS(lxcBasicMounts); i++) { bool bindOverReadonly; virLXCBasicMountInfo const *mnt = &lxcBasicMounts[i]; @@ -1126,7 +1126,7 @@ static int lxcContainerSetupDevices(char **ttyPaths, size_t nttyPaths) { "/proc/self/fd", "/dev/fd" }, }; - for (i = 0; i < ARRAY_CARDINALITY(links); i++) { + for (i = 0; i < G_N_ELEMENTS(links); i++) { if (symlink(links[i].src, links[i].dst) < 0) { virReportSystemError(errno, _("Failed to symlink device %s to %s"), diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index a1f4ae8812..3c4e68524c 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -1521,7 +1521,7 @@ static int virLXCControllerPopulateDevices(virLXCControllerPtr ctrl) goto cleanup; /* Populate /dev/ with a few important bits */ - for (i = 0; i < ARRAY_CARDINALITY(devs); i++) { + for (i = 0; i < G_N_ELEMENTS(devs); i++) { if (virAsprintf(&path, "/%s/%s.dev/%s", LXC_STATE_DIR, ctrl->def->name, devs[i].path) < 0) goto cleanup; diff --git a/src/lxc/lxc_monitor.c b/src/lxc/lxc_monitor.c index 4e67e29293..028e401236 100644 --- a/src/lxc/lxc_monitor.c +++ b/src/lxc/lxc_monitor.c @@ -171,7 +171,7 @@ virLXCMonitorPtr virLXCMonitorNew(virDomainObjPtr vm, if (!(mon->program = virNetClientProgramNew(VIR_LXC_MONITOR_PROGRAM, VIR_LXC_MONITOR_PROGRAM_VERSION, virLXCMonitorEvents, - ARRAY_CARDINALITY(virLXCMonitorEvents), + G_N_ELEMENTS(virLXCMonitorEvents), mon))) goto error; diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c index b046f03c83..32e99bc830 100644 --- a/src/node_device/node_device_hal.c +++ b/src/node_device/node_device_hal.c @@ -362,7 +362,7 @@ gather_capability(LibHalContext *ctx, const char *udi, { caps_tbl_entry *entry; - entry = bsearch(&cap_name, caps_tbl, ARRAY_CARDINALITY(caps_tbl), + entry = bsearch(&cap_name, caps_tbl, G_N_ELEMENTS(caps_tbl), sizeof(caps_tbl[0]), cmpstringp); if (entry) { @@ -604,7 +604,7 @@ nodeStateInitialize(bool privileged G_GNUC_UNUSED, DBusError err; /* Ensure caps_tbl is sorted by capability name */ - qsort(caps_tbl, ARRAY_CARDINALITY(caps_tbl), sizeof(caps_tbl[0]), + qsort(caps_tbl, G_N_ELEMENTS(caps_tbl), sizeof(caps_tbl[0]), cmpstringp); if (VIR_ALLOC(driver) < 0) diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 80d39e9509..75cf576c3c 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1425,7 +1425,7 @@ udevEnumerateAddMatches(struct udev_enumerate *udev_enumerate) { size_t i; - for (i = 0; i < ARRAY_CARDINALITY(subsystem_blacklist); i++) { + for (i = 0; i < G_N_ELEMENTS(subsystem_blacklist); i++) { const char *s = subsystem_blacklist[i]; if (udev_enumerate_add_nomatch_subsystem(udev_enumerate, s) < 0) { virReportSystemError(errno, "%s", _("failed to add susbsystem filter")); diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcpsnoop.c index dae2ad611d..90f3933959 100644 --- a/src/nwfilter/nwfilter_dhcpsnoop.c +++ b/src/nwfilter/nwfilter_dhcpsnoop.c @@ -1382,7 +1382,7 @@ virNWFilterDHCPSnoopThread(void *req0) virNWFilterSnoopReqLock(req); if (req->binding->portdevname && req->threadkey) { - for (i = 0; i < ARRAY_CARDINALITY(pcapConf); i++) { + for (i = 0; i < G_N_ELEMENTS(pcapConf); i++) { pcapConf[i].handle = virNWFilterSnoopDHCPOpen(req->binding->portdevname, &req->binding->mac, @@ -1419,7 +1419,7 @@ virNWFilterDHCPSnoopThread(void *req0) while (!error) { if (virNWFilterSnoopAdjustPoll(pcapConf, - ARRAY_CARDINALITY(pcapConf), + G_N_ELEMENTS(pcapConf), fds, &pollTo) < 0) { break; } @@ -1428,7 +1428,7 @@ virNWFilterDHCPSnoopThread(void *req0) if (pollTo < 0 || pollTo > SNOOP_POLL_MAX_TIMEOUT_MS) pollTo = SNOOP_POLL_MAX_TIMEOUT_MS; - n = poll(fds, ARRAY_CARDINALITY(fds), pollTo); + n = poll(fds, G_N_ELEMENTS(fds), pollTo); if (n < 0) { if (errno != EAGAIN && errno != EINTR) @@ -1445,7 +1445,7 @@ virNWFilterDHCPSnoopThread(void *req0) req->jobCompletionStatus != 0) goto exit; - for (i = 0; n > 0 && i < ARRAY_CARDINALITY(fds); i++) { + for (i = 0; n > 0 && i < G_N_ELEMENTS(fds); i++) { if (!fds[i].revents) continue; @@ -1567,7 +1567,7 @@ virNWFilterDHCPSnoopThread(void *req0) VIR_FREE(threadkey); - for (i = 0; i < ARRAY_CARDINALITY(pcapConf); i++) { + for (i = 0; i < G_N_ELEMENTS(pcapConf); i++) { if (pcapConf[i].handle) pcap_close(pcapConf[i].handle); } diff --git a/src/nwfilter/nwfilter_learnipaddr.c b/src/nwfilter/nwfilter_learnipaddr.c index 36bc3b06da..d7754c0c7a 100644 --- a/src/nwfilter/nwfilter_learnipaddr.c +++ b/src/nwfilter/nwfilter_learnipaddr.c @@ -479,7 +479,7 @@ learnIPAddressThread(void *arg) pcap_freecode(&fp); while (req->status == 0 && vmaddr == 0) { - int n = poll(fds, ARRAY_CARDINALITY(fds), PKT_TIMEOUT_MS); + int n = poll(fds, G_N_ELEMENTS(fds), PKT_TIMEOUT_MS); if (threadsTerminate || req->terminate) { req->status = ECANCELED; diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index 572ca9e2cb..2b4dd7c9bb 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -127,7 +127,7 @@ waitsocket(int socket_fd, LIBSSH2_SESSION * session) if (dir & LIBSSH2_SESSION_BLOCK_OUTBOUND) fds[0].events |= POLLOUT; - return poll(fds, ARRAY_CARDINALITY(fds), -1); + return poll(fds, G_N_ELEMENTS(fds), -1); } /* this function is the layer that manipulates the ssh channel itself diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index 62edb665a7..9e4b4d802e 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -264,7 +264,7 @@ qemuAgentIOProcessEvent(qemuAgentPtr mon, } /* - for (i = 0; i < ARRAY_CARDINALITY(eventHandlers); i++) { + for (i = 0; i < G_N_ELEMENTS(eventHandlers); i++) { if (STREQ(eventHandlers[i].type, type)) { virJSONValuePtr data = virJSONValueObjectGet(obj, "data"); VIR_DEBUG("handle %s handler=%p data=%p", type, diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index cbd4ebc8ea..efd71d69c5 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1313,103 +1313,103 @@ typedef int (*virQEMUCapsObjectTypePropsCB)(qemuMonitorPtr mon, static virQEMUCapsObjectTypeProps virQEMUCapsDeviceProps[] = { { "virtio-blk-pci", virQEMUCapsDevicePropsVirtioBlk, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBlk), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBlk), -1 }, { "virtio-net-pci", virQEMUCapsDevicePropsVirtioNet, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioNet), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioNet), QEMU_CAPS_DEVICE_VIRTIO_NET }, { "virtio-scsi-pci", virQEMUCapsDevicePropsVirtioSCSI, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioSCSI), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioSCSI), QEMU_CAPS_VIRTIO_SCSI }, { "virtio-blk-ccw", virQEMUCapsDevicePropsVirtioBlk, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBlk), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBlk), QEMU_CAPS_VIRTIO_CCW }, { "virtio-net-ccw", virQEMUCapsDevicePropsVirtioNet, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioNet), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioNet), QEMU_CAPS_DEVICE_VIRTIO_NET }, { "virtio-scsi-ccw", virQEMUCapsDevicePropsVirtioSCSI, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioSCSI), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioSCSI), QEMU_CAPS_VIRTIO_SCSI }, { "virtio-blk-s390", virQEMUCapsDevicePropsVirtioBlk, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBlk), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBlk), QEMU_CAPS_VIRTIO_S390 }, { "virtio-net-s390", virQEMUCapsDevicePropsVirtioNet, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioNet), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioNet), QEMU_CAPS_DEVICE_VIRTIO_NET }, { "vfio-pci", virQEMUCapsDevicePropsVfioPCI, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVfioPCI), + G_N_ELEMENTS(virQEMUCapsDevicePropsVfioPCI), QEMU_CAPS_DEVICE_VFIO_PCI }, { "scsi-hd", virQEMUCapsDevicePropsSCSIDisk, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsSCSIDisk), + G_N_ELEMENTS(virQEMUCapsDevicePropsSCSIDisk), -1 }, { "ide-hd", virQEMUCapsDevicePropsIDEDrive, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsIDEDrive), + G_N_ELEMENTS(virQEMUCapsDevicePropsIDEDrive), -1 }, { "PIIX4_PM", virQEMUCapsDevicePropsPiix4PM, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsPiix4PM), + G_N_ELEMENTS(virQEMUCapsDevicePropsPiix4PM), -1 }, { "usb-redir", virQEMUCapsDevicePropsUSBRedir, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsUSBRedir), + G_N_ELEMENTS(virQEMUCapsDevicePropsUSBRedir), QEMU_CAPS_USB_REDIR }, { "i440FX-pcihost", virQEMUCapsDevicePropsI440FXPCIHost, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsI440FXPCIHost), + G_N_ELEMENTS(virQEMUCapsDevicePropsI440FXPCIHost), -1 }, { "q35-pcihost", virQEMUCapsDevicePropsQ35PCIHost, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsQ35PCIHost), + G_N_ELEMENTS(virQEMUCapsDevicePropsQ35PCIHost), -1 }, { "usb-storage", virQEMUCapsDevicePropsUSBStorage, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsUSBStorage), + G_N_ELEMENTS(virQEMUCapsDevicePropsUSBStorage), QEMU_CAPS_DEVICE_USB_STORAGE }, { "kvm-pit", virQEMUCapsDevicePropsKVMPit, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsKVMPit), + G_N_ELEMENTS(virQEMUCapsDevicePropsKVMPit), -1 }, { "VGA", virQEMUCapsDevicePropsVGA, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVGA), + G_N_ELEMENTS(virQEMUCapsDevicePropsVGA), QEMU_CAPS_DEVICE_VGA }, { "vmware-svga", virQEMUCapsDevicePropsVmwareSvga, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVmwareSvga), + G_N_ELEMENTS(virQEMUCapsDevicePropsVmwareSvga), QEMU_CAPS_DEVICE_VMWARE_SVGA }, { "qxl", virQEMUCapsDevicePropsQxl, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsQxl), + G_N_ELEMENTS(virQEMUCapsDevicePropsQxl), QEMU_CAPS_DEVICE_QXL }, { "virtio-gpu-pci", virQEMUCapsDevicePropsVirtioGpu, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioGpu), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioGpu), QEMU_CAPS_DEVICE_VIRTIO_GPU }, { "virtio-gpu-device", virQEMUCapsDevicePropsVirtioGpu, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioGpu), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioGpu), QEMU_CAPS_DEVICE_VIRTIO_GPU }, { "ICH9-LPC", virQEMUCapsDevicePropsICH9, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsICH9), + G_N_ELEMENTS(virQEMUCapsDevicePropsICH9), -1 }, { "virtio-balloon-pci", virQEMUCapsDevicePropsVirtioBalloon, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBalloon), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBalloon), -1 }, { "virtio-balloon-ccw", virQEMUCapsDevicePropsVirtioBalloon, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBalloon), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBalloon), -1 }, { "virtio-balloon-device", virQEMUCapsDevicePropsVirtioBalloon, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBalloon), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBalloon), -1 }, { "nec-usb-xhci", virQEMUCapsDevicePropsUSBNECXHCI, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsUSBNECXHCI), + G_N_ELEMENTS(virQEMUCapsDevicePropsUSBNECXHCI), QEMU_CAPS_NEC_USB_XHCI }, { "intel-iommu", virQEMUCapsDevicePropsIntelIOMMU, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsIntelIOMMU), + G_N_ELEMENTS(virQEMUCapsDevicePropsIntelIOMMU), QEMU_CAPS_DEVICE_INTEL_IOMMU }, { "spapr-pci-host-bridge", virQEMUCapsDevicePropsSpaprPCIHostBridge, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsSpaprPCIHostBridge), + G_N_ELEMENTS(virQEMUCapsDevicePropsSpaprPCIHostBridge), QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE }, { "virtio-gpu-ccw", virQEMUCapsDevicePropsVirtioGpu, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioGpu), + G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioGpu), QEMU_CAPS_DEVICE_VIRTIO_GPU_CCW }, { "virtual-css-bridge", virQEMUCapsObjectPropsVirtualCSSBridge, - ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtualCSSBridge), + G_N_ELEMENTS(virQEMUCapsObjectPropsVirtualCSSBridge), QEMU_CAPS_CCW }, { "mch", virQEMUCapsDevicePropsMCH, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsMCH), + G_N_ELEMENTS(virQEMUCapsDevicePropsMCH), QEMU_CAPS_DEVICE_MCH }, { "nvdimm", virQEMUCapsDevicePropsNVDIMM, - ARRAY_CARDINALITY(virQEMUCapsDevicePropsNVDIMM), + G_N_ELEMENTS(virQEMUCapsDevicePropsNVDIMM), QEMU_CAPS_DEVICE_NVDIMM }, }; @@ -1429,13 +1429,13 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMaxX86CPU[] = { static virQEMUCapsObjectTypeProps virQEMUCapsObjectProps[] = { { "memory-backend-file", virQEMUCapsObjectPropsMemoryBackendFile, - ARRAY_CARDINALITY(virQEMUCapsObjectPropsMemoryBackendFile), + G_N_ELEMENTS(virQEMUCapsObjectPropsMemoryBackendFile), QEMU_CAPS_OBJECT_MEMORY_FILE }, { "memory-backend-memfd", virQEMUCapsObjectPropsMemoryBackendMemfd, - ARRAY_CARDINALITY(virQEMUCapsObjectPropsMemoryBackendMemfd), + G_N_ELEMENTS(virQEMUCapsObjectPropsMemoryBackendMemfd), QEMU_CAPS_OBJECT_MEMORY_MEMFD }, { "max-x86_64-cpu", virQEMUCapsObjectPropsMaxX86CPU, - ARRAY_CARDINALITY(virQEMUCapsObjectPropsMaxX86CPU), + G_N_ELEMENTS(virQEMUCapsObjectPropsMaxX86CPU), QEMU_CAPS_X86_MAX_CPU }, }; @@ -1452,10 +1452,10 @@ static struct virQEMUCapsStringFlags virQEMUCapsMachinePropsVirt[] = { static virQEMUCapsObjectTypeProps virQEMUCapsMachineProps[] = { { "pseries", virQEMUCapsMachinePropsPSeries, - ARRAY_CARDINALITY(virQEMUCapsMachinePropsPSeries), + G_N_ELEMENTS(virQEMUCapsMachinePropsPSeries), -1 }, { "virt", virQEMUCapsMachinePropsVirt, - ARRAY_CARDINALITY(virQEMUCapsMachinePropsVirt), + G_N_ELEMENTS(virQEMUCapsMachinePropsVirt), -1 }, }; @@ -2171,7 +2171,7 @@ virQEMUCapsProbeQMPCommands(virQEMUCapsPtr qemuCaps, return -1; virQEMUCapsProcessStringFlags(qemuCaps, - ARRAY_CARDINALITY(virQEMUCapsCommands), + G_N_ELEMENTS(virQEMUCapsCommands), virQEMUCapsCommands, ncommands, commands); virStringListFreeCount(commands, ncommands); @@ -2201,7 +2201,7 @@ virQEMUCapsProbeQMPEvents(virQEMUCapsPtr qemuCaps, return -1; virQEMUCapsProcessStringFlags(qemuCaps, - ARRAY_CARDINALITY(virQEMUCapsEvents), + G_N_ELEMENTS(virQEMUCapsEvents), virQEMUCapsEvents, nevents, events); virStringListFreeCount(events, nevents); @@ -2249,7 +2249,7 @@ virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps, if ((nvalues = qemuMonitorGetObjectTypes(mon, &values)) < 0) return -1; virQEMUCapsProcessStringFlags(qemuCaps, - ARRAY_CARDINALITY(virQEMUCapsObjectTypes), + G_N_ELEMENTS(virQEMUCapsObjectTypes), virQEMUCapsObjectTypes, nvalues, values); virStringListFreeCount(values, nvalues); @@ -2257,7 +2257,7 @@ virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps, if (virQEMUCapsProbeQMPGenericProps(qemuCaps, mon, virQEMUCapsDeviceProps, - ARRAY_CARDINALITY(virQEMUCapsDeviceProps), + G_N_ELEMENTS(virQEMUCapsDeviceProps), qemuMonitorGetDeviceProps) < 0) return -1; @@ -2265,7 +2265,7 @@ virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps, virQEMUCapsProbeQMPGenericProps(qemuCaps, mon, virQEMUCapsObjectProps, - ARRAY_CARDINALITY(virQEMUCapsObjectProps), + G_N_ELEMENTS(virQEMUCapsObjectProps), qemuMonitorGetObjectProps) < 0) return -1; @@ -2330,7 +2330,7 @@ static const char *preferredMachines[] = "sim", /* VIR_ARCH_XTENSA */ "sim", /* VIR_ARCH_XTENSAEB */ }; -verify(ARRAY_CARDINALITY(preferredMachines) == VIR_ARCH_LAST); +verify(G_N_ELEMENTS(preferredMachines) == VIR_ARCH_LAST); static int @@ -2412,7 +2412,7 @@ virQEMUCapsProbeQMPMachineProps(virQEMUCapsPtr qemuCaps, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QOM_LIST_PROPERTIES)) return 0; - for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsMachineProps); i++) { + for (i = 0; i < G_N_ELEMENTS(virQEMUCapsMachineProps); i++) { virQEMUCapsObjectTypeProps props = virQEMUCapsMachineProps[i]; const char *canon = virQEMUCapsGetCanonicalMachine(qemuCaps, props.type); VIR_AUTOFREE(char *) type = NULL; @@ -2717,7 +2717,7 @@ virQEMUCapsProbeQMPTPM(virQEMUCapsPtr qemuCaps, return -1; if (nentries > 0) { - for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsTPMModelsToCaps); i++) { + for (i = 0; i < G_N_ELEMENTS(virQEMUCapsTPMModelsToCaps); i++) { const char *needle = virDomainTPMModelTypeToString( virQEMUCapsTPMModelsToCaps[i].type); if (virStringListHasString((const char **)entries, needle)) @@ -2731,7 +2731,7 @@ virQEMUCapsProbeQMPTPM(virQEMUCapsPtr qemuCaps, return -1; if (nentries > 0) { - for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsTPMTypesToCaps); i++) { + for (i = 0; i < G_N_ELEMENTS(virQEMUCapsTPMTypesToCaps); i++) { const char *needle = virDomainTPMBackendTypeToString( virQEMUCapsTPMTypesToCaps[i].type); if (virStringListHasString((const char **)entries, needle)) @@ -2808,7 +2808,7 @@ virQEMUCapsProbeQMPCommandLine(virQEMUCapsPtr qemuCaps, char **values; size_t i, j; - for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsCommandLine); i++) { + for (i = 0; i < G_N_ELEMENTS(virQEMUCapsCommandLine); i++) { if ((nvalues = qemuMonitorGetCommandLineOptionParameters(mon, virQEMUCapsCommandLine[i].option, &values, @@ -2841,7 +2841,7 @@ virQEMUCapsProbeQMPMigrationCapabilities(virQEMUCapsPtr qemuCaps, return -1; virQEMUCapsProcessStringFlags(qemuCaps, - ARRAY_CARDINALITY(virQEMUCapsMigration), + G_N_ELEMENTS(virQEMUCapsMigration), virQEMUCapsMigration, ncaps, caps); virStringListFreeCount(caps, ncaps); @@ -4155,7 +4155,7 @@ virQEMUCapsKVMSupportsNesting(void) int rc; size_t i; - for (i = 0; i < ARRAY_CARDINALITY(kmod); i++) { + for (i = 0; i < G_N_ELEMENTS(kmod); i++) { VIR_FREE(value); rc = virFileReadValueString(&value, "/sys/module/%s/parameters/nested", kmod[i]); @@ -4513,7 +4513,7 @@ virQEMUCapsProbeQMPSchemaCapabilities(virQEMUCapsPtr qemuCaps, return -1; schemareply = NULL; - for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsQMPSchemaQueries); i++) { + for (i = 0; i < G_N_ELEMENTS(virQEMUCapsQMPSchemaQueries); i++) { entry = virQEMUCapsQMPSchemaQueries + i; if (virQEMUQAPISchemaPathExists(entry->value, schema)) @@ -4521,7 +4521,7 @@ virQEMUCapsProbeQMPSchemaCapabilities(virQEMUCapsPtr qemuCaps, } /* probe also for basic event support */ - for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsEvents); i++) { + for (i = 0; i < G_N_ELEMENTS(virQEMUCapsEvents); i++) { entry = virQEMUCapsEvents + i; if (virQEMUQAPISchemaPathExists(entry->value, schema)) @@ -4816,7 +4816,7 @@ struct virQEMUCapsMachineTypeFilter { static const struct virQEMUCapsMachineTypeFilter virQEMUCapsMachineFilter[] = { /* { "blah", virQEMUCapsMachineBLAHFilter, - ARRAY_CARDINALITY(virQEMUCapsMachineBLAHFilter) }, */ + G_N_ELEMENTS(virQEMUCapsMachineBLAHFilter) }, */ { "", NULL, 0 }, }; @@ -4830,7 +4830,7 @@ virQEMUCapsFilterByMachineType(virQEMUCapsPtr qemuCaps, if (!machineType) return; - for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsMachineFilter); i++) { + for (i = 0; i < G_N_ELEMENTS(virQEMUCapsMachineFilter); i++) { const struct virQEMUCapsMachineTypeFilter *filter = &virQEMUCapsMachineFilter[i]; size_t j; @@ -4977,8 +4977,8 @@ virQEMUCapsCacheLookupByArch(virFileCachePtr cache, priv->microcodeVersion = virHostCPUGetMicrocodeVersion(); - for (i = 0; i < ARRAY_CARDINALITY(binaryFilters); i++) { - for (j = 0; j < ARRAY_CARDINALITY(archs); j++) { + for (i = 0; i < G_N_ELEMENTS(binaryFilters); i++) { + for (j = 0; j < G_N_ELEMENTS(archs); j++) { struct virQEMUCapsSearchData data = { .arch = archs[j], .binaryFilter = binaryFilters[i], diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index d2fc7b6f1e..c2a19689c5 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3234,7 +3234,7 @@ qemuBuildControllersCommandLine(virCommandPtr cmd, VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL, }; - for (i = 0; i < ARRAY_CARDINALITY(contOrder); i++) { + for (i = 0; i < G_N_ELEMENTS(contOrder); i++) { if (qemuBuildControllersByTypeCommandLine(cmd, def, qemuCaps, contOrder[i]) < 0) return -1; } diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 4df0ca78f5..08cd784054 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -1280,7 +1280,7 @@ virCapsPtr virQEMUDriverCreateCapabilities(virQEMUDriverPtr driver) VIR_STRDUP(sm->doi, doi) < 0) return NULL; - for (j = 0; j < ARRAY_CARDINALITY(virtTypes); j++) { + for (j = 0; j < G_N_ELEMENTS(virtTypes); j++) { lbl = qemuSecurityGetBaseLabel(sec_managers[i], virtTypes[j]); type = virDomainVirtTypeToString(virtTypes[j]); if (lbl && diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e11c0c8ea2..c638077aa8 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11712,7 +11712,7 @@ ppc64VFIODeviceIsNV2Bridge(const char *device) "ibm,nvlink-speed", "memory-region"}; size_t i; - for (i = 0; i < ARRAY_CARDINALITY(nvlink2Files); i++) { + for (i = 0; i < G_N_ELEMENTS(nvlink2Files); i++) { VIR_AUTOFREE(char *) file = NULL; if ((virAsprintf(&file, "/sys/bus/pci/devices/%s/of_node/%s", diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 59661fd6b0..52ef1874aa 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -3149,7 +3149,7 @@ static void qemuMigrationSrcIOFunc(void *arg) fds[0].events = fds[1].events = POLLIN; fds[0].revents = fds[1].revents = 0; - ret = poll(fds, ARRAY_CARDINALITY(fds), timeout); + ret = poll(fds, G_N_ELEMENTS(fds), timeout); if (ret < 0) { if (errno == EAGAIN || errno == EINTR) @@ -4395,7 +4395,7 @@ static int virConnectCredType[] = { static virConnectAuth virConnectAuthConfig = { .credtype = virConnectCredType, - .ncredtype = ARRAY_CARDINALITY(virConnectCredType), + .ncredtype = G_N_ELEMENTS(virConnectCredType), }; diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c index e296fc1927..85fa8f8de5 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -214,7 +214,7 @@ static const qemuMigrationParamType qemuMigrationParamTypes[] = { [QEMU_MIGRATION_PARAM_MAX_POSTCOPY_BANDWIDTH] = QEMU_MIGRATION_PARAM_TYPE_ULL, [QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS] = QEMU_MIGRATION_PARAM_TYPE_INT, }; -verify(ARRAY_CARDINALITY(qemuMigrationParamTypes) == QEMU_MIGRATION_PARAM_LAST); +verify(G_N_ELEMENTS(qemuMigrationParamTypes) == QEMU_MIGRATION_PARAM_LAST); virBitmapPtr @@ -226,7 +226,7 @@ qemuMigrationParamsGetAlwaysOnCaps(qemuMigrationParty party) if (!(caps = virBitmapNew(QEMU_MIGRATION_CAP_LAST))) return NULL; - for (i = 0; i < ARRAY_CARDINALITY(qemuMigrationParamsAlwaysOn); i++) { + for (i = 0; i < G_N_ELEMENTS(qemuMigrationParamsAlwaysOn); i++) { if (!(qemuMigrationParamsAlwaysOn[i].party & party)) continue; @@ -500,7 +500,7 @@ qemuMigrationParamsFromFlags(virTypedParameterPtr params, if (!(migParams = qemuMigrationParamsNew())) return NULL; - for (i = 0; i < ARRAY_CARDINALITY(qemuMigrationParamsFlagMap); i++) { + for (i = 0; i < G_N_ELEMENTS(qemuMigrationParamsFlagMap); i++) { qemuMigrationCapability cap = qemuMigrationParamsFlagMap[i].cap; if (qemuMigrationParamsFlagMap[i].party & party && @@ -511,7 +511,7 @@ qemuMigrationParamsFromFlags(virTypedParameterPtr params, } } - for (i = 0; i < ARRAY_CARDINALITY(qemuMigrationParamsTPMap); i++) { + for (i = 0; i < G_N_ELEMENTS(qemuMigrationParamsTPMap); i++) { const qemuMigrationParamsTPMapItem *item = &qemuMigrationParamsTPMap[i]; if (!(item->party & party)) @@ -590,7 +590,7 @@ qemuMigrationParamsDump(qemuMigrationParamsPtr migParams, return -1; } - for (i = 0; i < ARRAY_CARDINALITY(qemuMigrationParamsTPMap); i++) { + for (i = 0; i < G_N_ELEMENTS(qemuMigrationParamsTPMap); i++) { const qemuMigrationParamsTPMapItem *item = &qemuMigrationParamsTPMap[i]; if (!(item->party & QEMU_MIGRATION_DESTINATION)) @@ -1149,7 +1149,7 @@ qemuMigrationParamsCheck(virQEMUDriverPtr driver, } } - for (i = 0; i < ARRAY_CARDINALITY(qemuMigrationParamsAlwaysOn); i++) { + for (i = 0; i < G_N_ELEMENTS(qemuMigrationParamsAlwaysOn); i++) { cap = qemuMigrationParamsAlwaysOn[i].cap; if (qemuMigrationParamsAlwaysOn[i].party & party && diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 1e55b166fa..d3447dd2f3 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -200,7 +200,7 @@ qemuMonitorJSONIOProcessEvent(qemuMonitorPtr mon, qemuMonitorEmitEvent(mon, type, seconds, micros, details); VIR_FREE(details); - handler = bsearch(type, eventHandlers, ARRAY_CARDINALITY(eventHandlers), + handler = bsearch(type, eventHandlers, G_N_ELEMENTS(eventHandlers), sizeof(eventHandlers[0]), qemuMonitorEventCompare); if (handler) { VIR_DEBUG("handle %s handler=%p data=%p", type, diff --git a/src/qemu/qemu_qapi.c b/src/qemu/qemu_qapi.c index 5101ed6aae..2fc56dcfa4 100644 --- a/src/qemu/qemu_qapi.c +++ b/src/qemu/qemu_qapi.c @@ -357,7 +357,7 @@ virQEMUQAPISchemaTraverse(const char *baseName, if (!(metatype = virJSONValueObjectGetString(cur, "meta-type"))) return -2; - for (i = 0; i < ARRAY_CARDINALITY(traverseMetaType); i++) { + for (i = 0; i < G_N_ELEMENTS(traverseMetaType); i++) { if (STREQ(metatype, traverseMetaType[i].metatype)) return traverseMetaType[i].func(cur, ctxt); } diff --git a/src/remote/remote_daemon.c b/src/remote/remote_daemon.c index 5f50d07002..916b14dc7f 100644 --- a/src/remote/remote_daemon.c +++ b/src/remote/remote_daemon.c @@ -419,7 +419,7 @@ daemonSetupNetworking(virNetServerPtr srv, return -1; #endif /* ! WITH_IP */ - if (virSystemdGetActivation(actmap, ARRAY_CARDINALITY(actmap), &act) < 0) + if (virSystemdGetActivation(actmap, G_N_ELEMENTS(actmap), &act) < 0) return -1; #ifdef WITH_IP @@ -955,7 +955,7 @@ daemonUsage(const char *argv0, bool privileged) fprintf(stderr, "\n"); fprintf(stderr, "%s\n", _("Options:")); - for (i = 0; i < ARRAY_CARDINALITY(opthelp); i++) + for (i = 0; i < G_N_ELEMENTS(opthelp); i++) fprintf(stderr, " %-22s %s\n", opthelp[i].opts, _(opthelp[i].help)); fprintf(stderr, "\n"); diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c index cd929c36da..9153791b3c 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -1493,7 +1493,7 @@ static virConnectDomainEventGenericCallback domainEventCallbacks[] = { VIR_DOMAIN_EVENT_CALLBACK(remoteRelayDomainEventBlockThreshold), }; -verify(ARRAY_CARDINALITY(domainEventCallbacks) == VIR_DOMAIN_EVENT_ID_LAST); +verify(G_N_ELEMENTS(domainEventCallbacks) == VIR_DOMAIN_EVENT_ID_LAST); static int remoteRelayNetworkEventLifecycle(virConnectPtr conn, @@ -1536,7 +1536,7 @@ static virConnectNetworkEventGenericCallback networkEventCallbacks[] = { VIR_NETWORK_EVENT_CALLBACK(remoteRelayNetworkEventLifecycle), }; -verify(ARRAY_CARDINALITY(networkEventCallbacks) == VIR_NETWORK_EVENT_ID_LAST); +verify(G_N_ELEMENTS(networkEventCallbacks) == VIR_NETWORK_EVENT_ID_LAST); static int remoteRelayStoragePoolEventLifecycle(virConnectPtr conn, @@ -1615,7 +1615,7 @@ static virConnectStoragePoolEventGenericCallback storageEventCallbacks[] = { VIR_STORAGE_POOL_EVENT_CALLBACK(remoteRelayStoragePoolEventRefresh), }; -verify(ARRAY_CARDINALITY(storageEventCallbacks) == VIR_STORAGE_POOL_EVENT_ID_LAST); +verify(G_N_ELEMENTS(storageEventCallbacks) == VIR_STORAGE_POOL_EVENT_ID_LAST); static int remoteRelayNodeDeviceEventLifecycle(virConnectPtr conn, @@ -1694,7 +1694,7 @@ static virConnectNodeDeviceEventGenericCallback nodeDeviceEventCallbacks[] = { VIR_NODE_DEVICE_EVENT_CALLBACK(remoteRelayNodeDeviceEventUpdate), }; -verify(ARRAY_CARDINALITY(nodeDeviceEventCallbacks) == VIR_NODE_DEVICE_EVENT_ID_LAST); +verify(G_N_ELEMENTS(nodeDeviceEventCallbacks) == VIR_NODE_DEVICE_EVENT_ID_LAST); static int remoteRelaySecretEventLifecycle(virConnectPtr conn, @@ -1773,7 +1773,7 @@ static virConnectSecretEventGenericCallback secretEventCallbacks[] = { VIR_SECRET_EVENT_CALLBACK(remoteRelaySecretEventValueChanged), }; -verify(ARRAY_CARDINALITY(secretEventCallbacks) == VIR_SECRET_EVENT_ID_LAST); +verify(G_N_ELEMENTS(secretEventCallbacks) == VIR_SECRET_EVENT_ID_LAST); static void remoteRelayDomainQemuMonitorEvent(virConnectPtr conn, @@ -2176,7 +2176,7 @@ remoteDispatchProbeURI(bool readonly, }; ssize_t i; - for (i = 0; i < (ssize_t) ARRAY_CARDINALITY(drivers) && !*probeduri; i++) { + for (i = 0; i < (ssize_t) G_N_ELEMENTS(drivers) && !*probeduri; i++) { VIR_AUTOFREE(char *) daemonname = NULL; VIR_AUTOFREE(char *) daemonpath = NULL; @@ -2222,7 +2222,7 @@ remoteDispatchProbeURI(bool readonly, }; ssize_t i; - for (i = 0; i < (ssize_t) ARRAY_CARDINALITY(drivers) && !*probeduri; i++) { + for (i = 0; i < (ssize_t) G_N_ELEMENTS(drivers) && !*probeduri; i++) { VIR_AUTOFREE(char *) sockname = NULL; if (virAsprintf(&sockname, "%s/libvirt/virt%sd-%s", diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index bd4017c4dc..5251079282 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -1313,7 +1313,7 @@ doRemoteOpen(virConnectPtr conn, if (!(priv->remoteProgram = virNetClientProgramNew(REMOTE_PROGRAM, REMOTE_PROTOCOL_VERSION, remoteEvents, - ARRAY_CARDINALITY(remoteEvents), + G_N_ELEMENTS(remoteEvents), conn))) goto failed; if (!(priv->lxcProgram = virNetClientProgramNew(LXC_PROGRAM, @@ -1325,7 +1325,7 @@ doRemoteOpen(virConnectPtr conn, if (!(priv->qemuProgram = virNetClientProgramNew(QEMU_PROGRAM, QEMU_PROTOCOL_VERSION, qemuEvents, - ARRAY_CARDINALITY(qemuEvents), + G_N_ELEMENTS(qemuEvents), conn))) goto failed; @@ -6596,7 +6596,7 @@ remoteDomainOpenGraphics(virDomainPtr dom, remote_domain_open_graphics_args args; struct private_data *priv = dom->conn->privateData; int fdin[] = { fd }; - size_t fdinlen = ARRAY_CARDINALITY(fdin); + size_t fdinlen = G_N_ELEMENTS(fdin); remoteDriverLock(priv); diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl index 5d1583980e..6d9838c398 100755 --- a/src/rpc/gendispatch.pl +++ b/src/rpc/gendispatch.pl @@ -1292,7 +1292,7 @@ elsif ($mode eq "server") { print "{ $comment\n ${name},\n $arglen,\n (xdrproc_t)$argfilter,\n $retlen,\n (xdrproc_t)$retfilter,\n true,\n $priority\n},\n"; } print "};\n"; - print "size_t ${structprefix}NProcs = ARRAY_CARDINALITY(${structprefix}Procs);\n"; + print "size_t ${structprefix}NProcs = G_N_ELEMENTS(${structprefix}Procs);\n"; } # Bodies for client functions ("remote_client_bodies.h"). diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index 53d8b219ea..1d846cd131 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -368,7 +368,7 @@ virNetClientFindDefaultSshKey(const char *homedir, char **retPath) const char *keys[] = { "identity", "id_dsa", "id_ecdsa", "id_ed25519", "id_rsa" }; - for (i = 0; i < ARRAY_CARDINALITY(keys); ++i) { + for (i = 0; i < G_N_ELEMENTS(keys); ++i) { int ret = virNetClientCheckKeyExists(homedir, keys[i], retPath); if (ret != 0) return ret; @@ -939,7 +939,7 @@ int virNetClientSetTLSSession(virNetClientPtr client, ignore_value(pthread_sigmask(SIG_BLOCK, &blockedsigs, &oldmask)); repoll: - ret = poll(fds, ARRAY_CARDINALITY(fds), -1); + ret = poll(fds, G_N_ELEMENTS(fds), -1); if (ret < 0 && (errno == EAGAIN || errno == EINTR)) goto repoll; @@ -963,7 +963,7 @@ int virNetClientSetTLSSession(virNetClientPtr client, ignore_value(pthread_sigmask(SIG_BLOCK, &blockedsigs, &oldmask)); repoll2: - ret = poll(fds, ARRAY_CARDINALITY(fds), -1); + ret = poll(fds, G_N_ELEMENTS(fds), -1); if (ret < 0 && (errno == EAGAIN || errno == EINTR)) goto repoll2; @@ -1682,7 +1682,7 @@ static int virNetClientIOEventLoop(virNetClientPtr client, ignore_value(pthread_sigmask(SIG_BLOCK, &blockedsigs, &oldmask)); repoll: - ret = poll(fds, ARRAY_CARDINALITY(fds), timeout); + ret = poll(fds, G_N_ELEMENTS(fds), timeout); if (ret < 0 && (errno == EAGAIN || errno == EINTR)) goto repoll; diff --git a/src/security/security_dac.c b/src/security/security_dac.c index 0f7046ab1c..5d975f5903 100644 --- a/src/security/security_dac.c +++ b/src/security/security_dac.c @@ -1073,7 +1073,7 @@ virSecurityDACMoveImageMetadataHelper(pid_t pid G_GNUC_UNUSED, virSecurityManagerMetadataLockStatePtr state; int ret; - if (!(state = virSecurityManagerMetadataLock(data->mgr, paths, ARRAY_CARDINALITY(paths)))) + if (!(state = virSecurityManagerMetadataLock(data->mgr, paths, G_N_ELEMENTS(paths)))) return -1; ret = virSecurityMoveRememberedLabel(SECURITY_DAC_NAME, data->src, data->dst); diff --git a/src/security/security_driver.c b/src/security/security_driver.c index bd32a9c207..da3b8c1491 100644 --- a/src/security/security_driver.c +++ b/src/security/security_driver.c @@ -53,7 +53,7 @@ virSecurityDriverPtr virSecurityDriverLookup(const char *name, VIR_DEBUG("name=%s", NULLSTR(name)); - for (i = 0; i < ARRAY_CARDINALITY(security_drivers) && !drv; i++) { + for (i = 0; i < G_N_ELEMENTS(security_drivers) && !drv; i++) { virSecurityDriverPtr tmp = security_drivers[i]; if (name && diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c index d59888b228..17d39125bb 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -1974,7 +1974,7 @@ virSecuritySELinuxMoveImageMetadataHelper(pid_t pid G_GNUC_UNUSED, virSecurityManagerMetadataLockStatePtr state; int ret; - if (!(state = virSecurityManagerMetadataLock(data->mgr, paths, ARRAY_CARDINALITY(paths)))) + if (!(state = virSecurityManagerMetadataLock(data->mgr, paths, G_N_ELEMENTS(paths)))) return -1; ret = virSecurityMoveRememberedLabel(SECURITY_SELINUX_NAME, data->src, data->dst); diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 6a1aa96078..2ff34dacbd 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -519,9 +519,9 @@ valid_path(const char *path, const bool readonly) "/etc/libvirt-sandbox/services/" /* for virt-sandbox service config */ }; - const int nropaths = ARRAY_CARDINALITY(restricted); - const int nrwpaths = ARRAY_CARDINALITY(restricted_rw); - const int nopaths = ARRAY_CARDINALITY(override); + const int nropaths = G_N_ELEMENTS(restricted); + const int nrwpaths = G_N_ELEMENTS(restricted_rw); + const int nopaths = G_N_ELEMENTS(override); if (path == NULL) { vah_error(NULL, 0, _("bad pathname")); diff --git a/src/test/test_driver.c b/src/test/test_driver.c index d2a4e100bb..338d459e14 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -332,7 +332,7 @@ testBuildCapabilities(virConnectPtr conn) goto error; } - for (i = 0; i < ARRAY_CARDINALITY(guest_types); i++) { + for (i = 0; i < G_N_ELEMENTS(guest_types); i++) { if ((guest = virCapabilitiesAddGuest(caps, guest_types[i], VIR_ARCH_I686, diff --git a/src/util/virarch.c b/src/util/virarch.c index 3f5efde8e2..f41e3e86bb 100644 --- a/src/util/virarch.c +++ b/src/util/virarch.c @@ -81,7 +81,7 @@ static const struct virArchData { { "xtensaeb", 32, VIR_ARCH_BIG_ENDIAN }, }; -verify(ARRAY_CARDINALITY(virArchData) == VIR_ARCH_LAST); +verify(G_N_ELEMENTS(virArchData) == VIR_ARCH_LAST); /** diff --git a/src/util/viraudit.c b/src/util/viraudit.c index 23bc44734e..b54ae1283e 100644 --- a/src/util/viraudit.c +++ b/src/util/viraudit.c @@ -133,7 +133,7 @@ void virAuditSend(virLogSourcePtr source, [VIR_AUDIT_RECORD_RESOURCE] = AUDIT_VIRT_RESOURCE, }; - if (type >= ARRAY_CARDINALITY(record_types) || record_types[type] == 0) + if (type >= G_N_ELEMENTS(record_types) || record_types[type] == 0) VIR_WARN("Unknown audit record type %d", type); else if (audit_log_user_message(auditfd, record_types[type], str, NULL, clientaddr, clienttty, success) < 0) { diff --git a/src/util/vircgroupv1.c b/src/util/vircgroupv1.c index 23908d769d..dcf8e3383b 100644 --- a/src/util/vircgroupv1.c +++ b/src/util/vircgroupv1.c @@ -555,7 +555,7 @@ virCgroupV1CpuSetInherit(virCgroupPtr parent, }; VIR_DEBUG("Setting up inheritance %s -> %s", parent->path, group->path); - for (i = 0; i < ARRAY_CARDINALITY(inherit_values); i++) { + for (i = 0; i < G_N_ELEMENTS(inherit_values); i++) { VIR_AUTOFREE(char *) value = NULL; if (virCgroupGetValueStr(parent, @@ -1065,7 +1065,7 @@ virCgroupV1GetBlkioIoServiced(virCgroupPtr group, return -1; /* sum up all entries of the same kind, from all devices */ - for (i = 0; i < ARRAY_CARDINALITY(value_names); i++) { + for (i = 0; i < G_N_ELEMENTS(value_names); i++) { p1 = str1; p2 = str2; @@ -1171,7 +1171,7 @@ virCgroupV1GetBlkioIoDeviceServiced(virCgroupPtr group, return -1; } - for (i = 0; i < ARRAY_CARDINALITY(value_names); i++) { + for (i = 0; i < G_N_ELEMENTS(value_names); i++) { if (!(p1 = strstr(p1, value_names[i]))) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Cannot find byte %sstats for block device '%s'"), diff --git a/src/util/vircgroupv2.c b/src/util/vircgroupv2.c index ce8851f800..5d940b0209 100644 --- a/src/util/vircgroupv2.c +++ b/src/util/vircgroupv2.c @@ -730,7 +730,7 @@ virCgroupV2GetBlkioIoServiced(virCgroupPtr group, } /* sum up all entries of the same kind, from all devices */ - for (i = 0; i < ARRAY_CARDINALITY(value_names); i++) { + for (i = 0; i < G_N_ELEMENTS(value_names); i++) { p1 = str1; while ((p1 = strstr(p1, value_names[i]))) { @@ -799,7 +799,7 @@ virCgroupV2GetBlkioIoDeviceServiced(virCgroupPtr group, return -1; } - for (i = 0; i < ARRAY_CARDINALITY(value_names); i++) { + for (i = 0; i < G_N_ELEMENTS(value_names); i++) { if (!(p1 = strstr(p1, value_names[i]))) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Cannot find byte '%s' stats for block device '%s'"), diff --git a/src/util/vircrypto.c b/src/util/vircrypto.c index 3a3ea227a5..87fabfbba1 100644 --- a/src/util/vircrypto.c +++ b/src/util/vircrypto.c @@ -47,7 +47,7 @@ struct virHashInfo { }; -verify(ARRAY_CARDINALITY(hashinfo) == VIR_CRYPTO_HASH_LAST); +verify(G_N_ELEMENTS(hashinfo) == VIR_CRYPTO_HASH_LAST); ssize_t virCryptoHashBuf(virCryptoHash hash, diff --git a/src/util/virdbus.c b/src/util/virdbus.c index 1e59294fc3..f423305e11 100644 --- a/src/util/virdbus.c +++ b/src/util/virdbus.c @@ -305,7 +305,7 @@ static const char virDBusBasicTypes[] = { static bool virDBusIsBasicType(char c) { - return !!memchr(virDBusBasicTypes, c, ARRAY_CARDINALITY(virDBusBasicTypes)); + return !!memchr(virDBusBasicTypes, c, G_N_ELEMENTS(virDBusBasicTypes)); } /* diff --git a/src/util/virenum.h b/src/util/virenum.h index ab443aa528..d68421b203 100644 --- a/src/util/virenum.h +++ b/src/util/virenum.h @@ -34,15 +34,15 @@ virEnumToString(const char * const *types, static const char *const name ## TypeList[] = { __VA_ARGS__ }; \ const char *name ## TypeToString(int type) { \ return virEnumToString(name ## TypeList, \ - ARRAY_CARDINALITY(name ## TypeList), \ + G_N_ELEMENTS(name ## TypeList), \ type); \ } \ int name ## TypeFromString(const char *type) { \ return virEnumFromString(name ## TypeList, \ - ARRAY_CARDINALITY(name ## TypeList), \ + G_N_ELEMENTS(name ## TypeList), \ type); \ } \ - verify(ARRAY_CARDINALITY(name ## TypeList) == lastVal) + verify(G_N_ELEMENTS(name ## TypeList) == lastVal) #define VIR_ENUM_DECL(name) \ const char *name ## TypeToString(int type); \ diff --git a/src/util/virfirewall.c b/src/util/virfirewall.c index f6344b631c..0d4bfae8f8 100644 --- a/src/util/virfirewall.c +++ b/src/util/virfirewall.c @@ -178,7 +178,7 @@ virFirewallValidateBackend(virFirewallBackend backend) }; size_t i; - for (i = 0; i < ARRAY_CARDINALITY(commands); i++) { + for (i = 0; i < G_N_ELEMENTS(commands); i++) { if (!virFileIsExecutable(commands[i])) { virReportSystemError(errno, _("direct firewall backend requested, but %s is not available"), diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c index 952766dc3a..d544d36c61 100644 --- a/src/util/virhostcpu.c +++ b/src/util/virhostcpu.c @@ -168,7 +168,7 @@ virHostCPUGetStatsFreeBSD(int cpuNum, } param->value = 0; - for (j = 0; j < ARRAY_CARDINALITY(cpu_map[i].idx); j++) + for (j = 0; j < G_N_ELEMENTS(cpu_map[i].idx); j++) param->value += cpu_times[offset + cpu_map[i].idx[j]] * TICK_TO_NSEC; } diff --git a/src/util/viriptables.c b/src/util/viriptables.c index 0e3c0ad73a..e1b876d36c 100644 --- a/src/util/viriptables.c +++ b/src/util/viriptables.c @@ -144,11 +144,11 @@ iptablesSetupPrivateChains(virFirewallLayer layer) bool changed = false; iptablesGlobalChainData data[] = { { layer, "filter", - filter_chains, ARRAY_CARDINALITY(filter_chains), &changed }, + filter_chains, G_N_ELEMENTS(filter_chains), &changed }, { layer, "nat", - natmangle_chains, ARRAY_CARDINALITY(natmangle_chains), &changed }, + natmangle_chains, G_N_ELEMENTS(natmangle_chains), &changed }, { layer, "mangle", - natmangle_chains, ARRAY_CARDINALITY(natmangle_chains), &changed }, + natmangle_chains, G_N_ELEMENTS(natmangle_chains), &changed }, }; size_t i; @@ -156,7 +156,7 @@ iptablesSetupPrivateChains(virFirewallLayer layer) virFirewallStartTransaction(fw, 0); - for (i = 0; i < ARRAY_CARDINALITY(data); i++) + for (i = 0; i < G_N_ELEMENTS(data); i++) virFirewallAddRuleFull(fw, data[i].layer, false, iptablesPrivateChainCreate, &(data[i]), "--table", data[i].table, diff --git a/src/util/virkeycode.c b/src/util/virkeycode.c index 336443e01d..1a0a94e3ab 100644 --- a/src/util/virkeycode.c +++ b/src/util/virkeycode.c @@ -54,19 +54,19 @@ static const unsigned short *virKeymapValues[VIR_KEYCODE_SET_LAST] = { [VIR_KEYCODE_SET_QNUM] = virKeyCodeTable_qnum, }; -#define VIR_KEYMAP_ENTRY_MAX ARRAY_CARDINALITY(virKeyCodeTable_linux) - -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_atset1)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_atset2)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_atset3)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_osx)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_xtkbd)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_usb)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_win32)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_qnum)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyNameTable_linux)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyNameTable_osx)); -verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyNameTable_win32)); +#define VIR_KEYMAP_ENTRY_MAX G_N_ELEMENTS(virKeyCodeTable_linux) + +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyCodeTable_atset1)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyCodeTable_atset2)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyCodeTable_atset3)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyCodeTable_osx)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyCodeTable_xtkbd)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyCodeTable_usb)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyCodeTable_win32)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyCodeTable_qnum)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyNameTable_linux)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyNameTable_osx)); +verify(VIR_KEYMAP_ENTRY_MAX == G_N_ELEMENTS(virKeyNameTable_win32)); VIR_ENUM_IMPL(virKeycodeSet, VIR_KEYCODE_SET_LAST, diff --git a/src/util/virlog.c b/src/util/virlog.c index 4414a8fa63..5881a59cc5 100644 --- a/src/util/virlog.c +++ b/src/util/virlog.c @@ -702,7 +702,7 @@ virLogStackTraceToFd(int fd) const char *msg = "Stack trace not available on this platform\n"; #define STRIP_DEPTH 3 - size = backtrace(array, ARRAY_CARDINALITY(array)); + size = backtrace(array, G_N_ELEMENTS(array)); if (size) { backtrace_symbols_fd(array + STRIP_DEPTH, size - STRIP_DEPTH, fd); ignore_value(safewrite(fd, "\n", 1)); @@ -1004,9 +1004,9 @@ virLogOutputToJournald(virLogSourcePtr source, struct journalState state; state.iov = iov; - state.iov_end = iov + ARRAY_CARDINALITY(iov); + state.iov_end = iov + G_N_ELEMENTS(iov); state.bufs = iov_bufs; - state.bufs_end = iov_bufs + ARRAY_CARDINALITY(iov_bufs); + state.bufs_end = iov_bufs + G_N_ELEMENTS(iov_bufs); journalAddString(&state, "MESSAGE", rawstr); journalAddInt(&state, "PRIORITY", diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index d3f1595ae4..894ae86a16 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -3050,7 +3050,7 @@ virNetDevGetEthtoolFeatures(virBitmapPtr bitmap, }; # endif - for (i = 0; i < ARRAY_CARDINALITY(ethtool_cmds); i++) { + for (i = 0; i < G_N_ELEMENTS(ethtool_cmds); i++) { cmd.cmd = ethtool_cmds[i].cmd; if (virNetDevFeatureAvailable(fd, ifr, &cmd)) ignore_value(virBitmapSetBit(bitmap, ethtool_cmds[i].feat)); @@ -3059,7 +3059,7 @@ virNetDevGetEthtoolFeatures(virBitmapPtr bitmap, # if HAVE_DECL_ETHTOOL_GFLAGS cmd.cmd = ETHTOOL_GFLAGS; if (virNetDevFeatureAvailable(fd, ifr, &cmd)) { - for (i = 0; i < ARRAY_CARDINALITY(flags); i++) { + for (i = 0; i < G_N_ELEMENTS(flags); i++) { if (cmd.data & flags[i].cmd) ignore_value(virBitmapSetBit(bitmap, flags[i].feat)); } diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c index 0b1f3262f4..f07eb2f2e2 100644 --- a/src/util/virnetlink.c +++ b/src/util/virnetlink.c @@ -253,7 +253,7 @@ virNetlinkSendRequest(struct nl_msg *nl_msg, uint32_t src_pid, fds[0].fd = fd; fds[0].events = POLLIN; - n = poll(fds, ARRAY_CARDINALITY(fds), NETLINK_ACK_TIMEOUT_S); + n = poll(fds, G_N_ELEMENTS(fds), NETLINK_ACK_TIMEOUT_S); if (n <= 0) { if (n < 0) virReportSystemError(errno, "%s", diff --git a/src/util/virperf.c b/src/util/virperf.c index 7714d57f6b..e334d415e4 100644 --- a/src/util/virperf.c +++ b/src/util/virperf.c @@ -168,7 +168,7 @@ static struct virPerfEventAttr attrs[] = { .attrConfig = PERF_COUNT_SW_EMULATION_FAULTS }, }; -verify(ARRAY_CARDINALITY(attrs) == VIR_PERF_EVENT_LAST); +verify(G_N_ELEMENTS(attrs) == VIR_PERF_EVENT_LAST); typedef struct virPerfEventAttr *virPerfEventAttrPtr; diff --git a/src/util/virprocess.c b/src/util/virprocess.c index c91301e525..e8d4ba08b4 100644 --- a/src/util/virprocess.c +++ b/src/util/virprocess.c @@ -628,7 +628,7 @@ int virProcessGetNamespaces(pid_t pid, *nfdlist = 0; *fdlist = NULL; - for (i = 0; i < ARRAY_CARDINALITY(ns); i++) { + for (i = 0; i < G_N_ELEMENTS(ns); i++) { int fd; VIR_AUTOFREE(char *) nsfile = NULL; diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index ef6d7f3ba5..6c2693fec9 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -387,7 +387,7 @@ static struct FileTypeInfo const fileTypeInfo[] = { 4+4+4, 8, 512, NULL, vmdk4GetBackingStore, NULL }, }; -verify(ARRAY_CARDINALITY(fileTypeInfo) == VIR_STORAGE_FILE_LAST); +verify(G_N_ELEMENTS(fileTypeInfo) == VIR_STORAGE_FILE_LAST); /* qcow2 compatible features in the order they appear on-disk */ @@ -401,7 +401,7 @@ enum qcow2CompatibleFeature { static const int qcow2CompatibleFeatureArray[] = { VIR_STORAGE_FILE_FEATURE_LAZY_REFCOUNTS, }; -verify(ARRAY_CARDINALITY(qcow2CompatibleFeatureArray) == +verify(G_N_ELEMENTS(qcow2CompatibleFeatureArray) == QCOW2_COMPATIBLE_FEATURE_LAST); static int @@ -3640,7 +3640,7 @@ virStorageSourceParseBackingJSONInternal(virStorageSourcePtr src, return -1; } - for (i = 0; i < ARRAY_CARDINALITY(jsonParsers); i++) { + for (i = 0; i < G_N_ELEMENTS(jsonParsers); i++) { if (STREQ(drvname, jsonParsers[i].drvname)) return jsonParsers[i].func(src, file, jsonParsers[i].opaque); } diff --git a/src/util/virtpm.c b/src/util/virtpm.c index b5d5cb7236..26056bf503 100644 --- a/src/util/virtpm.c +++ b/src/util/virtpm.c @@ -64,7 +64,7 @@ virTPMCreateCancelPath(const char *devpath) dev = strrchr(devpath, '/'); if (dev) { dev++; - for (i = 0; i < ARRAY_CARDINALITY(prefix); i++) { + for (i = 0; i < G_N_ELEMENTS(prefix); i++) { if (virAsprintf(&path, "/sys/class/%s%s/device/cancel", prefix[i], dev) < 0) goto cleanup; @@ -290,7 +290,7 @@ virTPMEmulatorInit(void) virMutexLock(&swtpm_tools_lock); - for (i = 0; i < ARRAY_CARDINALITY(prgs); i++) { + for (i = 0; i < G_N_ELEMENTS(prgs); i++) { VIR_AUTOFREE(char *) path = NULL; bool findit = *prgs[i].path == NULL; struct stat statbuf; diff --git a/src/util/virutil.c b/src/util/virutil.c index aae07d48e6..940c6d70e1 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -386,7 +386,7 @@ int virDiskNameParse(const char *name, int *disk, int *partition) static char const* const drive_prefix[] = {"fd", "hd", "vd", "sd", "xvd", "ubd"}; size_t i; - for (i = 0; i < ARRAY_CARDINALITY(drive_prefix); i++) { + for (i = 0; i < G_N_ELEMENTS(drive_prefix); i++) { if (STRPREFIX(name, drive_prefix[i])) { ptr = name + strlen(drive_prefix[i]); break; @@ -1108,7 +1108,7 @@ virGetWin32DirectoryRoot(char **path) *path = NULL; - if (GetWindowsDirectory(windowsdir, ARRAY_CARDINALITY(windowsdir))) { + if (GetWindowsDirectory(windowsdir, G_N_ELEMENTS(windowsdir))) { const char *tmp; /* Usually X:\Windows, but in terminal server environments * might be an UNC path, AFAIK. diff --git a/src/vbox/vbox_XPCOMCGlue.c b/src/vbox/vbox_XPCOMCGlue.c index 72ae49b6b2..9310cace3e 100644 --- a/src/vbox/vbox_XPCOMCGlue.c +++ b/src/vbox/vbox_XPCOMCGlue.c @@ -205,7 +205,7 @@ VBoxCGlueInit(unsigned int *version) } /* Try the known locations. */ - for (i = 0; i < ARRAY_CARDINALITY(knownDirs); ++i) { + for (i = 0; i < G_N_ELEMENTS(knownDirs); ++i) { if (tryLoadOne(knownDirs[i], true, true, version) >= 0) return 0; } diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index 08fc84e002..7243453307 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -182,7 +182,7 @@ vmwareConnectOpen(virConnectPtr conn, * the VMware hypervisor. We look this up first since we use it * for auto detection of the backend */ - for (i = 0; i < ARRAY_CARDINALITY(vmrun_candidates); i++) { + for (i = 0; i < G_N_ELEMENTS(vmrun_candidates); i++) { vmrun = virFindFileInPath(vmrun_candidates[i]); if (vmrun == NULL) continue; diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index c5fe59376e..917acdae57 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -122,11 +122,11 @@ vzBuildCapabilities(void) if (virCapabilitiesInitCaches(caps) < 0) goto error; - verify(ARRAY_CARDINALITY(archs) == ARRAY_CARDINALITY(emulators)); + verify(G_N_ELEMENTS(archs) == G_N_ELEMENTS(emulators)); - for (i = 0; i < ARRAY_CARDINALITY(ostypes); i++) - for (j = 0; j < ARRAY_CARDINALITY(archs); j++) - for (k = 0; k < ARRAY_CARDINALITY(emulators); k++) + for (i = 0; i < G_N_ELEMENTS(ostypes); i++) + for (j = 0; j < G_N_ELEMENTS(archs); j++) + for (k = 0; k < G_N_ELEMENTS(emulators); k++) if (vzCapsAddGuestDomain(caps, ostypes[i], archs[j], emulators[k], virt_types[k]) < 0) goto error; diff --git a/tests/commandhelper.c b/tests/commandhelper.c index 872564b144..77cbcd4680 100644 --- a/tests/commandhelper.c +++ b/tests/commandhelper.c @@ -219,7 +219,7 @@ int main(int argc, char **argv) { ret = EXIT_SUCCESS; cleanup: - for (i = 0; i < ARRAY_CARDINALITY(buffers); i++) + for (i = 0; i < G_N_ELEMENTS(buffers); i++) free(buffers[i]); fclose(log); free(newenv); diff --git a/tests/esxutilstest.c b/tests/esxutilstest.c index 49a159a2be..2e2020006e 100644 --- a/tests/esxutilstest.c +++ b/tests/esxutilstest.c @@ -41,7 +41,7 @@ testParseDatastorePath(const void *data G_GNUC_UNUSED) char *directoryName = NULL; char *directoryAndFileName = NULL; - for (i = 0; i < ARRAY_CARDINALITY(paths); ++i) { + for (i = 0; i < G_N_ELEMENTS(paths); ++i) { VIR_FREE(datastoreName); VIR_FREE(directoryName); VIR_FREE(directoryAndFileName); @@ -127,7 +127,7 @@ testConvertDateTimeToCalendarTime(const void *data G_GNUC_UNUSED) esxVI_DateTime dateTime; long long calendarTime; - for (i = 0; i < ARRAY_CARDINALITY(times); ++i) { + for (i = 0; i < G_N_ELEMENTS(times); ++i) { dateTime.value = (char *)times[i].dateTime; if (esxVI_DateTime_ConvertToCalendarTime(&dateTime, @@ -177,7 +177,7 @@ testEscapeDatastoreItem(const void *data G_GNUC_UNUSED) size_t i; char *escaped = NULL; - for (i = 0; i < ARRAY_CARDINALITY(datastoreItems); ++i) { + for (i = 0; i < G_N_ELEMENTS(datastoreItems); ++i) { VIR_FREE(escaped); escaped = esxUtil_EscapeDatastoreItem(datastoreItems[i].string); @@ -217,7 +217,7 @@ testConvertWindows1252ToUTF8(const void *data G_GNUC_UNUSED) size_t i; char *utf8 = NULL; - for (i = 0; i < ARRAY_CARDINALITY(windows1252ToUTF8); ++i) { + for (i = 0; i < G_N_ELEMENTS(windows1252ToUTF8); ++i) { VIR_FREE(utf8); utf8 = virVMXConvertToUTF8("Windows-1252", diff --git a/tests/nwfilterxml2firewalltest.c b/tests/nwfilterxml2firewalltest.c index bea267f0fc..bef3790da2 100644 --- a/tests/nwfilterxml2firewalltest.c +++ b/tests/nwfilterxml2firewalltest.c @@ -313,7 +313,7 @@ static void testRemoveCommonRules(char *rules) size_t i; char *offset = rules; - for (i = 0; i < ARRAY_CARDINALITY(commonRules); i++) { + for (i = 0; i < G_N_ELEMENTS(commonRules); i++) { char *tmp = strstr(offset, commonRules[i]); size_t len = strlen(commonRules[i]); if (tmp) { diff --git a/tests/openvzutilstest.c b/tests/openvzutilstest.c index b5e23d4d8d..1fcd4d2caa 100644 --- a/tests/openvzutilstest.c +++ b/tests/openvzutilstest.c @@ -43,7 +43,7 @@ testReadConfigParam(const void *data G_GNUC_UNUSED) if (virAsprintf(&conf, "%s/openvzutilstest.conf", abs_srcdir) < 0) return -1; - for (i = 0; i < ARRAY_CARDINALITY(configParams); ++i) { + for (i = 0; i < G_N_ELEMENTS(configParams); ++i) { if (openvzReadConfigParam(conf, configParams[i].param, &value) != configParams[i].ret) { goto cleanup; diff --git a/tests/qemufirmwaretest.c b/tests/qemufirmwaretest.c index 14710b11f3..e4d867c1b2 100644 --- a/tests/qemufirmwaretest.c +++ b/tests/qemufirmwaretest.c @@ -68,7 +68,7 @@ testFWPrecedence(const void *opaque G_GNUC_UNUSED) PREFIX "/share/qemu/firmware/61-ovmf.json", PREFIX "/share/qemu/firmware/70-aavmf.json", }; - const size_t nexpected = ARRAY_CARDINALITY(expected); + const size_t nexpected = G_N_ELEMENTS(expected); if (VIR_STRDUP(fakehome, abs_srcdir "/qemufirmwaredata/home/user/.config") < 0) return -1; @@ -236,7 +236,7 @@ mymain(void) do { \ unsigned int interfaces[] = {__VA_ARGS__}; \ struct supportedData data = {machine, arch, secure, fwlist, \ - interfaces, ARRAY_CARDINALITY(interfaces)}; \ + interfaces, G_N_ELEMENTS(interfaces)}; \ if (virTestRun("QEMU FW SUPPORTED " machine " " #arch, \ testSupportedFW, &data) < 0) \ ret = -1; \ diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 8179e802c1..1248db59f2 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -2320,7 +2320,7 @@ testQemuMonitorJSONqemuMonitorJSONSendKey(const void *opaque) return -1; if (qemuMonitorJSONSendKey(qemuMonitorTestGetMonitor(test), - 0, keycodes, ARRAY_CARDINALITY(keycodes)) < 0) + 0, keycodes, G_N_ELEMENTS(keycodes)) < 0) return -1; return 0; @@ -2349,7 +2349,7 @@ testQemuMonitorJSONqemuMonitorJSONSendKeyHoldtime(const void *opaque) if (qemuMonitorJSONSendKey(qemuMonitorTestGetMonitor(test), 31337, keycodes, - ARRAY_CARDINALITY(keycodes)) < 0) + G_N_ELEMENTS(keycodes)) < 0) return -1; return 0; diff --git a/tests/qemuvhostusertest.c b/tests/qemuvhostusertest.c index 691c94b8fa..b5a7d9bbd2 100644 --- a/tests/qemuvhostusertest.c +++ b/tests/qemuvhostusertest.c @@ -66,7 +66,7 @@ testVUPrecedence(const void *opaque G_GNUC_UNUSED) SYSCONFDIR "/qemu/vhost-user/40-gpu.json", PREFIX "/share/qemu/vhost-user/60-gpu.json", }; - const size_t nexpected = ARRAY_CARDINALITY(expected); + const size_t nexpected = G_N_ELEMENTS(expected); if (VIR_STRDUP(fakehome, abs_srcdir "/qemuvhostuserdata/home/user/.config") < 0) return -1; diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c index 4c114212e9..cc9a3ccbff 100644 --- a/tests/qemuxml2argvmock.c +++ b/tests/qemuxml2argvmock.c @@ -214,7 +214,7 @@ virCommandPassFD(virCommandPtr cmd, { size_t i; - for (i = 0; i < ARRAY_CARDINALITY(testCommandPassSafeFDs); i++) { + for (i = 0; i < G_N_ELEMENTS(testCommandPassSafeFDs); i++) { if (testCommandPassSafeFDs[i] == fd) { if (!real_virCommandPassFD) VIR_MOCK_REAL_INIT(virCommandPassFD); diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index a84ea0954d..5212ce50bd 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -316,43 +316,43 @@ testAddCPUModels(virQEMUCapsPtr caps, bool skipLegacy) if (ARCH_IS_X86(arch)) { if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, x86Models, - ARRAY_CARDINALITY(x86Models), + G_N_ELEMENTS(x86Models), VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0 || virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, x86Models, - ARRAY_CARDINALITY(x86Models), + G_N_ELEMENTS(x86Models), VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; if (!skipLegacy) { if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, x86LegacyModels, - ARRAY_CARDINALITY(x86LegacyModels), + G_N_ELEMENTS(x86LegacyModels), VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0 || virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, x86LegacyModels, - ARRAY_CARDINALITY(x86LegacyModels), + G_N_ELEMENTS(x86LegacyModels), VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; } } else if (ARCH_IS_ARM(arch)) { if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, armModels, - ARRAY_CARDINALITY(armModels), + G_N_ELEMENTS(armModels), VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0 || virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, armModels, - ARRAY_CARDINALITY(armModels), + G_N_ELEMENTS(armModels), VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; } else if (ARCH_IS_PPC64(arch)) { if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, ppc64Models, - ARRAY_CARDINALITY(ppc64Models), + G_N_ELEMENTS(ppc64Models), VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0 || virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, ppc64Models, - ARRAY_CARDINALITY(ppc64Models), + G_N_ELEMENTS(ppc64Models), VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; } else if (ARCH_IS_S390(arch)) { if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, s390xModels, - ARRAY_CARDINALITY(s390xModels), + G_N_ELEMENTS(s390xModels), VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; } diff --git a/tests/testutils.c b/tests/testutils.c index 80b7b083ff..8997274621 100644 --- a/tests/testutils.c +++ b/tests/testutils.c @@ -1193,7 +1193,7 @@ virTestCounterReset(const char *prefix) const char *virTestCounterNext(void) { - size_t len = ARRAY_CARDINALITY(virtTestCounterStr); + size_t len = G_N_ELEMENTS(virtTestCounterStr); /* calculate length of the rest of the string */ len -= (virtTestCounterPrefixEndOffset - virtTestCounterStr); diff --git a/tests/testutilshostcpus.h b/tests/testutilshostcpus.h index a8c34cfc4a..a54b181c09 100644 --- a/tests/testutilshostcpus.h +++ b/tests/testutilshostcpus.h @@ -43,8 +43,8 @@ static virCPUDef cpuDefaultData = { .sockets = 1, .cores = 2, .threads = 1, - .nfeatures = ARRAY_CARDINALITY(cpuDefaultFeatures), - .nfeatures_max = ARRAY_CARDINALITY(cpuDefaultFeatures), + .nfeatures = G_N_ELEMENTS(cpuDefaultFeatures), + .nfeatures_max = G_N_ELEMENTS(cpuDefaultFeatures), .features = cpuDefaultFeatures, }; @@ -82,8 +82,8 @@ static virCPUDef cpuHaswellData = { .sockets = 1, .cores = 2, .threads = 2, - .nfeatures = ARRAY_CARDINALITY(cpuHaswellFeatures), - .nfeatures_max = ARRAY_CARDINALITY(cpuHaswellFeatures), + .nfeatures = G_N_ELEMENTS(cpuHaswellFeatures), + .nfeatures_max = G_N_ELEMENTS(cpuHaswellFeatures), .features = cpuHaswellFeatures, }; diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 265107fb5e..68a0b15cd0 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -53,11 +53,11 @@ static virCapsGuestMachinePtr *testQemuAllocMachines(int *nmachines) }; machines = virCapabilitiesAllocMachines(x86_machines, - ARRAY_CARDINALITY(x86_machines)); + G_N_ELEMENTS(x86_machines)); if (machines == NULL) return NULL; - *nmachines = ARRAY_CARDINALITY(x86_machines); + *nmachines = G_N_ELEMENTS(x86_machines); return machines; } @@ -78,7 +78,7 @@ static virCapsGuestMachinePtr *testQemuAllocNewerMachines(int *nmachines) return NULL; machines = virCapabilitiesAllocMachines(x86_machines, - ARRAY_CARDINALITY(x86_machines)); + G_N_ELEMENTS(x86_machines)); if (machines == NULL) { VIR_FREE(canonical); return NULL; @@ -86,7 +86,7 @@ static virCapsGuestMachinePtr *testQemuAllocNewerMachines(int *nmachines) machines[1]->canonical = canonical; - *nmachines = ARRAY_CARDINALITY(x86_machines); + *nmachines = G_N_ELEMENTS(x86_machines); return machines; } @@ -304,7 +304,7 @@ static int testQemuAddRISCV32Guest(virCapsPtr caps) "sifive_e", "virt", "sifive_u" }; - static const int nmachines = ARRAY_CARDINALITY(names); + static const int nmachines = G_N_ELEMENTS(names); virCapsGuestMachinePtr *machines = NULL; virCapsGuestPtr guest; @@ -335,7 +335,7 @@ static int testQemuAddRISCV64Guest(virCapsPtr caps) "sifive_e", "virt", "sifive_u" }; - static const int nmachines = ARRAY_CARDINALITY(names); + static const int nmachines = G_N_ELEMENTS(names); virCapsGuestMachinePtr *machines = NULL; virCapsGuestPtr guest; @@ -367,14 +367,14 @@ static int testQemuAddS390Guest(virCapsPtr caps) virCapsGuestPtr guest; machines = virCapabilitiesAllocMachines(s390_machines, - ARRAY_CARDINALITY(s390_machines)); + G_N_ELEMENTS(s390_machines)); if (!machines) goto error; guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_S390X, QEMUBinList[TEST_UTILS_QEMU_BIN_S390X], NULL, - ARRAY_CARDINALITY(s390_machines), + G_N_ELEMENTS(s390_machines), machines); if (!guest) goto error; @@ -388,7 +388,7 @@ static int testQemuAddS390Guest(virCapsPtr caps) return 0; error: - virCapabilitiesFreeMachines(machines, ARRAY_CARDINALITY(s390_machines)); + virCapabilitiesFreeMachines(machines, G_N_ELEMENTS(s390_machines)); return -1; } @@ -399,14 +399,14 @@ static int testQemuAddArm6Guest(virCapsPtr caps) virCapsGuestPtr guest; capsmachines = virCapabilitiesAllocMachines(machines, - ARRAY_CARDINALITY(machines)); + G_N_ELEMENTS(machines)); if (!capsmachines) goto error; guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_ARMV6L, QEMUBinList[TEST_UTILS_QEMU_BIN_ARM], NULL, - ARRAY_CARDINALITY(machines), + G_N_ELEMENTS(machines), capsmachines); if (!guest) goto error; @@ -420,7 +420,7 @@ static int testQemuAddArm6Guest(virCapsPtr caps) return 0; error: - virCapabilitiesFreeMachines(capsmachines, ARRAY_CARDINALITY(machines)); + virCapabilitiesFreeMachines(capsmachines, G_N_ELEMENTS(machines)); return -1; } @@ -433,14 +433,14 @@ static int testQemuAddArm7Guest(virCapsPtr caps) virCapsGuestPtr guest; capsmachines = virCapabilitiesAllocMachines(machines, - ARRAY_CARDINALITY(machines)); + G_N_ELEMENTS(machines)); if (!capsmachines) goto error; guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_ARMV7L, QEMUBinList[TEST_UTILS_QEMU_BIN_ARM], NULL, - ARRAY_CARDINALITY(machines), + G_N_ELEMENTS(machines), capsmachines); if (!guest) goto error; @@ -454,7 +454,7 @@ static int testQemuAddArm7Guest(virCapsPtr caps) return 0; error: - virCapabilitiesFreeMachines(capsmachines, ARRAY_CARDINALITY(machines)); + virCapabilitiesFreeMachines(capsmachines, G_N_ELEMENTS(machines)); return -1; } @@ -465,14 +465,14 @@ static int testQemuAddAARCH64Guest(virCapsPtr caps) virCapsGuestPtr guest; capsmachines = virCapabilitiesAllocMachines(machines, - ARRAY_CARDINALITY(machines)); + G_N_ELEMENTS(machines)); if (!capsmachines) goto error; guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_AARCH64, QEMUBinList[TEST_UTILS_QEMU_BIN_AARCH64], NULL, - ARRAY_CARDINALITY(machines), + G_N_ELEMENTS(machines), capsmachines); if (!guest) goto error; @@ -486,7 +486,7 @@ static int testQemuAddAARCH64Guest(virCapsPtr caps) return 0; error: - virCapabilitiesFreeMachines(capsmachines, ARRAY_CARDINALITY(machines)); + virCapabilitiesFreeMachines(capsmachines, G_N_ELEMENTS(machines)); return -1; } @@ -669,7 +669,7 @@ int qemuTestCapsCacheInsert(virFileCachePtr cache, return -ENOMEM; } - for (i = 0; i < ARRAY_CARDINALITY(QEMUBinList); i++) { + for (i = 0; i < G_N_ELEMENTS(QEMUBinList); i++) { virObjectRef(tmpCaps); if (virFileCacheInsertData(cache, QEMUBinList[i], tmpCaps) < 0) { virObjectUnref(tmpCaps); @@ -884,7 +884,7 @@ testQemuGetLatestCaps(void) VIR_TEST_VERBOSE(""); - for (i = 0; i < ARRAY_CARDINALITY(archs); ++i) { + for (i = 0; i < G_N_ELEMENTS(archs); ++i) { char *cap = testQemuGetLatestCapsForArch(archs[i], "xml"); if (!cap || virHashAddEntry(capslatest, archs[i], cap) < 0) diff --git a/tests/testutilsxen.c b/tests/testutilsxen.c index 2c347a7f3f..314d96abe8 100644 --- a/tests/testutilsxen.c +++ b/tests/testutilsxen.c @@ -29,7 +29,7 @@ testXLInitCaps(void) caps->host.cpu = virCPUDefCopy(&cpuDefaultData); - nmachines = ARRAY_CARDINALITY(x86_machines); + nmachines = G_N_ELEMENTS(x86_machines); if ((machines = virCapabilitiesAllocMachines(x86_machines, nmachines)) == NULL) goto cleanup; if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, @@ -42,7 +42,7 @@ testXLInitCaps(void) if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_XEN, NULL, NULL, 0, NULL) == NULL) goto cleanup; - nmachines = ARRAY_CARDINALITY(xen_machines); + nmachines = G_N_ELEMENTS(xen_machines); if ((machines = virCapabilitiesAllocMachines(xen_machines, nmachines)) == NULL) goto cleanup; @@ -57,7 +57,7 @@ testXLInitCaps(void) if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_XEN, NULL, NULL, 0, NULL) == NULL) goto cleanup; - nmachines = ARRAY_CARDINALITY(pvh_machines); + nmachines = G_N_ELEMENTS(pvh_machines); if ((machines = virCapabilitiesAllocMachines(pvh_machines, nmachines)) == NULL) goto cleanup; diff --git a/tests/utiltest.c b/tests/utiltest.c index 176e6ca20a..5ae04585cb 100644 --- a/tests/utiltest.c +++ b/tests/utiltest.c @@ -44,7 +44,7 @@ testIndexToDiskName(const void *data G_GNUC_UNUSED) size_t i; char *diskName = NULL; - for (i = 0; i < ARRAY_CARDINALITY(diskNames); ++i) { + for (i = 0; i < G_N_ELEMENTS(diskNames); ++i) { VIR_FREE(diskName); diskName = virIndexToDiskName(i, "sd"); @@ -102,7 +102,7 @@ testDiskNameParse(const void *data G_GNUC_UNUSED) int partition; struct testDiskName *disk = NULL; - for (i = 0; i < ARRAY_CARDINALITY(diskNamesPart); ++i) { + for (i = 0; i < G_N_ELEMENTS(diskNamesPart); ++i) { disk = &diskNamesPart[i]; if (virDiskNameParse(disk->name, &idx, &partition)) return -1; @@ -120,7 +120,7 @@ testDiskNameParse(const void *data G_GNUC_UNUSED) } } - for (i = 0; i < ARRAY_CARDINALITY(diskNamesInvalid); ++i) { + for (i = 0; i < G_N_ELEMENTS(diskNamesInvalid); ++i) { if (!virDiskNameParse(diskNamesInvalid[i], &idx, &partition)) { VIR_TEST_DEBUG("Should Fail [%s]", diskNamesInvalid[i]); return -1; @@ -161,7 +161,7 @@ testParseVersionString(const void *data G_GNUC_UNUSED) size_t i; unsigned long version; - for (i = 0; i < ARRAY_CARDINALITY(versions); ++i) { + for (i = 0; i < G_N_ELEMENTS(versions); ++i) { result = virParseVersionString(versions[i].string, &version, versions[i].allowMissing); @@ -210,7 +210,7 @@ testRoundValueToPowerOfTwo(const void *data G_GNUC_UNUSED) unsigned int result; size_t i; - for (i = 0; i < ARRAY_CARDINALITY(roundData); i++) { + for (i = 0; i < G_N_ELEMENTS(roundData); i++) { result = VIR_ROUND_UP_POWER_OF_TWO(roundData[i].input); if (roundData[i].output != result) { VIR_TEST_DEBUG("\nInput number [%u]", roundData[i].input); diff --git a/tests/virbitmaptest.c b/tests/virbitmaptest.c index 9fec1fcc6e..ff6b506b7d 100644 --- a/tests/virbitmaptest.c +++ b/tests/virbitmaptest.c @@ -188,7 +188,7 @@ test4(const void *data G_GNUC_UNUSED) virBitmapPtr bitmap = NULL; ssize_t i, j; - if (ARRAY_CARDINALITY(bitsPos) + ARRAY_CARDINALITY(bitsPosInv) != size) + if (G_N_ELEMENTS(bitsPos) + G_N_ELEMENTS(bitsPosInv) != size) goto error; /* 0. empty set */ @@ -243,7 +243,7 @@ test4(const void *data G_GNUC_UNUSED) j = 0; i = -1; - while (j < ARRAY_CARDINALITY(bitsPos)) { + while (j < G_N_ELEMENTS(bitsPos)) { i = virBitmapNextSetBit(bitmap, i); if (i != bitsPos[j++]) goto error; @@ -260,7 +260,7 @@ test4(const void *data G_GNUC_UNUSED) j = 0; i = -1; - while (j < ARRAY_CARDINALITY(bitsPosInv)) { + while (j < G_N_ELEMENTS(bitsPosInv)) { i = virBitmapNextClearBit(bitmap, i); if (i != bitsPosInv[j++]) goto error; @@ -680,7 +680,7 @@ test13(const void *opaque G_GNUC_UNUSED) size_t i = 0; int ret = -1; - for (i = 0; i < ARRAY_CARDINALITY(strings); i++) { + for (i = 0; i < G_N_ELEMENTS(strings); i++) { map = virBitmapNewString(strings[i]); str = virBitmapToString(map, false, true); diff --git a/tests/vircgrouptest.c b/tests/vircgrouptest.c index ec58d71a63..cecb15ae5b 100644 --- a/tests/vircgrouptest.c +++ b/tests/vircgrouptest.c @@ -825,7 +825,7 @@ testCgroupGetMemoryStat(const void *args G_GNUC_UNUSED) "inactive_file", "unevictable" }; - unsigned long long values[ARRAY_CARDINALITY(expected_values)]; + unsigned long long values[G_N_ELEMENTS(expected_values)]; if ((rv = virCgroupNewPartition("/virtualmachines", true, (1 << VIR_CGROUP_CONTROLLER_MEMORY), @@ -842,7 +842,7 @@ testCgroupGetMemoryStat(const void *args G_GNUC_UNUSED) goto cleanup; } - for (i = 0; i < ARRAY_CARDINALITY(expected_values); i++) { + for (i = 0; i < G_N_ELEMENTS(expected_values); i++) { /* NB: virCgroupGetMemoryStat returns a KiB scaled value */ if ((expected_values[i] >> 10) != values[i]) { fprintf(stderr, @@ -879,7 +879,7 @@ static int testCgroupGetBlkioIoServiced(const void *args G_GNUC_UNUSED) "requests read", "requests written" }; - long long values[ARRAY_CARDINALITY(expected_values)]; + long long values[G_N_ELEMENTS(expected_values)]; if ((rv = virCgroupNewPartition("/virtualmachines", true, (1 << VIR_CGROUP_CONTROLLER_BLKIO), @@ -895,7 +895,7 @@ static int testCgroupGetBlkioIoServiced(const void *args G_GNUC_UNUSED) goto cleanup; } - for (i = 0; i < ARRAY_CARDINALITY(expected_values); i++) { + for (i = 0; i < G_N_ELEMENTS(expected_values); i++) { if (expected_values[i] != values[i]) { fprintf(stderr, "Wrong value for %s from virCgroupBlkioIoServiced (expected %lld)\n", @@ -934,7 +934,7 @@ static int testCgroupGetBlkioIoDeviceServiced(const void *args G_GNUC_UNUSED) "requests read", "requests written" }; - long long values[ARRAY_CARDINALITY(expected_values0)]; + long long values[G_N_ELEMENTS(expected_values0)]; if ((rv = virCgroupNewPartition("/virtualmachines", true, (1 << VIR_CGROUP_CONTROLLER_BLKIO), @@ -951,7 +951,7 @@ static int testCgroupGetBlkioIoDeviceServiced(const void *args G_GNUC_UNUSED) goto cleanup; } - for (i = 0; i < ARRAY_CARDINALITY(expected_values0); i++) { + for (i = 0; i < G_N_ELEMENTS(expected_values0); i++) { if (expected_values0[i] != values[i]) { fprintf(stderr, "Wrong value for %s from virCgroupGetBlkioIoDeviceServiced (expected %lld)\n", @@ -968,7 +968,7 @@ static int testCgroupGetBlkioIoDeviceServiced(const void *args G_GNUC_UNUSED) goto cleanup; } - for (i = 0; i < ARRAY_CARDINALITY(expected_values1); i++) { + for (i = 0; i < G_N_ELEMENTS(expected_values1); i++) { if (expected_values1[i] != values[i]) { fprintf(stderr, "Wrong value for %s from virCgroupGetBlkioIoDeviceServiced (expected %lld)\n", diff --git a/tests/virfiletest.c b/tests/virfiletest.c index cda29bb735..ed0daf8478 100644 --- a/tests/virfiletest.c +++ b/tests/virfiletest.c @@ -376,7 +376,7 @@ mymain(void) # define DO_TEST_MOUNT_SUBTREE(name, path, prefix, mounts, rev) \ do { \ struct testFileGetMountSubtreeData data = { \ - path, prefix, mounts, ARRAY_CARDINALITY(mounts), rev \ + path, prefix, mounts, G_N_ELEMENTS(mounts), rev \ }; \ if (virTestRun(name, testFileGetMountSubtree, &data) < 0) \ ret = -1; \ diff --git a/tests/virfirewalltest.c b/tests/virfirewalltest.c index 3325986b2d..824e9f46c2 100644 --- a/tests/virfirewalltest.c +++ b/tests/virfirewalltest.c @@ -991,7 +991,7 @@ testFirewallQueryCallback(virFirewallPtr fw, "--jump", "REJECT", NULL); for (i = 0; lines[i] != NULL; i++) { - if (expectedLineNum >= ARRAY_CARDINALITY(expectedLines)) { + if (expectedLineNum >= G_N_ELEMENTS(expectedLines)) { expectedLineError = true; break; } diff --git a/tests/virhashtest.c b/tests/virhashtest.c index 1e9098e0e6..3132095463 100644 --- a/tests/virhashtest.c +++ b/tests/virhashtest.c @@ -26,7 +26,7 @@ testHashInit(int size) /* entries are added in reverse order so that they will be linked in * collision list in the same order as in the uuids array */ - for (i = ARRAY_CARDINALITY(uuids) - 1; i >= 0; i--) { + for (i = G_N_ELEMENTS(uuids) - 1; i >= 0; i--) { ssize_t oldsize = virHashTableSize(hash); if (virHashAddEntry(hash, uuids[i], (void *) uuids[i]) < 0) { virHashFree(hash); @@ -39,7 +39,7 @@ testHashInit(int size) } } - for (i = 0; i < ARRAY_CARDINALITY(uuids); i++) { + for (i = 0; i < G_N_ELEMENTS(uuids); i++) { if (!virHashLookup(hash, uuids[i])) { VIR_TEST_VERBOSE("\nentry \"%s\" could not be found", uuids[i]); virHashFree(hash); @@ -98,7 +98,7 @@ testHashGrow(const void *data) if (!(hash = testHashInit(info->count))) return -1; - if (testHashCheckCount(hash, ARRAY_CARDINALITY(uuids)) < 0) + if (testHashCheckCount(hash, G_N_ELEMENTS(uuids)) < 0) goto cleanup; ret = 0; @@ -112,7 +112,7 @@ testHashGrow(const void *data) static int testHashUpdate(const void *data G_GNUC_UNUSED) { - int count = ARRAY_CARDINALITY(uuids) + ARRAY_CARDINALITY(uuids_new); + int count = G_N_ELEMENTS(uuids) + G_N_ELEMENTS(uuids_new); virHashTablePtr hash; size_t i; int ret = -1; @@ -120,7 +120,7 @@ testHashUpdate(const void *data G_GNUC_UNUSED) if (!(hash = testHashInit(0))) return -1; - for (i = 0; i < ARRAY_CARDINALITY(uuids_subset); i++) { + for (i = 0; i < G_N_ELEMENTS(uuids_subset); i++) { if (virHashUpdateEntry(hash, uuids_subset[i], (void *) 1) < 0) { VIR_TEST_VERBOSE("\nentry \"%s\" could not be updated", uuids_subset[i]); @@ -128,7 +128,7 @@ testHashUpdate(const void *data G_GNUC_UNUSED) } } - for (i = 0; i < ARRAY_CARDINALITY(uuids_new); i++) { + for (i = 0; i < G_N_ELEMENTS(uuids_new); i++) { if (virHashUpdateEntry(hash, uuids_new[i], (void *) 1) < 0) { VIR_TEST_VERBOSE("\nnew entry \"%s\" could not be updated", uuids_new[i]); @@ -150,7 +150,7 @@ testHashUpdate(const void *data G_GNUC_UNUSED) static int testHashRemove(const void *data G_GNUC_UNUSED) { - int count = ARRAY_CARDINALITY(uuids) - ARRAY_CARDINALITY(uuids_subset); + int count = G_N_ELEMENTS(uuids) - G_N_ELEMENTS(uuids_subset); virHashTablePtr hash; size_t i; int ret = -1; @@ -158,7 +158,7 @@ testHashRemove(const void *data G_GNUC_UNUSED) if (!(hash = testHashInit(0))) return -1; - for (i = 0; i < ARRAY_CARDINALITY(uuids_subset); i++) { + for (i = 0; i < G_N_ELEMENTS(uuids_subset); i++) { if (virHashRemoveEntry(hash, uuids_subset[i]) < 0) { VIR_TEST_VERBOSE("\nentry \"%s\" could not be removed", uuids_subset[i]); @@ -178,7 +178,7 @@ testHashRemove(const void *data G_GNUC_UNUSED) const int testHashCountRemoveForEachSome = - ARRAY_CARDINALITY(uuids) - ARRAY_CARDINALITY(uuids_subset); + G_N_ELEMENTS(uuids) - G_N_ELEMENTS(uuids_subset); static int testHashRemoveForEachSome(void *payload G_GNUC_UNUSED, @@ -188,7 +188,7 @@ testHashRemoveForEachSome(void *payload G_GNUC_UNUSED, virHashTablePtr hash = data; size_t i; - for (i = 0; i < ARRAY_CARDINALITY(uuids_subset); i++) { + for (i = 0; i < G_N_ELEMENTS(uuids_subset); i++) { if (STREQ(uuids_subset[i], name)) { if (virHashRemoveEntry(hash, name) < 0) { VIR_TEST_VERBOSE("\nentry \"%s\" could not be removed", @@ -244,7 +244,7 @@ testHashRemoveForEach(const void *data) static int testHashSteal(const void *data G_GNUC_UNUSED) { - int count = ARRAY_CARDINALITY(uuids) - ARRAY_CARDINALITY(uuids_subset); + int count = G_N_ELEMENTS(uuids) - G_N_ELEMENTS(uuids_subset); virHashTablePtr hash; size_t i; int ret = -1; @@ -252,7 +252,7 @@ testHashSteal(const void *data G_GNUC_UNUSED) if (!(hash = testHashInit(0))) return -1; - for (i = 0; i < ARRAY_CARDINALITY(uuids_subset); i++) { + for (i = 0; i < G_N_ELEMENTS(uuids_subset); i++) { if (!virHashSteal(hash, uuids_subset[i])) { VIR_TEST_VERBOSE("\nentry \"%s\" could not be stolen", uuids_subset[i]); @@ -280,7 +280,7 @@ testHashRemoveSetIter(const void *payload G_GNUC_UNUSED, bool rem = false; size_t i; - for (i = 0; i < ARRAY_CARDINALITY(uuids_subset); i++) { + for (i = 0; i < G_N_ELEMENTS(uuids_subset); i++) { if (STREQ(uuids_subset[i], name)) { rem = true; break; @@ -318,7 +318,7 @@ testHashRemoveSet(const void *data G_GNUC_UNUSED) goto cleanup; } - if (testHashCheckCount(hash, ARRAY_CARDINALITY(uuids) - count) < 0) + if (testHashCheckCount(hash, G_N_ELEMENTS(uuids) - count) < 0) goto cleanup; ret = 0; @@ -329,7 +329,7 @@ testHashRemoveSet(const void *data G_GNUC_UNUSED) } -const int testSearchIndex = ARRAY_CARDINALITY(uuids_subset) / 2; +const int testSearchIndex = G_N_ELEMENTS(uuids_subset) / 2; static int testHashSearchIter(const void *payload G_GNUC_UNUSED, @@ -357,7 +357,7 @@ testHashSearch(const void *data G_GNUC_UNUSED) goto cleanup; } - if (testHashCheckCount(hash, ARRAY_CARDINALITY(uuids)) < 0) + if (testHashCheckCount(hash, G_N_ELEMENTS(uuids)) < 0) goto cleanup; ret = 0; diff --git a/tests/virhostcputest.c b/tests/virhostcputest.c index d9bdef701d..81a126ff73 100644 --- a/tests/virhostcputest.c +++ b/tests/virhostcputest.c @@ -260,7 +260,7 @@ mymain(void) if (virInitialize() < 0) return EXIT_FAILURE; - for (i = 0; i < ARRAY_CARDINALITY(nodeData); i++) + for (i = 0; i < G_N_ELEMENTS(nodeData); i++) if (virTestRun(nodeData[i].testName, linuxTestHostCPU, &nodeData[i]) != 0) ret = -1; diff --git a/tests/viriscsitest.c b/tests/viriscsitest.c index 6ebe404762..4722591b86 100644 --- a/tests/viriscsitest.c +++ b/tests/viriscsitest.c @@ -343,7 +343,7 @@ mymain(void) .fake_cmd_output = "iscsiadm_sendtargets", .portal = "10.20.30.40:3260,1", .expected_targets = targets, - .nexpected = ARRAY_CARDINALITY(targets), + .nexpected = G_N_ELEMENTS(targets), }; if (virTestRun("ISCSI scan targets", testISCSIScanTargets, &infoTargets) < 0) rv = -1; diff --git a/tests/virnetmessagetest.c b/tests/virnetmessagetest.c index 3251df8873..53544abbdb 100644 --- a/tests/virnetmessagetest.c +++ b/tests/virnetmessagetest.c @@ -61,7 +61,7 @@ static int testMessageHeaderEncode(const void *args G_GNUC_UNUSED) if (virNetMessageEncodeHeader(msg) < 0) goto cleanup; - if (ARRAY_CARDINALITY(expect) != msg->bufferOffset) { + if (G_N_ELEMENTS(expect) != msg->bufferOffset) { VIR_DEBUG("Expect message offset %zu got %zu", sizeof(expect), msg->bufferOffset); goto cleanup; @@ -253,7 +253,7 @@ static int testMessagePayloadEncode(const void *args G_GNUC_UNUSED) if (virNetMessageEncodePayload(msg, (xdrproc_t)xdr_virNetMessageError, &err) < 0) goto cleanup; - if (ARRAY_CARDINALITY(expect) != msg->bufferLength) { + if (G_N_ELEMENTS(expect) != msg->bufferLength) { VIR_DEBUG("Expect message length %zu got %zu", sizeof(expect), msg->bufferLength); goto cleanup; @@ -495,7 +495,7 @@ static int testMessagePayloadStreamEncode(const void *args G_GNUC_UNUSED) if (virNetMessageEncodePayloadRaw(msg, stream, strlen(stream)) < 0) goto cleanup; - if (ARRAY_CARDINALITY(expect) != msg->bufferLength) { + if (G_N_ELEMENTS(expect) != msg->bufferLength) { VIR_DEBUG("Expect message length %zu got %zu", sizeof(expect), msg->bufferLength); goto cleanup; diff --git a/tests/virnettlscontexttest.c b/tests/virnettlscontexttest.c index 9a0d947c1b..6c01336420 100644 --- a/tests/virnettlscontexttest.c +++ b/tests/virnettlscontexttest.c @@ -562,7 +562,7 @@ mymain(void) testTLSWriteCertChain("cacertchain-ctx.pem", certchain, - ARRAY_CARDINALITY(certchain)); + G_N_ELEMENTS(certchain)); DO_CTX_TEST(true, "cacertchain-ctx.pem", servercertlevel3areq.filename, false); DO_CTX_TEST(false, "cacertchain-ctx.pem", clientcertlevel2breq.filename, false); diff --git a/tests/virnettlssessiontest.c b/tests/virnettlssessiontest.c index 8d89b16814..997cf5a372 100644 --- a/tests/virnettlssessiontest.c +++ b/tests/virnettlssessiontest.c @@ -456,7 +456,7 @@ mymain(void) testTLSWriteCertChain("cacertchain-sess.pem", certchain, - ARRAY_CARDINALITY(certchain)); + G_N_ELEMENTS(certchain)); DO_SESS_TEST("cacertchain-sess.pem", servercertlevel3areq.filename, clientcertlevel2breq.filename, false, false, "libvirt.org", NULL); diff --git a/tests/virnumamock.c b/tests/virnumamock.c index fe5e9b4940..3eefb7ccee 100644 --- a/tests/virnumamock.c +++ b/tests/virnumamock.c @@ -130,7 +130,7 @@ virNumaGetPages(int node, size_t *npages) { const int pages_def[] = { 4, 2 * 1024, 1 * 1024 * 1024}; - const int npages_def = ARRAY_CARDINALITY(pages_def); + const int npages_def = G_N_ELEMENTS(pages_def); size_t i = 0; if (pages_size) diff --git a/tests/virpcitest.c b/tests/virpcitest.c index de96e6eb7e..4078dc4c69 100644 --- a/tests/virpcitest.c +++ b/tests/virpcitest.c @@ -91,7 +91,7 @@ testVirPCIDeviceDetach(const void *opaque G_GNUC_UNUSED) { int ret = -1; virPCIDevicePtr dev[] = {NULL, NULL, NULL}; - size_t i, nDev = ARRAY_CARDINALITY(dev); + size_t i, nDev = G_N_ELEMENTS(dev); virPCIDeviceListPtr activeDevs = NULL, inactiveDevs = NULL; int count; @@ -132,7 +132,7 @@ testVirPCIDeviceReset(const void *opaque G_GNUC_UNUSED) { int ret = -1; virPCIDevicePtr dev[] = {NULL, NULL, NULL}; - size_t i, nDev = ARRAY_CARDINALITY(dev); + size_t i, nDev = G_N_ELEMENTS(dev); virPCIDeviceListPtr activeDevs = NULL, inactiveDevs = NULL; int count; @@ -167,7 +167,7 @@ testVirPCIDeviceReattach(const void *opaque G_GNUC_UNUSED) { int ret = -1; virPCIDevicePtr dev[] = {NULL, NULL, NULL}; - size_t i, nDev = ARRAY_CARDINALITY(dev); + size_t i, nDev = G_N_ELEMENTS(dev); virPCIDeviceListPtr activeDevs = NULL, inactiveDevs = NULL; int count; diff --git a/tests/virpolkittest.c b/tests/virpolkittest.c index e80ccfedb7..97fa877445 100644 --- a/tests/virpolkittest.c +++ b/tests/virpolkittest.c @@ -96,7 +96,7 @@ VIR_MOCK_WRAP_RET_ARGS(dbus_connection_send_with_reply_and_block, is_authorized = 0; is_challenge = 0; retdetails = retdetailscancelled; - retdetailslen = ARRAY_CARDINALITY(retdetailscancelled) / 2; + retdetailslen = G_N_ELEMENTS(retdetailscancelled) / 2; } else if (STREQ(actionid, "org.libvirt.test.details")) { size_t i; is_authorized = 0; diff --git a/tests/virrotatingfiletest.c b/tests/virrotatingfiletest.c index 3ccd9a8535..df392f374e 100644 --- a/tests/virrotatingfiletest.c +++ b/tests/virrotatingfiletest.c @@ -85,7 +85,7 @@ static int testRotatingFileReaderAssertBufferContent(const char *buf, char bytes[] = { FILEBYTE, FILEBYTE0, FILEBYTE1 }; size_t total = 0; - if (nregions > ARRAY_CARDINALITY(bytes)) { + if (nregions > G_N_ELEMENTS(bytes)) { fprintf(stderr, "Too many regions %zu\n", nregions); return -1; } @@ -573,7 +573,7 @@ static int testRotatingFileReaderOne(const void *data G_GNUC_UNUSED) goto cleanup; if (testRotatingFileReaderAssertBufferContent(buf, got, - ARRAY_CARDINALITY(regions), + G_N_ELEMENTS(regions), regions) < 0) goto cleanup; @@ -605,7 +605,7 @@ static int testRotatingFileReaderAll(const void *data G_GNUC_UNUSED) goto cleanup; if (testRotatingFileReaderAssertBufferContent(buf, got, - ARRAY_CARDINALITY(regions), + G_N_ELEMENTS(regions), regions) < 0) goto cleanup; @@ -637,7 +637,7 @@ static int testRotatingFileReaderPartial(const void *data G_GNUC_UNUSED) goto cleanup; if (testRotatingFileReaderAssertBufferContent(buf, got, - ARRAY_CARDINALITY(regions), + G_N_ELEMENTS(regions), regions) < 0) goto cleanup; @@ -678,7 +678,7 @@ static int testRotatingFileReaderSeek(const void *data G_GNUC_UNUSED) goto cleanup; if (testRotatingFileReaderAssertBufferContent(buf, got, - ARRAY_CARDINALITY(regions), + G_N_ELEMENTS(regions), regions) < 0) goto cleanup; diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index 77e8e0e404..20e407448f 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -478,7 +478,7 @@ testPathCanonicalizeReadlink(const char *path, *linkpath = NULL; - for (i = 0; i < ARRAY_CARDINALITY(testPathCanonicalizeSymlinks); i++) { + for (i = 0; i < G_N_ELEMENTS(testPathCanonicalizeSymlinks); i++) { if (STREQ(path, testPathCanonicalizeSymlinks[i][0])) { if (VIR_STRDUP(*linkpath, testPathCanonicalizeSymlinks[i][1]) < 0) return -1; @@ -519,9 +519,9 @@ testPathRelativePrepare(void) { size_t i; - for (i = 0; i < ARRAY_CARDINALITY(backingchain); i++) { + for (i = 0; i < G_N_ELEMENTS(backingchain); i++) { backingchain[i].type = VIR_STORAGE_TYPE_FILE; - if (i < ARRAY_CARDINALITY(backingchain) - 1) + if (i < G_N_ELEMENTS(backingchain) - 1) backingchain[i].backingStore = &backingchain[i + 1]; else backingchain[i].backingStore = NULL; @@ -681,7 +681,7 @@ mymain(void) data = (struct testChainData){ \ start, format, { __VA_ARGS__ }, 0, flags, \ }; \ - for (i = 0; i < ARRAY_CARDINALITY(data.files); i++) \ + for (i = 0; i < G_N_ELEMENTS(data.files); i++) \ if (data.files[i]) \ data.nfiles++; \ if (virTestRun(virTestCounterNext(), \ diff --git a/tests/virstringtest.c b/tests/virstringtest.c index 12dab85ab8..43c76ccda0 100644 --- a/tests/virstringtest.c +++ b/tests/virstringtest.c @@ -325,7 +325,7 @@ testStrdup(const void *data G_GNUC_UNUSED) ret = 0; cleanup: - for (i = 0; i < ARRAY_CARDINALITY(array); i++) + for (i = 0; i < G_N_ELEMENTS(array); i++) VIR_FREE(array[i]); return ret; } @@ -384,12 +384,12 @@ testStringSortCompare(const void *opaque G_GNUC_UNUSED) int ret = -1; size_t i; - qsort(randlist, ARRAY_CARDINALITY(randlist), sizeof(randlist[0]), + qsort(randlist, G_N_ELEMENTS(randlist), sizeof(randlist[0]), virStringSortCompare); - qsort(randrlist, ARRAY_CARDINALITY(randrlist), sizeof(randrlist[0]), + qsort(randrlist, G_N_ELEMENTS(randrlist), sizeof(randrlist[0]), virStringSortRevCompare); - for (i = 0; i < ARRAY_CARDINALITY(randlist); i++) { + for (i = 0; i < G_N_ELEMENTS(randlist); i++) { if (STRNEQ(randlist[i], sortlist[i])) { fprintf(stderr, "sortlist[%zu] '%s' != randlist[%zu] '%s'\n", i, sortlist[i], i, randlist[i]); diff --git a/tests/virsystemdtest.c b/tests/virsystemdtest.c index 0a97443779..8aaac097e9 100644 --- a/tests/virsystemdtest.c +++ b/tests/virsystemdtest.c @@ -340,7 +340,7 @@ static int testCreateNetwork(const void *opaque G_GNUC_UNUSED) int nicindexes[] = { 2, 1729, 87539319, }; - size_t nnicindexes = ARRAY_CARDINALITY(nicindexes); + size_t nnicindexes = G_N_ELEMENTS(nicindexes); if (virSystemdCreateMachine("demo", "lxc", uuid, @@ -586,7 +586,7 @@ testActivation(bool useNames) map[1].family = AF_INET; map[1].port = virNetSocketGetPort(sockIP[0]); - if (virSystemdGetActivation(map, ARRAY_CARDINALITY(map), &act) < 0) + if (virSystemdGetActivation(map, G_N_ELEMENTS(map), &act) < 0) goto cleanup; if (act == NULL) { diff --git a/tests/virtypedparamtest.c b/tests/virtypedparamtest.c index 9714a0a4c6..87b47ba86e 100644 --- a/tests/virtypedparamtest.c +++ b/tests/virtypedparamtest.c @@ -74,7 +74,7 @@ testTypedParamsValidate(const void *opaque) } #define PARAMS_ARRAY(...) ((virTypedParameter[]){ __VA_ARGS__ }) -#define PARAMS_SIZE(...) ARRAY_CARDINALITY(PARAMS_ARRAY(__VA_ARGS__)) +#define PARAMS_SIZE(...) G_N_ELEMENTS(PARAMS_ARRAY(__VA_ARGS__)) #define PARAMS(...) \ .params = PARAMS_ARRAY(__VA_ARGS__), \ @@ -96,7 +96,7 @@ testTypedParamsFilter(const void *opaque G_GNUC_UNUSED) virTypedParameterPtr *filtered = NULL; - nfiltered = virTypedParamsFilter(params, ARRAY_CARDINALITY(params), + nfiltered = virTypedParamsFilter(params, G_N_ELEMENTS(params), "foo", &filtered); if (nfiltered != 3) goto cleanup; @@ -108,7 +108,7 @@ testTypedParamsFilter(const void *opaque G_GNUC_UNUSED) VIR_FREE(filtered); filtered = NULL; - nfiltered = virTypedParamsFilter(params, ARRAY_CARDINALITY(params), + nfiltered = virTypedParamsFilter(params, G_N_ELEMENTS(params), "bar", &filtered); if (nfiltered != 2) @@ -175,7 +175,7 @@ testTypedParamsGetStringList(const void *opaque G_GNUC_UNUSED) }; picked = virTypedParamsGetStringList(params, - ARRAY_CARDINALITY(params), + G_N_ELEMENTS(params), "bar", &strings); diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 5c0aa0e588..a83c47a162 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -13467,7 +13467,7 @@ virshDomainEventCallback virshDomainEventCallbacks[] = { { "block-threshold", VIR_DOMAIN_EVENT_CALLBACK(virshEventBlockThresholdPrint), }, }; -verify(VIR_DOMAIN_EVENT_ID_LAST == ARRAY_CARDINALITY(virshDomainEventCallbacks)); +verify(VIR_DOMAIN_EVENT_ID_LAST == G_N_ELEMENTS(virshDomainEventCallbacks)); static const vshCmdInfo info_event[] = { {.name = "help", diff --git a/tools/virsh-network.c b/tools/virsh-network.c index 163cf21af9..3589d84116 100644 --- a/tools/virsh-network.c +++ b/tools/virsh-network.c @@ -1242,7 +1242,7 @@ virshNetworkEventCallback virshNetworkEventCallbacks[] = { { "lifecycle", VIR_NETWORK_EVENT_CALLBACK(vshEventLifecyclePrint), }, }; -verify(VIR_NETWORK_EVENT_ID_LAST == ARRAY_CARDINALITY(virshNetworkEventCallbacks)); +verify(VIR_NETWORK_EVENT_ID_LAST == G_N_ELEMENTS(virshNetworkEventCallbacks)); static const vshCmdInfo info_network_event[] = { {.name = "help", diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c index 9236d159ed..455ddedc2d 100644 --- a/tools/virsh-nodedev.c +++ b/tools/virsh-nodedev.c @@ -846,7 +846,7 @@ virshNodeDeviceEventCallback virshNodeDeviceEventCallbacks[] = { VIR_NODE_DEVICE_EVENT_CALLBACK(vshEventLifecyclePrint), }, { "update", vshEventGenericPrint, } }; -verify(VIR_NODE_DEVICE_EVENT_ID_LAST == ARRAY_CARDINALITY(virshNodeDeviceEventCallbacks)); +verify(VIR_NODE_DEVICE_EVENT_ID_LAST == G_N_ELEMENTS(virshNodeDeviceEventCallbacks)); static const vshCmdInfo info_node_device_event[] = { diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c index 55af2e4e4e..b01186f339 100644 --- a/tools/virsh-pool.c +++ b/tools/virsh-pool.c @@ -1986,7 +1986,7 @@ virshPoolEventCallback virshPoolEventCallbacks[] = { VIR_STORAGE_POOL_EVENT_CALLBACK(vshEventLifecyclePrint), }, { "refresh", vshEventGenericPrint, } }; -verify(VIR_STORAGE_POOL_EVENT_ID_LAST == ARRAY_CARDINALITY(virshPoolEventCallbacks)); +verify(VIR_STORAGE_POOL_EVENT_ID_LAST == G_N_ELEMENTS(virshPoolEventCallbacks)); static const vshCmdInfo info_pool_event[] = { diff --git a/tools/virsh-secret.c b/tools/virsh-secret.c index 7558c4c476..f0446c83ae 100644 --- a/tools/virsh-secret.c +++ b/tools/virsh-secret.c @@ -649,7 +649,7 @@ virshSecretEventCallback virshSecretEventCallbacks[] = { VIR_SECRET_EVENT_CALLBACK(vshEventLifecyclePrint), }, { "value-changed", vshEventGenericPrint, }, }; -verify(VIR_SECRET_EVENT_ID_LAST == ARRAY_CARDINALITY(virshSecretEventCallbacks)); +verify(VIR_SECRET_EVENT_ID_LAST == G_N_ELEMENTS(virshSecretEventCallbacks)); static const vshCmdInfo info_secret_event[] = { {.name = "help", diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c index 7fb1335194..daeb2f0e1c 100644 --- a/tools/virt-host-validate-common.c +++ b/tools/virt-host-validate-common.c @@ -99,7 +99,7 @@ static const char * failMessages[] = { N_("NOTE"), }; -verify(ARRAY_CARDINALITY(failMessages) == VIR_HOST_VALIDATE_LAST); +verify(G_N_ELEMENTS(failMessages) == VIR_HOST_VALIDATE_LAST); static const char *failEscapeCodes[] = { "\033[31m", @@ -107,7 +107,7 @@ static const char *failEscapeCodes[] = { "\033[34m", }; -verify(ARRAY_CARDINALITY(failEscapeCodes) == VIR_HOST_VALIDATE_LAST); +verify(G_N_ELEMENTS(failEscapeCodes) == VIR_HOST_VALIDATE_LAST); void virHostMsgFail(virHostValidateLevel level, const char *format, -- 2.19.2
participants (4)
-
Andrea Bolognani
-
Daniel P. Berrangé
-
Ján Tomko
-
Michal Privoznik