Philippe 23/02/2016: lfi2cdf: modif for JPHEXT/=1
[MNH-git_open_source-lfs.git] / LIBTOOLS / lib / vis5d / src / binio.h
1 /* Vis5D version 5.1 */
2
3 /*
4 Vis5D system for visualizing five dimensional gridded data sets
5 Copyright (C) 1990 - 1997  Bill Hibbard, Brian Paul, Dave Santek,
6 and Andre Battaiola.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 1, or (at your option)
11 any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23
24 /*
25  * Functions to do binary I/O of floats, ints, etc. with byte swapping
26  * as needed.
27  */
28
29
30 #ifndef BINIO_H
31 #define BINIO_H
32
33
34 /* Include files which define SEEK_SET, O_RD_ONLY, etc. */
35 /* and prototype open(), close(), lseek(), etc. */
36 #include <unistd.h>
37 #include <fcntl.h>
38
39
40
41 extern void flip4( const unsigned int *src, unsigned int *dest, int n );
42
43 extern void flip2( const unsigned short *src, unsigned short *dest, int n );
44
45
46 /* Modif pour prendre en compte la FUJI avec des entiers 32 bits
47    et des reels 64 bits. Or on a :
48
49    sizeof(int)       = 4
50    sizeof(long)      = 4
51    sizeof(long long) = 8
52    sizeof(float)     = 4
53    sizeof(double)    = 8
54 */
55
56
57 #ifdef _CRAY
58   extern void cray_to_ieee_array( long *dest, const float *source, int n );
59   extern void ieee_to_cray_array( float *dest, const long *source, int n );
60 #endif
61
62
63 /**********************************************************************/
64 /*****                     Read Functions                         *****/
65 /**********************************************************************/
66
67
68 extern int read_bytes( int f, void *b, int n );
69
70 extern int read_int2_array( int f, short *iarray, int n );
71
72 extern int read_uint2_array( int f, unsigned short *iarray, int n );
73
74 extern int read_int4( int f, int *i );
75
76 extern int read_int4_array( int f, int *iarray, int n );
77
78 extern int read_float4( int f, float *x );
79
80 extern int read_float4_array( int f, float *x, int n );
81
82 extern int read_block( int f, void *data, int elements, int elsize );
83
84
85
86 /**********************************************************************/
87 /*****                         Write Functions                    *****/
88 /**********************************************************************/
89
90
91 extern int write_bytes( int f, const void *b, int n );
92
93 extern int write_int2_array( int f, const short *iarray, int n );
94
95 extern int write_uint2_array( int f, const unsigned short *iarray, int n );
96
97 extern int write_int4( int f, int i );
98
99 extern int write_int4_array( int f, const int *iarray, int n );
100
101 extern int write_float4( int f, float x );
102
103 extern int write_float4_array( int f, const float *x, int n );
104
105 extern int write_block( int f, const void *data, int elements, int elsize );
106
107 #endif