1 /* 2 get.h -- Prototypes for `get.c'. 3 4 Copyright (C) 1994-95 K. Scott Hunziker. 5 Copyright (C) 1990-94 The Boeing Company. 6 7 See the file COPYING for license, warranty, and permission details. 8 */ 9 10 /* $Id: get.h,v 1.1.1.1 1996/04/17 05:56:18 ksh Exp $ */ 11 12 #ifndef GET_H 13 #define GET_H 1 14 15 #include "entity.h" 16 17 #if BINARY_FORMAT == IEEE_LITTLE_ENDIAN 18 19 #define READ_INTS( ptr, n, s ) \ 20 ( errno = 0, \ 21 ( fread_int_reverse( (char *) (ptr), n, s ) < (n) ) ? \ 22 ( READ_WARN( s ), 0 ) : 1 ) 23 24 #define READ_DOUBLES( ptr, n, s ) \ 25 ( errno = 0, \ 26 ( fread_double_reverse( (char *) (ptr), n, s ) < (n) ) ? \ 27 ( READ_WARN( s ), 0 ) : 1 ) 28 29 #elif BINARY_FORMAT == CRAY_FLOAT 30 31 #define READ_INTS( ptr, n, s ) \ 32 ( errno = 0, \ 33 ( fread_int_cray( (char *) (ptr), n, s ) < (n) ) ? \ 34 ( READ_WARN( s ), 0 ) : 1 ) 35 36 #define READ_DOUBLES( ptr, n, s ) \ 37 ( errno = 0, \ 38 ( fread_double_cray( (char *) (ptr), n, s ) < (n) ) ? \ 39 ( READ_WARN( s ), 0 ) : 1 ) 40 41 extern size_t PROTO (fread_int_cray, 42 (char *ptr, size_t n, FILE * stream)); 43 extern size_t PROTO (fread_double_cray, 44 (char *ptr, size_t n, FILE * stream)); 45 extern size_t PROTO (fread_int_cray_reverse, 46 (char *ptr, size_t n, FILE * stream)); 47 extern size_t PROTO (fread_double_cray_reverse, 48 (char *ptr, size_t n, FILE * stream)); 49 50 #else 51 52 #define READ_INTS( ptr, n, s ) \ 53 ( errno = 0, \ 54 ( fread( ptr, 4, n, s ) < (n) ) ? \ 55 ( READ_WARN( s ), 0 ) : 1 ) 56 57 #define READ_DOUBLES( ptr, n, s ) \ 58 ( errno = 0, \ 59 ( fread( ptr, 8, n, s ) < (n) ) ? \ 60 ( READ_WARN( s ), 0 ) : 1 ) 61 62 #endif 63 64 #define READ_INT( ptr, s ) READ_INTS( ptr, 1, s ) 65 #define READ_DOUBLE( ptr, s ) READ_DOUBLES( ptr, 1, s ) 66 67 extern ENTITY *PROTO (bi_get, (int n, ENTITY * fname)); 68 extern ENTITY *PROTO (get_entity, (FILE * stream)); 69 70 extern size_t PROTO (fread_int, 71 (char *ptr, size_t n, FILE * stream)); 72 extern size_t PROTO (fread_double, 73 (char *ptr, size_t n, FILE * stream)); 74 extern size_t PROTO (fread_int_reverse, 75 (char *ptr, size_t n, FILE * stream)); 76 extern size_t PROTO (fread_double_reverse, 77 (char *ptr, size_t n, FILE * stream)); 78 79 #endif /* GET_H */ 80