Define the macro for older GLib versions.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
} elsif (/^\s*$/) {
$func = undef;
}
- if (/ATTRIBUTE_NOINLINE/) {
+ if (/G_GNUC_NO_INLINE/) {
if (defined $func) {
$noninlined{$func} = 1;
}
$(_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)
#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
/**
virCPUDefPtr
virQEMUCapsProbeHostCPU(virArch hostArch,
- virDomainCapsCPUModelsPtr models) ATTRIBUTE_NOINLINE;
+ virDomainCapsCPUModelsPtr models) G_GNUC_NO_INLINE;
void
virQEMUCapsSetGICCapabilities(virQEMUCapsPtr qemuCaps,
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);
void virCommandPassFD(virCommandPtr cmd,
int fd,
- unsigned int flags) ATTRIBUTE_NOINLINE;
+ unsigned int flags) G_GNUC_NO_INLINE;
int virCommandPassFDGetFDIndex(virCommandPtr cmd,
int fd);
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);
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);
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,
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;
#include "internal.h"
uint32_t virHashCodeGen(const void *key, size_t len, uint32_t seed)
- ATTRIBUTE_NOINLINE;
+ G_GNUC_NO_INLINE;
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,
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,
int
virHostGetBootTime(unsigned long long *when)
- ATTRIBUTE_NOINLINE;
+ G_GNUC_NO_INLINE;
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,
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;
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;
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);
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,
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,
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)
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)
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,
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,
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);
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,
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);
int virProcessRunInFork(virProcessForkCallback cb,
void *opaque)
- ATTRIBUTE_NOINLINE;
+ G_GNUC_NO_INLINE;
int virProcessSetupPrivateMountNS(void);
#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;
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,
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);
#pragma once
-char *virTPMCreateCancelPath(const char *devpath) ATTRIBUTE_NOINLINE;
+char *virTPMCreateCancelPath(const char *devpath) G_GNUC_NO_INLINE;
char *virTPMGetSwtpm(void);
char *virTPMGetSwtpmSetup(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,
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:
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)