/* Prefetch into L1 cache for write. */
#define prefetchw(addr) __builtin_prefetch((addr), 1)
-/* Hint that the annotated function is rarely called. */
-#if GCC_PREREQ(4, 4) || __has_attribute(cold)
-# define _cold_attribute __attribute__((cold))
-#else
-# define _cold_attribute
-#endif
-
/* Hint that the annotated function takes a printf()-like format string and
* arguments. This is currently disabled on Windows because MinGW does not
* support this attribute on functions taking wide-character strings. */
#include "wimlib/compiler.h"
#include "wimlib/types.h"
-void
-wimlib_error(const tchar *format, ...)
- _format_attribute(printf, 1, 2) _cold_attribute;
+void _format_attribute(printf, 1, 2) __attribute__((cold))
+wimlib_error(const tchar *format, ...);
-void
-wimlib_error_with_errno(const tchar *format, ...)
- _format_attribute(printf, 1, 2) _cold_attribute;
+void _format_attribute(printf, 1, 2) __attribute__((cold))
+wimlib_error_with_errno(const tchar *format, ...);
-void
-wimlib_warning(const tchar *format, ...)
- _format_attribute(printf, 1, 2) _cold_attribute;
+void _format_attribute(printf, 1, 2) __attribute__((cold))
+wimlib_warning(const tchar *format, ...);
-void
-wimlib_warning_with_errno(const tchar *format, ...)
- _format_attribute(printf, 1, 2) _cold_attribute;
+void _format_attribute(printf, 1, 2) __attribute__((cold))
+wimlib_warning_with_errno(const tchar *format, ...);
#define ERROR(format, ...) wimlib_error(T(format), ## __VA_ARGS__)
#define ERROR_WITH_ERRNO(format, ...) wimlib_error_with_errno(T(format), ## __VA_ARGS__)
bool
win32_try_to_attach_wof(const wchar_t *drive);
-void
-win32_warning(DWORD err, const wchar_t *format, ...) _cold_attribute;
+void __attribute__((cold))
+win32_warning(DWORD err, const wchar_t *format, ...);
-void
-win32_error(DWORD err, const wchar_t *format, ...) _cold_attribute;
+void __attribute__((cold))
+win32_error(DWORD err, const wchar_t *format, ...);
-void
-winnt_warning(NTSTATUS status, const wchar_t *format, ...) _cold_attribute;
+void __attribute__((cold))
+winnt_warning(NTSTATUS status, const wchar_t *format, ...);
-void
-winnt_error(NTSTATUS status, const wchar_t *format, ...) _cold_attribute;
+void __attribute__((cold))
+winnt_error(NTSTATUS status, const wchar_t *format, ...);
NTSTATUS
winnt_fsctl(HANDLE h, u32 code, const void *in, u32 in_size,