openthread-br
0.3.0-72c0388
src
common
byteswap.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2020, The OpenThread Authors.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
* 1. Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* 2. Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
* 3. Neither the name of the copyright holder nor the
13
* names of its contributors may be used to endorse or promote products
14
* derived from this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
* POSSIBILITY OF SUCH DAMAGE.
27
*/
28
34
#ifndef OTBR_COMMON_BYTESWAP_HPP_
35
#define OTBR_COMMON_BYTESWAP_HPP_
36
37
#if __APPLE__
38
#include <libkern/OSByteOrder.h>
39
#define bswap_16 OSSwapInt16
40
#define bswap_32 OSSwapInt32
41
#define bswap_64 OSSwapInt64
42
43
#define htobe16(x) OSSwapHostToBigInt16(x)
44
#define htole16(x) OSSwapHostToLittleInt16(x)
45
#define be16toh(x) OSSwapBigToHostInt16(x)
46
#define le16toh(x) OSSwapLittleToHostInt16(x)
47
48
#define htobe32(x) OSSwapHostToBigInt32(x)
49
#define htole32(x) OSSwapHostToLittleInt32(x)
50
#define be32toh(x) OSSwapBigToHostInt32(x)
51
#define le32toh(x) OSSwapLittleToHostInt32(x)
52
53
#define htobe64(x) OSSwapHostToBigInt64(x)
54
#define htole64(x) OSSwapHostToLittleInt64(x)
55
#define be64toh(x) OSSwapBigToHostInt64(x)
56
#define le64toh(x) OSSwapLittleToHostInt64(x)
57
#else
58
#include <byteswap.h>
59
60
#if defined(__linux__)
61
#include <endian.h>
62
#elif defined(__FreeBSD__) || defined(__NetBSD__)
63
#include <sys/endian.h>
64
#endif
65
#endif
66
67
#endif // OTBR_COMMON_BYTESWAP_HPP_
Generated by
1.8.17