1 #ifndef READ_DWORD
2 #define READ_DWORD
3
4 /* Copyright 2007,2009 Alain Knaff.
5 * This file is part of mtools.
6 *
7 * Mtools is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * Mtools is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with Mtools. If not, see <http://www.gnu.org/licenses/>.
19 */
20
read_dword(int handle)21 static Dword read_dword(int handle)
22 {
23 Byte val[4];
24
25 if(read(handle, (char *)val, 4) < 4)
26 return (Dword) -1;
27
28 return byte2dword(val);
29 }
30
UNUSED(static int32_t read_sdword (int handle))31 UNUSED(static int32_t read_sdword(int handle))
32 {
33 Byte val[4];
34
35 if(read(handle, (char *)val, 4) < 4)
36 return (int32_t) -1;
37
38 return byte2sdword(val);
39 }
40
41
42 struct SQwordRet { int64_t v; int err; };
UNUSED(static struct SQwordRet read_sqword (int handle))43 UNUSED(static struct SQwordRet read_sqword(int handle) )
44 {
45 Byte val[8];
46 struct SQwordRet ret;
47
48 if(read(handle, (char *)val, 8) < 8) {
49 ret.err=-1;
50 } else {
51 ret.v = (int64_t) byte2qword(val);
52 ret.err = 0;
53 }
54 return ret;
55 }
56
57 #endif
58