diff options
| author | 2018-03-27 17:54:29 +0800 | |
|---|---|---|
| committer | 2018-04-03 02:25:11 +0800 | |
| commit | a66204eb5c6eb5d54cfb29adbf289ca446dfd2ef (patch) | |
| tree | 92921af6bc799186b8290a203d5ddfeb473b9ee9 /src/common/swap.h | |
| parent | Merge pull request #297 from bunnei/hid-touch-state (diff) | |
| download | yuzu-a66204eb5c6eb5d54cfb29adbf289ca446dfd2ef.tar.gz yuzu-a66204eb5c6eb5d54cfb29adbf289ca446dfd2ef.tar.xz yuzu-a66204eb5c6eb5d54cfb29adbf289ca446dfd2ef.zip | |
common: fix swap functions on Bitrig and OpenBSD
swap{16,32,64} are defined as macros on the two, but client code
tries to invoke them as Common::swap{16,32,64}, which naturally
doesn't work. This hack redefines the macros as inline functions
in the Common namespace: the bodies of the functions are the
same as the original macros, but relying on OS-specific
implementation details like this is of course brittle.
Diffstat (limited to '')
| -rw-r--r-- | src/common/swap.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/common/swap.h b/src/common/swap.h index d94cbe6b2..4a4012d1a 100644 --- a/src/common/swap.h +++ b/src/common/swap.h | |||
| @@ -103,7 +103,19 @@ inline __attribute__((always_inline)) u64 swap64(u64 _data) { | |||
| 103 | return __builtin_bswap64(_data); | 103 | return __builtin_bswap64(_data); |
| 104 | } | 104 | } |
| 105 | #elif defined(__Bitrig__) || defined(__OpenBSD__) | 105 | #elif defined(__Bitrig__) || defined(__OpenBSD__) |
| 106 | // swap16, swap32, swap64 are left as is | 106 | // redefine swap16, swap32, swap64 as inline functions |
| 107 | #undef swap16 | ||
| 108 | #undef swap32 | ||
| 109 | #undef swap64 | ||
| 110 | inline u16 swap16(u16 _data) { | ||
| 111 | return __swap16(_data); | ||
| 112 | } | ||
| 113 | inline u32 swap32(u32 _data) { | ||
| 114 | return __swap32(_data); | ||
| 115 | } | ||
| 116 | inline u64 swap64(u64 _data) { | ||
| 117 | return __swap64(_data); | ||
| 118 | } | ||
| 107 | #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) | 119 | #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) |
| 108 | inline u16 swap16(u16 _data) { | 120 | inline u16 swap16(u16 _data) { |
| 109 | return bswap16(_data); | 121 | return bswap16(_data); |