@@ -157,82 +157,82 @@ inline bool read_obj(T& obj, const void*& pBuf, uint& buf_size, bool buffer_is_l
157157}
158158
159159#if defined(_MSC_VER)
160- static CRNLIB_FORCE_INLINE uint16 swap16 (uint16 x) {
160+ extern CRNLIB_FORCE_INLINE uint16 swap16 (uint16 x) {
161161 return _byteswap_ushort (x);
162162}
163- static CRNLIB_FORCE_INLINE uint32 swap32 (uint32 x) {
163+ extern CRNLIB_FORCE_INLINE uint32 swap32 (uint32 x) {
164164 return _byteswap_ulong (x);
165165}
166- static CRNLIB_FORCE_INLINE uint64 swap64 (uint64 x) {
166+ extern CRNLIB_FORCE_INLINE uint64 swap64 (uint64 x) {
167167 return _byteswap_uint64 (x);
168168}
169169#elif defined(__GNUC__)
170- static CRNLIB_FORCE_INLINE uint16 swap16 (uint16 x) {
170+ extern CRNLIB_FORCE_INLINE uint16 swap16 (uint16 x) {
171171 return static_cast <uint16>((x << 8U ) | (x >> 8U ));
172172}
173- static CRNLIB_FORCE_INLINE uint32 swap32 (uint32 x) {
173+ extern CRNLIB_FORCE_INLINE uint32 swap32 (uint32 x) {
174174 return __builtin_bswap32 (x);
175175}
176- static CRNLIB_FORCE_INLINE uint64 swap64 (uint64 x) {
176+ extern CRNLIB_FORCE_INLINE uint64 swap64 (uint64 x) {
177177 return __builtin_bswap64 (x);
178178}
179179#else
180- static CRNLIB_FORCE_INLINE uint16 swap16 (uint16 x) {
180+ extern CRNLIB_FORCE_INLINE uint16 swap16 (uint16 x) {
181181 return static_cast <uint16>((x << 8U ) | (x >> 8U ));
182182}
183- static CRNLIB_FORCE_INLINE uint32 swap32 (uint32 x) {
183+ extern CRNLIB_FORCE_INLINE uint32 swap32 (uint32 x) {
184184 return ((x << 24U ) | ((x << 8U ) & 0x00FF0000U ) | ((x >> 8U ) & 0x0000FF00U ) | (x >> 24U ));
185185}
186- static CRNLIB_FORCE_INLINE uint64 swap64 (uint64 x) {
186+ extern CRNLIB_FORCE_INLINE uint64 swap64 (uint64 x) {
187187 return (static_cast <uint64>(swap32 (static_cast <uint32>(x))) << 32ULL ) | swap32 (static_cast <uint32>(x >> 32U ));
188188}
189189#endif
190190
191191// Assumes x has been read from memory as a little endian value, converts to native endianness for manipulation.
192- static CRNLIB_FORCE_INLINE uint16 swap_le16_to_native (uint16 x) {
192+ extern CRNLIB_FORCE_INLINE uint16 swap_le16_to_native (uint16 x) {
193193 return c_crnlib_little_endian_platform ? x : swap16 (x);
194194}
195- static CRNLIB_FORCE_INLINE uint32 swap_le32_to_native (uint32 x) {
195+ extern CRNLIB_FORCE_INLINE uint32 swap_le32_to_native (uint32 x) {
196196 return c_crnlib_little_endian_platform ? x : swap32 (x);
197197}
198- static CRNLIB_FORCE_INLINE uint64 swap_le64_to_native (uint64 x) {
198+ extern CRNLIB_FORCE_INLINE uint64 swap_le64_to_native (uint64 x) {
199199 return c_crnlib_little_endian_platform ? x : swap64 (x);
200200}
201201
202202// Assumes x has been read from memory as a big endian value, converts to native endianness for manipulation.
203- static CRNLIB_FORCE_INLINE uint16 swap_be16_to_native (uint16 x) {
203+ extern CRNLIB_FORCE_INLINE uint16 swap_be16_to_native (uint16 x) {
204204 return c_crnlib_big_endian_platform ? x : swap16 (x);
205205}
206- static CRNLIB_FORCE_INLINE uint32 swap_be32_to_native (uint32 x) {
206+ extern CRNLIB_FORCE_INLINE uint32 swap_be32_to_native (uint32 x) {
207207 return c_crnlib_big_endian_platform ? x : swap32 (x);
208208}
209- static CRNLIB_FORCE_INLINE uint64 swap_be64_to_native (uint64 x) {
209+ extern CRNLIB_FORCE_INLINE uint64 swap_be64_to_native (uint64 x) {
210210 return c_crnlib_big_endian_platform ? x : swap64 (x);
211211}
212212
213- static CRNLIB_FORCE_INLINE uint32 read_le32 (const void * p) {
213+ extern CRNLIB_FORCE_INLINE uint32 read_le32 (const void * p) {
214214 return swap_le32_to_native (*static_cast <const uint32*>(p));
215215}
216- static CRNLIB_FORCE_INLINE void write_le32 (void * p, uint32 x) {
216+ extern CRNLIB_FORCE_INLINE void write_le32 (void * p, uint32 x) {
217217 *static_cast <uint32*>(p) = swap_le32_to_native (x);
218218}
219- static CRNLIB_FORCE_INLINE uint64 read_le64 (const void * p) {
219+ extern CRNLIB_FORCE_INLINE uint64 read_le64 (const void * p) {
220220 return swap_le64_to_native (*static_cast <const uint64*>(p));
221221}
222- static CRNLIB_FORCE_INLINE void write_le64 (void * p, uint64 x) {
222+ extern CRNLIB_FORCE_INLINE void write_le64 (void * p, uint64 x) {
223223 *static_cast <uint64*>(p) = swap_le64_to_native (x);
224224}
225225
226- static CRNLIB_FORCE_INLINE uint32 read_be32 (const void * p) {
226+ extern CRNLIB_FORCE_INLINE uint32 read_be32 (const void * p) {
227227 return swap_be32_to_native (*static_cast <const uint32*>(p));
228228}
229- static CRNLIB_FORCE_INLINE void write_be32 (void * p, uint32 x) {
229+ extern CRNLIB_FORCE_INLINE void write_be32 (void * p, uint32 x) {
230230 *static_cast <uint32*>(p) = swap_be32_to_native (x);
231231}
232- static CRNLIB_FORCE_INLINE uint64 read_be64 (const void * p) {
232+ extern CRNLIB_FORCE_INLINE uint64 read_be64 (const void * p) {
233233 return swap_be64_to_native (*static_cast <const uint64*>(p));
234234}
235- static CRNLIB_FORCE_INLINE void write_be64 (void * p, uint64 x) {
235+ extern CRNLIB_FORCE_INLINE void write_be64 (void * p, uint64 x) {
236236 *static_cast <uint64*>(p) = swap_be64_to_native (x);
237237}
238238
0 commit comments