8354 sync regcomp(3C) with upstream (fix make catalog)
[unleashed/tickless.git] / usr / src / lib / libc / sparc / gen / endian.c
blobfb076409993a36edd2076271ccd72f9e180cadb1
1 /*
2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
5 * 1.0 of the CDDL.
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
13 * Copyright (c) 2015, Joyent, Inc.
16 #include <endian.h>
19 * endian(3C) routines
22 uint16_t
23 htole16(uint16_t in)
25 return (((in & 0xff) << 8) | ((in & 0xff00) >> 8));
28 uint32_t
29 htole32(uint32_t in)
31 return (((in & 0xffUL) << 24) |
32 (in & 0xff00UL) << 8 |
33 (in & 0xff0000UL) >> 8 |
34 ((in & 0xff000000UL) >> 24));
37 uint64_t
38 htole64(uint64_t in)
40 return (((in & 0xffULL) << 56) |
41 ((in & 0xff00ULL) << 40) |
42 ((in & 0xff0000ULL) << 24) |
43 ((in & 0xff000000ULL) << 8) |
44 ((in & 0xff00000000ULL) >> 8) |
45 ((in & 0xff0000000000ULL) >> 24) |
46 ((in & 0xff000000000000ULL) >> 40) |
47 ((in & 0xff00000000000000ULL) >> 56));
50 uint16_t
51 letoh16(uint16_t in)
53 return (((in & 0xff) << 8) | ((in & 0xff00) >> 8));
56 uint16_t
57 le16toh(uint16_t in)
59 return (((in & 0xff) << 8) | ((in & 0xff00) >> 8));
62 uint32_t
63 letoh32(uint32_t in)
65 return (((in & 0xffUL) << 24) |
66 (in & 0xff00UL) << 8 |
67 (in & 0xff0000UL) >> 8 |
68 ((in & 0xff000000UL) >> 24));
71 uint32_t
72 le32toh(uint32_t in)
74 return (((in & 0xffUL) << 24) |
75 (in & 0xff00UL) << 8 |
76 (in & 0xff0000UL) >> 8 |
77 ((in & 0xff000000UL) >> 24));
80 uint64_t
81 letoh64(uint64_t in)
83 return (((in & 0xffULL) << 56) |
84 ((in & 0xff00ULL) << 40) |
85 ((in & 0xff0000ULL) << 24) |
86 ((in & 0xff000000ULL) << 8) |
87 ((in & 0xff00000000ULL) >> 8) |
88 ((in & 0xff0000000000ULL) >> 24) |
89 ((in & 0xff000000000000ULL) >> 40) |
90 ((in & 0xff00000000000000ULL) >> 56));
93 uint64_t
94 le64toh(uint64_t in)
96 return (((in & 0xffULL) << 56) |
97 ((in & 0xff00ULL) << 40) |
98 ((in & 0xff0000ULL) << 24) |
99 ((in & 0xff000000ULL) << 8) |
100 ((in & 0xff00000000ULL) >> 8) |
101 ((in & 0xff0000000000ULL) >> 24) |
102 ((in & 0xff000000000000ULL) >> 40) |
103 ((in & 0xff00000000000000ULL) >> 56));
106 /* Anything to or from big-endian is a no-op */
108 uint16_t
109 htobe16(uint16_t in)
111 return (in);
114 uint32_t
115 htobe32(uint32_t in)
117 return (in);
120 uint64_t
121 htobe64(uint64_t in)
123 return (in);
126 uint16_t
127 betoh16(uint16_t in)
129 return (in);
132 uint16_t
133 be16toh(uint16_t in)
135 return (in);
138 uint32_t
139 betoh32(uint32_t in)
141 return (in);
144 uint32_t
145 be32toh(uint32_t in)
147 return (in);
150 uint64_t
151 betoh64(uint64_t in)
153 return (in);
156 uint64_t
157 be64toh(uint64_t in)
159 return (in);