blob: 499fd1d1bf314e44870243fcde59da23885951f3 [file] [log] [blame]
Alistair Delvabeaee832021-02-24 11:27:23 -08001#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
Yi Kong39bbd962022-01-09 19:41:38 +080021static Dword read_dword(int handle)
Alistair Delvabeaee832021-02-24 11:27:23 -080022{
23 Byte val[4];
Yi Kong39bbd962022-01-09 19:41:38 +080024
Alistair Delvabeaee832021-02-24 11:27:23 -080025 if(read(handle, (char *)val, 4) < 4)
26 return (Dword) -1;
27
28 return byte2dword(val);
29}
30
Yi Kong39bbd962022-01-09 19:41:38 +080031UNUSED(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
42struct SQwordRet { int64_t v; int err; };
43UNUSED(static struct SQwordRet read_sqword(int handle) )
Alistair Delvabeaee832021-02-24 11:27:23 -080044{
45 Byte val[8];
Yi Kong39bbd962022-01-09 19:41:38 +080046 struct SQwordRet ret;
Alistair Delvabeaee832021-02-24 11:27:23 -080047
Yi Kong39bbd962022-01-09 19:41:38 +080048 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;
Alistair Delvabeaee832021-02-24 11:27:23 -080055}
56
57#endif