32cd07afa5c2e63f8557b0367dbac01e92a8218e
[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 #include <stdio.h>
16
17 #ifndef __CONVERT_TOOLS_H__
18 #define __CONVERT_TOOLS_H__
19
20 #define SIGNED          -1
21 #define UNSIGNED        1
22
23 #ifdef LITTLE_ENDIAN
24 #undef LITTLE_ENDIAN
25 #endif
26 #define LITTLE_ENDIAN   1
27 #ifdef BIG_ENDIAN
28 #undef BIG_ENDIAN
29 #endif
30 #define BIG_ENDIAN      -1
31
32 #define TYPE_LONG_LONG  8
33 #define TYPE_INT       4
34 #define TYPE_SHORT      2
35 #define TYPE_CHAR       1
36
37 void swap_generic(char* _in, char* _out, int _len);
38 short swap_short(short _val);
39 int swap_int(int _val);
40 char swap_char(char _val);
41 long long swap_long_long(long long _val);
42
43 int writeInt(int _val, FILE* _pF, int _iEndian);
44 int writeLongLong(long long _val, FILE* _pF, int _iEndian);
45 int writeShort(short _val, FILE* _pF, int _iEndian);
46 int writeChar(char _val, FILE* _pF, int _iEndian);
47
48 int readInt(FILE* _pF, int _iEndian, unsigned int* val);
49 int readLongLong(FILE* _pF, int _iEndian, unsigned long long* val);
50 int readShort(FILE* _pF, int _iEndian, unsigned short* val);
51 int readChar(FILE* _pF, int _iEndian, unsigned char* val);
52
53 int checkEndian(char _endian);
54 int checkType(char _type);
55
56 #endif /* !__CONVERT_TOOLS_H__ */