fix mput/mputi for (u)int64 > 53 bits
[scilab.git] / scilab / modules / fileio / src / c / convert_tools.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) - 2013 - Scilab Enterprises - Antoine ELIAS
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 #include <stdio.h>
17 #include "dynlib_fileio.h"
18
19 #ifndef __CONVERT_TOOLS_H__
20 #define __CONVERT_TOOLS_H__
21
22 #define SIGNED          -1
23 #define UNSIGNED        1
24
25 #ifdef LITTLE_ENDIAN
26 #undef LITTLE_ENDIAN
27 #endif
28 #define LITTLE_ENDIAN   1
29 #ifdef BIG_ENDIAN
30 #undef BIG_ENDIAN
31 #endif
32 #define BIG_ENDIAN      -1
33
34 #define TYPE_LONG_LONG  8
35 #define TYPE_INT       4
36 #define TYPE_SHORT      2
37 #define TYPE_CHAR       1
38
39 void swap_generic(char* _in, char* _out, int _len);
40 short swap_short(short _val);
41 int swap_int(int _val);
42 char swap_char(char _val);
43 long long swap_long_long(long long _val);
44
45 FILEIO_IMPEXP int writeInt(int _val, FILE* _pF, int _iEndian);
46 FILEIO_IMPEXP int writeLongLong(long long _val, FILE* _pF, int _iEndian);
47 FILEIO_IMPEXP int writeShort(short _val, FILE* _pF, int _iEndian);
48 FILEIO_IMPEXP int writeChar(char _val, FILE* _pF, int _iEndian);
49
50 FILEIO_IMPEXP int readInt(FILE* _pF, int _iEndian, unsigned int* val);
51 FILEIO_IMPEXP int readLongLong(FILE* _pF, int _iEndian, unsigned long long* val);
52 FILEIO_IMPEXP int readShort(FILE* _pF, int _iEndian, unsigned short* val);
53 FILEIO_IMPEXP int readChar(FILE* _pF, int _iEndian, unsigned char* val);
54
55 FILEIO_IMPEXP int checkEndian(char _endian);
56 FILEIO_IMPEXP int checkType(char _type);
57
58 #endif /* !__CONVERT_TOOLS_H__ */