Changeset 228 for soft/giet_vm/libs/libsrl/srl_endianness.h
- Timestamp:
- Feb 12, 2013, 6:33:31 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/libs/libsrl/srl_endianness.h
r160 r228 5 5 6 6 /** @this reads a big endian 16 bits value */ 7 # define endian_le16(x) 7 # define endian_le16(x) (x) 8 8 /** @this reads a big endian 32 bits value */ 9 # define endian_le32(x) 9 # define endian_le32(x) (x) 10 10 /** @this reads a big endian 64 bits value */ 11 //# define endian_le64(x) 11 //# define endian_le64(x) (x) 12 12 /** @this reads a little endian 16 bits value */ 13 # define endian_be16(x) 13 # define endian_be16(x) endian_swap16(x) 14 14 /** @this reads a little endian 32 bits value */ 15 # define endian_be32(x) 15 # define endian_be32(x) endian_swap32(x) 16 16 /** @this reads a little endian 64 bits value */ 17 //# define endian_be64(x) 17 //# define endian_be64(x) endian_swap64(x) 18 18 19 19 /** @internal */ 20 static inline uint16_t endian_swap16(uint16_t x) 21 { 22 return (x >> 8) | (x << 8); 20 static inline uint16_t endian_swap16(uint16_t x) { 21 return (x >> 8) | (x << 8); 23 22 } 24 23 24 25 25 /** @internal */ 26 static inline uint32_t endian_swap32(uint32_t x) 27 { 28 return (((x >> 24) & 0x000000ff) | 29 ((x >> 8 ) & 0x0000ff00) | 30 ((x << 8 ) & 0x00ff0000) | 31 ((x << 24) & 0xff000000)); 26 static inline uint32_t endian_swap32(uint32_t x) { 27 return (((x >> 24) & 0x000000ff) | 28 ((x >> 8 ) & 0x0000ff00) | 29 ((x << 8 ) & 0x00ff0000) | 30 ((x << 24) & 0xff000000)); 32 31 } 33 32 33 34 34 /** @internal *//* 35 static inline uint64_t __endian_swap64(uint64_t x)36 {37 return (((uint64_t)endian_swap32(x ) << 32) |38 39 }*/35 static inline uint64_t __endian_swap64(uint64_t x) 36 { 37 return (((uint64_t)endian_swap32(x ) << 32) | 38 ((uint64_t)endian_swap32(x >> 32) )); 39 }*/ 40 40 41 static inline uint32_t srl_uint32_le_to_machine(uint32_t x) 42 { 43 return endian_le32(x); 41 static inline uint32_t srl_uint32_le_to_machine(uint32_t x) { 42 return endian_le32(x); 44 43 } 45 44 46 static inline uint32_t srl_uint32_machine_to_le(uint32_t x) 47 {48 45 46 static inline uint32_t srl_uint32_machine_to_le(uint32_t x) { 47 return endian_le32(x); 49 48 } 50 49 51 static inline uint32_t srl_uint32_be_to_machine(uint32_t x) 52 {53 50 51 static inline uint32_t srl_uint32_be_to_machine(uint32_t x) { 52 return endian_be32(x); 54 53 } 55 54 56 static inline uint32_t srl_uint32_machine_to_be(uint32_t x) 57 {58 55 56 static inline uint32_t srl_uint32_machine_to_be(uint32_t x) { 57 return endian_be32(x); 59 58 } 60 59 61 static inline uint16_t srl_uint16_le_to_machine(uint16_t x) 62 {63 60 61 static inline uint16_t srl_uint16_le_to_machine(uint16_t x) { 62 return endian_le16(x); 64 63 } 65 64 66 static inline uint16_t srl_uint16_machine_to_le(uint16_t x) 67 {68 65 66 static inline uint16_t srl_uint16_machine_to_le(uint16_t x) { 67 return endian_le16(x); 69 68 } 70 69 71 static inline uint16_t srl_uint16_be_to_machine(uint16_t x) 72 {73 70 71 static inline uint16_t srl_uint16_be_to_machine(uint16_t x) { 72 return endian_be16(x); 74 73 } 75 74 76 static inline uint16_t srl_uint16_machine_to_be(uint16_t x) 77 {78 75 76 static inline uint16_t srl_uint16_machine_to_be(uint16_t x) { 77 return endian_be16(x); 79 78 } 80 79 81 80 82 81 #endif 82 83 84 // Local Variables: 85 // tab-width: 4 86 // c-basic-offset: 4 87 // c-file-offsets:((innamespace . 0)(inline-open . 0)) 88 // indent-tabs-mode: nil 89 // End: 90 // vim: filetype=c:expandtab:shiftwidth=4:tabstop=4:softtabstop=4 91
Note: See TracChangeset
for help on using the changeset viewer.