OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
3 * Use of this source code is governed by a BSD-style license. | |
4 * | |
5 * Some functions commonly found in sys/endian.h, a header file not available | |
6 * on Windows platforms. | |
7 */ | |
8 | |
9 #ifndef _SCRYPT_SYSENDIAN_H | |
10 #define _SCRYPT_SYSENDIAN_H | |
11 | |
12 static __inline void be32enc(void *buf, uint32_t u) | |
13 { | |
14 uint8_t *p = (uint8_t *)buf; | |
15 p[0] = (uint8_t)((u >> 24) & 0xff); | |
16 p[1] = (uint8_t)((u >> 16) & 0xff); | |
17 p[2] = (uint8_t)((u >> 8) & 0xff); | |
18 p[3] = (uint8_t)(u & 0xff); | |
19 } | |
20 | |
21 static __inline void le32enc(void *buf, uint32_t u) | |
22 { | |
23 uint8_t *p = (uint8_t *)buf; | |
24 p[0] = (uint8_t)(u & 0xff); | |
25 p[1] = (uint8_t)((u >> 8) & 0xff); | |
26 p[2] = (uint8_t)((u >> 16) & 0xff); | |
27 p[3] = (uint8_t)((u >> 24) & 0xff); | |
28 } | |
29 | |
30 static __inline uint32_t be32dec(const void *buf) | |
31 { | |
32 const uint8_t *p = (const uint8_t *)buf; | |
33 return ((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]); | |
34 } | |
35 | |
36 static __inline uint32_t le32dec(const void *buf) | |
37 { | |
38 const uint8_t *p = (const uint8_t *)buf; | |
39 return ((p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]); | |
40 } | |
41 | |
42 #endif // _SCRYPT_SYSENDIAN_H | |
OLD | NEW |