Mercurial > hg
comparison mercurial/util.h @ 16437:d126a0d16856
util.h: replace ntohl/htonl with get/putbe32
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 16 Apr 2012 11:26:00 -0500 |
parents | ee163a9cf37c |
children | 1435866c1937 |
comparison
equal
deleted
inserted
replaced
16436:e98460f6089d | 16437:d126a0d16856 |
---|---|
123 typedef unsigned long uint32_t; | 123 typedef unsigned long uint32_t; |
124 typedef unsigned __int64 uint64_t; | 124 typedef unsigned __int64 uint64_t; |
125 #else | 125 #else |
126 #include <stdint.h> | 126 #include <stdint.h> |
127 #endif | 127 #endif |
128 static uint32_t ntohl(uint32_t x) | |
129 { | |
130 return ((x & 0x000000ffUL) << 24) | | |
131 ((x & 0x0000ff00UL) << 8) | | |
132 ((x & 0x00ff0000UL) >> 8) | | |
133 ((x & 0xff000000UL) >> 24); | |
134 } | |
135 #else | 128 #else |
136 /* not windows */ | 129 /* not windows */ |
137 #include <sys/types.h> | 130 #include <sys/types.h> |
138 #if defined __BEOS__ && !defined __HAIKU__ | 131 #if defined __BEOS__ && !defined __HAIKU__ |
139 #include <ByteOrder.h> | 132 #include <ByteOrder.h> |
149 | 142 |
150 #ifdef __linux | 143 #ifdef __linux |
151 #define inline __inline | 144 #define inline __inline |
152 #endif | 145 #endif |
153 | 146 |
147 static inline uint32_t getbe32(const char *c) | |
148 { | |
149 const unsigned char *d = (const unsigned char *)c; | |
150 | |
151 return ((d[0] << 24) | | |
152 (d[1] << 16) | | |
153 (d[2] << 8) | | |
154 (d[3])); | |
155 } | |
156 | |
157 static inline void putbe32(uint32_t x, char *c) | |
158 { | |
159 c[0] = (x >> 24) & 0xff; | |
160 c[1] = (x >> 16) & 0xff; | |
161 c[2] = (x >> 8) & 0xff; | |
162 c[3] = (x) & 0xff; | |
163 } | |
164 | |
154 #endif /* _HG_UTIL_H_ */ | 165 #endif /* _HG_UTIL_H_ */ |