summaryrefslogtreecommitdiff
path: root/apps/codecs/libgme/blargg_endian.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libgme/blargg_endian.h')
-rw-r--r--apps/codecs/libgme/blargg_endian.h77
1 files changed, 49 insertions, 28 deletions
diff --git a/apps/codecs/libgme/blargg_endian.h b/apps/codecs/libgme/blargg_endian.h
index ae55d7fd3b..dce5cb2048 100644
--- a/apps/codecs/libgme/blargg_endian.h
+++ b/apps/codecs/libgme/blargg_endian.h
@@ -64,45 +64,60 @@ static inline void blargg_verify_byte_order( void )
64 #endif 64 #endif
65} 65}
66 66
67static inline unsigned get_le16( void const* p ) { 67static inline unsigned get_le16( void const* p )
68 return ((unsigned char const*) p) [1] * 0x100u + 68{
69 ((unsigned char const*) p) [0]; 69 return (unsigned) ((unsigned char const*) p) [1] << 8 |
70 (unsigned) ((unsigned char const*) p) [0];
70} 71}
71static inline unsigned get_be16( void const* p ) { 72
72 return ((unsigned char const*) p) [0] * 0x100u + 73static inline unsigned get_be16( void const* p )
73 ((unsigned char const*) p) [1]; 74{
75 return (unsigned) ((unsigned char const*) p) [0] << 8 |
76 (unsigned) ((unsigned char const*) p) [1];
74} 77}
75static inline blargg_ulong get_le32( void const* p ) { 78
76 return ((unsigned char const*) p) [3] * 0x01000000u + 79static inline unsigned get_le32( void const* p )
77 ((unsigned char const*) p) [2] * 0x00010000u + 80{
78 ((unsigned char const*) p) [1] * 0x00000100u + 81 return (unsigned) ((unsigned char const*) p) [3] << 24 |
79 ((unsigned char const*) p) [0]; 82 (unsigned) ((unsigned char const*) p) [2] << 16 |
83 (unsigned) ((unsigned char const*) p) [1] << 8 |
84 (unsigned) ((unsigned char const*) p) [0];
80} 85}
81static inline blargg_ulong get_be32( void const* p ) { 86
82 return ((unsigned char const*) p) [0] * 0x01000000u + 87static inline unsigned get_be32( void const* p )
83 ((unsigned char const*) p) [1] * 0x00010000u + 88{
84 ((unsigned char const*) p) [2] * 0x00000100u + 89 return (unsigned) ((unsigned char const*) p) [0] << 24 |
85 ((unsigned char const*) p) [3]; 90 (unsigned) ((unsigned char const*) p) [1] << 16 |
91 (unsigned) ((unsigned char const*) p) [2] << 8 |
92 (unsigned) ((unsigned char const*) p) [3];
86} 93}
87static inline void set_le16( void* p, unsigned n ) { 94
95static inline void set_le16( void* p, unsigned n )
96{
88 ((unsigned char*) p) [1] = (unsigned char) (n >> 8); 97 ((unsigned char*) p) [1] = (unsigned char) (n >> 8);
89 ((unsigned char*) p) [0] = (unsigned char) n; 98 ((unsigned char*) p) [0] = (unsigned char) n;
90} 99}
91static inline void set_be16( void* p, unsigned n ) { 100
101static inline void set_be16( void* p, unsigned n )
102{
92 ((unsigned char*) p) [0] = (unsigned char) (n >> 8); 103 ((unsigned char*) p) [0] = (unsigned char) (n >> 8);
93 ((unsigned char*) p) [1] = (unsigned char) n; 104 ((unsigned char*) p) [1] = (unsigned char) n;
94} 105}
95static inline void set_le32( void* p, blargg_ulong n ) { 106
96 ((unsigned char*) p) [3] = (unsigned char) (n >> 24); 107static inline void set_le32( void* p, unsigned n )
97 ((unsigned char*) p) [2] = (unsigned char) (n >> 16); 108{
98 ((unsigned char*) p) [1] = (unsigned char) (n >> 8);
99 ((unsigned char*) p) [0] = (unsigned char) n; 109 ((unsigned char*) p) [0] = (unsigned char) n;
110 ((unsigned char*) p) [1] = (unsigned char) (n >> 8);
111 ((unsigned char*) p) [2] = (unsigned char) (n >> 16);
112 ((unsigned char*) p) [3] = (unsigned char) (n >> 24);
100} 113}
101static inline void set_be32( void* p, blargg_ulong n ) { 114
102 ((unsigned char*) p) [0] = (unsigned char) (n >> 24); 115static inline void set_be32( void* p, unsigned n )
103 ((unsigned char*) p) [1] = (unsigned char) (n >> 16); 116{
104 ((unsigned char*) p) [2] = (unsigned char) (n >> 8);
105 ((unsigned char*) p) [3] = (unsigned char) n; 117 ((unsigned char*) p) [3] = (unsigned char) n;
118 ((unsigned char*) p) [2] = (unsigned char) (n >> 8);
119 ((unsigned char*) p) [1] = (unsigned char) (n >> 16);
120 ((unsigned char*) p) [0] = (unsigned char) (n >> 24);
106} 121}
107 122
108#if defined(BLARGG_NONPORTABLE) 123#if defined(BLARGG_NONPORTABLE)
@@ -132,15 +147,21 @@ static inline void set_be32( void* p, blargg_ulong n ) {
132 147
133#ifndef GET_LE16 148#ifndef GET_LE16
134 #define GET_LE16( addr ) get_le16( addr ) 149 #define GET_LE16( addr ) get_le16( addr )
135 #define GET_LE32( addr ) get_le32( addr )
136 #define SET_LE16( addr, data ) set_le16( addr, data ) 150 #define SET_LE16( addr, data ) set_le16( addr, data )
151#endif
152
153#ifndef GET_LE32
154 #define GET_LE32( addr ) get_le32( addr )
137 #define SET_LE32( addr, data ) set_le32( addr, data ) 155 #define SET_LE32( addr, data ) set_le32( addr, data )
138#endif 156#endif
139 157
140#ifndef GET_BE16 158#ifndef GET_BE16
141 #define GET_BE16( addr ) get_be16( addr ) 159 #define GET_BE16( addr ) get_be16( addr )
142 #define GET_BE32( addr ) get_be32( addr )
143 #define SET_BE16( addr, data ) set_be16( addr, data ) 160 #define SET_BE16( addr, data ) set_be16( addr, data )
161#endif
162
163#ifndef GET_BE32
164 #define GET_BE32( addr ) get_be32( addr )
144 #define SET_BE32( addr, data ) set_be32( addr, data ) 165 #define SET_BE32( addr, data ) set_be32( addr, data )
145#endif 166#endif
146 167