diff options
Diffstat (limited to 'apps/metadata/metadata_common.c')
-rw-r--r-- | apps/metadata/metadata_common.c | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/apps/metadata/metadata_common.c b/apps/metadata/metadata_common.c index 685b32a25e..d81d9f71d3 100644 --- a/apps/metadata/metadata_common.c +++ b/apps/metadata/metadata_common.c | |||
@@ -94,8 +94,8 @@ long read_string(int fd, char* buf, long buf_size, int eos, long size) | |||
94 | return read_bytes; | 94 | return read_bytes; |
95 | } | 95 | } |
96 | 96 | ||
97 | /* Read an unsigned 32-bit integer from a big-endian file. */ | ||
98 | #ifdef ROCKBOX_LITTLE_ENDIAN | 97 | #ifdef ROCKBOX_LITTLE_ENDIAN |
98 | /* Read an unsigned 32-bit integer from a big-endian file. */ | ||
99 | int read_uint32be(int fd, unsigned int* buf) | 99 | int read_uint32be(int fd, unsigned int* buf) |
100 | { | 100 | { |
101 | size_t n; | 101 | size_t n; |
@@ -104,6 +104,39 @@ int read_uint32be(int fd, unsigned int* buf) | |||
104 | *buf = betoh32(*buf); | 104 | *buf = betoh32(*buf); |
105 | return n; | 105 | return n; |
106 | } | 106 | } |
107 | #else | ||
108 | /* Read unsigned integers from a little-endian file. */ | ||
109 | int read_uint16le(int fd, uint16_t* buf) | ||
110 | { | ||
111 | size_t n; | ||
112 | |||
113 | n = read(fd, (char*) buf, 2); | ||
114 | *buf = letoh16(*buf); | ||
115 | return n; | ||
116 | } | ||
117 | int read_uint32le(int fd, uint32_t* buf) | ||
118 | { | ||
119 | size_t n; | ||
120 | |||
121 | n = read(fd, (char*) buf, 4); | ||
122 | *buf = letoh32(*buf); | ||
123 | return n; | ||
124 | } | ||
125 | int read_uint64le(int fd, uint64_t* buf) | ||
126 | { | ||
127 | size_t n; | ||
128 | uint8_t data[8]; | ||
129 | int i; | ||
130 | |||
131 | n = read(fd, data, 8); | ||
132 | |||
133 | for (i=7, *buf=0; i>=0; i--) { | ||
134 | *buf <<= 8; | ||
135 | *buf |= data[i]; | ||
136 | } | ||
137 | |||
138 | return n; | ||
139 | } | ||
107 | #endif | 140 | #endif |
108 | 141 | ||
109 | /* Read an unaligned 32-bit little endian long from buffer. */ | 142 | /* Read an unaligned 32-bit little endian long from buffer. */ |