3 Description: Support additional architectures.
4 Author: Francesco Paolo Lovergine <frankie@debian.org>
10 /* (i.e. Big-Endian, all 64-bit architecture w/IEEE Floats) */
11 /*--------------------------------------------------------------------------*/
12 +#define DFMT_S390 0x1111
13 #define DFMT_SUN 0x1111
14 #define DFMT_SUN_INTEL 0x4441
15 #define DFMT_ALLIANT 0x1111
17 #define DFMT_CTSS 0x3331
18 #define DFMT_VAX 0x2221
19 #define DFMT_MIPSEL 0x4441
20 +#define DFMT_MIPSEB 0x1111
21 #define DFMT_PC 0x4441
22 #define DFMT_APPLE 0x1111
23 #define DFMT_APPLE_INTEL 0x4441
25 #define DFMT_IA64 0x4441
26 #define DFMT_LINUX64 0x4441
27 #define DFMT_POWERPC64 0x1111
28 +#define DFMT_POWERPC64LE 0x4441
29 +#define DFMT_ARMV4L 0x4441
30 +#define DFMT_AARCH64 0x4441
31 +#define DFMT_X86_64 0x4441
32 +#define DFMT_SH 0x4441
33 +#define DFMT_SHEB 0x1111
35 /* I/O library constants */
37 @@ -288,7 +296,7 @@ typedef int hdf_pint_t;
41 -#if defined(HP9000) || (!defined(__convexc__) && (defined(hpux) || defined(__hpux)))
42 +#if defined(HP9000) || (!defined(__convexc__) && (defined(hpux) || defined(__hpux) || defined(__hppa__)))
46 @@ -347,6 +355,10 @@ typedef int hdf_pint_t;
48 #define JMEMSYS MEM_ANSI
51 +#define FNAME_POST_UNDERSCORE
57 @@ -666,6 +678,410 @@ typedef int hdf_pint_t;
58 #endif /* !(defined(__APPLE__)) */
60 /*-----------------------------------------------------*/
61 +#if defined (__linux__) && defined (__mc68000__)
64 +If you get an error on this line more than one machine type has been defined.
65 +Please check your Makefile.
67 +#define GOT_MACHINE 1
70 +#include <sys/types.h> /* for unbuffered file I/O */
71 +#include <sys/stat.h>
73 +#include <ctype.h> /* for character macros */
75 +#define DF_MT DFMT_MOTOROLA
77 +#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
79 +#endif /* end VOID */
80 +typedef void * VOIDP;
83 +typedef unsigned char uchar8;
85 +typedef unsigned char uint8;
86 +typedef short int int16;
87 +typedef unsigned short int uint16;
88 +typedef long int int32;
89 +typedef unsigned long int uint32;
91 +typedef unsigned int uintn;
92 +typedef float float32;
93 +typedef double float64;
94 +typedef long intf; /* size of INTEGERs in Fortran compiler */
95 +typedef int hdf_pint_t; /* an integer the same size as a pointer */
96 +#define FNAME_POST_UNDERSCORE
97 +#define _fcdtocp(desc) (desc)
100 +#define FILELIB PAGEBUFIO /* enable page buffering */
102 +#define FILELIB UNIXBUFIO
105 +/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
107 +/* Determine the memory manager we are going to use. Valid values are: */
108 +/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
109 +/* what each does */
110 +#define JMEMSYS MEM_ANSI
112 +#define INCLUDES_ARE_ANSI
114 +#endif /* Linux/m68k */
116 +#if defined (__linux__) && defined (__sparc__)
119 +If you get an error on this line more than one machine type has been defined.
120 +Please check your Makefile.
122 +#define GOT_MACHINE 1
125 +#include <sys/types.h> /* for unbuffered file I/O */
126 +#include <sys/stat.h>
128 +#include <ctype.h> /* for character macros */
130 +#define DF_MT DFMT_SUN
132 +#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
134 +#endif /* end VOID */
135 +typedef void * VOIDP;
136 +typedef char * _fcd;
138 +typedef unsigned char uchar8;
140 +typedef unsigned char uint8;
141 +typedef short int int16;
142 +typedef unsigned short int uint16;
143 +#ifdef _LP64 /* 64-bit environment */
145 +typedef unsigned int uint32;
146 +#else /* 32-bit environment */
147 +typedef long int int32;
148 +typedef unsigned long int uint32;
151 +typedef unsigned int uintn;
152 +typedef float float32;
153 +typedef double float64;
154 +typedef long intf; /* size of INTEGERs in Fortran compiler */
155 +#ifdef _LP64 /* 64-bit environment */
156 +typedef long hdf_pint_t; /* an integer the same size as a pointer */
157 +#else /* 32-bit environment */
158 +typedef int hdf_pint_t; /* an integer the same size as a pointer */
160 +#define FNAME_POST_UNDERSCORE
161 +#define _fcdtocp(desc) (desc)
164 +#define FILELIB PAGEBUFIO /* enable page buffering */
166 +#define FILELIB UNIXBUFIO
169 +/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
171 +/* Determine the memory manager we are going to use. Valid values are: */
172 +/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
173 +/* what each does */
174 +#define JMEMSYS MEM_ANSI
176 +#define INCLUDES_ARE_ANSI
178 +#endif /* Linux/Sparc */
180 +#if defined (__linux__) && defined (__powerpc__) && !defined(__powerpc64__)
183 +If you get an error on this line more than one machine type has been defined.
184 +Please check your Makefile.
186 +#define GOT_MACHINE 1
189 +#include <sys/types.h> /* for unbuffered file I/O */
190 +#include <sys/stat.h>
192 +#include <ctype.h> /* for character macros */
194 +#define DF_MT DFMT_MOTOROLA
196 +#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
198 +#endif /* end VOID */
199 +typedef void * VOIDP;
200 +typedef char * _fcd;
202 +typedef unsigned char uchar8;
203 +typedef signed char int8;
204 +typedef unsigned char uint8;
205 +typedef short int int16;
206 +typedef unsigned short int uint16;
207 +typedef long int int32;
208 +typedef unsigned long int uint32;
210 +typedef unsigned int uintn;
211 +typedef float float32;
212 +typedef double float64;
213 +typedef long intf; /* size of INTEGERs in Fortran compiler */
214 +typedef int hdf_pint_t; /* an integer the same size as a pointer */
215 +#define FNAME_POST_UNDERSCORE
216 +#define _fcdtocp(desc) (desc)
219 +#define FILELIB PAGEBUFIO /* enable page buffering */
221 +#define FILELIB UNIXBUFIO
224 +/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
226 +/* Determine the memory manager we are going to use. Valid values are: */
227 +/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
228 +/* what each does */
229 +#define JMEMSYS MEM_ANSI
231 +#define INCLUDES_ARE_ANSI
233 +#endif /* Linux/powerpc */
235 +#if defined (__linux__) && defined (__s390__)
238 +If you get an error on this line more than one machine type has been defined.
239 +Please check your Makefile.
241 +#define GOT_MACHINE 1
244 +#include <sys/types.h> /* for unbuffered file I/O */
245 +#include <sys/stat.h>
247 +#include <ctype.h> /* for character macros */
249 +#define DF_MT DFMT_S390
251 +#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
253 +#endif /* end VOID */
254 +typedef void * VOIDP;
255 +typedef char * _fcd;
257 +typedef unsigned char uchar8;
258 +typedef signed char int8;
259 +typedef unsigned char uint8;
260 +typedef short int int16;
261 +typedef unsigned short int uint16;
262 +#ifdef _LP64 /* 64-bit environment */
264 +typedef unsigned int uint32;
265 +#else /* 32-bit environment */
266 +typedef long int int32;
267 +typedef unsigned long int uint32;
270 +typedef unsigned int uintn;
271 +typedef float float32;
272 +typedef double float64;
273 +typedef long intf; /* size of INTEGERs in Fortran compiler */
274 +#ifdef _LP64 /* 64-bit environment */
275 +typedef long hdf_pint_t; /* an integer the same size as a pointer */
276 +#else /* 32-bit environment */
277 +typedef int hdf_pint_t; /* an integer the same size as a pointer */
279 +#define FNAME_POST_UNDERSCORE
280 +#define _fcdtocp(desc) (desc)
283 +#define FILELIB PAGEBUFIO /* enable page buffering */
285 +#define FILELIB UNIXBUFIO
288 +/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
290 +/* Determine the memory manager we are going to use. Valid values are: */
291 +/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
292 +/* what each does */
293 +#define JMEMSYS MEM_ANSI
295 +#define INCLUDES_ARE_ANSI
297 +#endif /* Linux/s390 */
299 +#if defined (__linux__) && (defined (__MIPSEB__) || defined(__MIPSEL__))
302 +If you get an error on this line more than one machine type has been defined.
303 +Please check your Makefile.
305 +#define GOT_MACHINE 1
308 +#include <sys/types.h> /* for unbuffered file I/O */
309 +#include <sys/stat.h>
311 +#include <ctype.h> /* for character macros */
313 +#if defined (__MIPSEB__)
314 +#define DF_MT DFMT_MIPSEB
315 +#elif defined(__MIPSEL__)
316 +#define DF_MT DFMT_MIPSEL
319 +#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
321 +#endif /* end VOID */
322 +typedef void * VOIDP;
323 +typedef char * _fcd;
325 +typedef unsigned char uchar8;
326 +typedef signed char int8;
327 +typedef unsigned char uint8;
328 +typedef short int int16;
329 +typedef unsigned short int uint16;
331 +typedef unsigned int uint32;
333 +typedef unsigned int uintn;
334 +typedef float float32;
335 +typedef double float64;
336 +typedef long intf; /* size of INTEGERs in Fortran compiler */
337 +typedef long int hdf_pint_t; /* an integer the same size as a pointer */
338 +#define FNAME_POST_UNDERSCORE
339 +#define _fcdtocp(desc) (desc)
342 +#define FILELIB PAGEBUFIO /* enable page buffering */
344 +#define FILELIB UNIXBUFIO
347 +/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
349 +/* Determine the memory manager we are going to use. Valid values are: */
350 +/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
351 +/* what each does */
352 +#define JMEMSYS MEM_ANSI
354 +#define INCLUDES_ARE_ANSI
356 +#endif /* Linux/mips */
358 +#if defined (__linux__) && defined (__arm__)
361 +If you get an error on this line more than one machine type has been defined.
362 +Please check your Makefile.
364 +#define GOT_MACHINE 1
367 +#include <sys/types.h> /* for unbuffered file I/O */
368 +#include <sys/stat.h>
370 +#include <ctype.h> /* for character macros */
372 +#define DF_MT DFMT_ARMV4L
374 +#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
376 +#endif /* end VOID */
377 +typedef void * VOIDP;
378 +typedef char * _fcd;
380 +typedef unsigned char uchar8;
381 +typedef signed char int8;
382 +typedef unsigned char uint8;
383 +typedef short int int16;
384 +typedef unsigned short int uint16;
386 +typedef unsigned int uint32;
388 +typedef unsigned int uintn;
389 +typedef float float32;
390 +typedef double float64;
391 +typedef long intf; /* size of INTEGERs in Fortran compiler */
392 +typedef long hdf_pint_t; /* an integer the same size as a pointer */
393 +#define FNAME_POST_UNDERSCORE
394 +#define _fcdtocp(desc) (desc)
397 +#define FILELIB PAGEBUFIO /* enable page buffering */
399 +#define FILELIB UNIXBUFIO
402 +/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
404 +/* Determine the memory manager we are going to use. Valid values are: */
405 +/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
406 +/* what each does */
407 +#define JMEMSYS MEM_ANSI
409 +#define INCLUDES_ARE_ANSI
411 +#endif /* Linux/arm */
413 +#if defined (__linux__) && defined (__aarch64__)
416 +If you get an error on this line more than one machine type has been defined.
417 +Please check your Makefile.
419 +#define GOT_MACHINE 1
422 +#include <sys/types.h> /* for unbuffered file I/O */
423 +#include <sys/stat.h>
425 +#include <ctype.h> /* for character macros */
427 +#define DF_MT DFMT_AARCH64
430 +typedef void * VOIDP;
431 +typedef char * _fcd;
433 +typedef unsigned char uchar8;
434 +typedef signed char int8;
435 +typedef unsigned char uint8;
436 +typedef short int int16;
437 +typedef unsigned short int uint16;
439 +typedef unsigned int uint32;
441 +typedef unsigned int uintn;
442 +typedef float float32;
443 +typedef double float64;
444 +typedef int intf; /* size of INTEGERs in Fortran compiler */
445 +typedef long hdf_pint_t; /* an integer the same size as a pointer */
446 +#define FNAME_POST_UNDERSCORE
447 +#define _fcdtocp(desc) (desc)
448 +#define FILELIB UNIXBUFIO
454 +/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
456 +/* Determine the memory manager we are going to use. Valid values are: */
457 +/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
458 +/* what each does */
459 +#define JMEMSYS MEM_ANSI
461 +#define INCLUDES_ARE_ANSI
463 +#endif /* Linux/aarch64 */
465 #if defined(NEXT) || defined(NeXT)
468 @@ -928,7 +1344,11 @@ Please check your Makefile.
470 #include <sys/file.h> /* for unbuffered i/o stuff */
471 #include <sys/stat.h>
472 -#define DF_MT DFMT_POWERPC64
473 +#ifdef __LITTLE_ENDIAN__
474 +#define DF_MT DFMT_POWERPC64LE
476 +#define DF_MT DFMT_POWERPC64
481 @@ -952,6 +1372,11 @@ typedef long hdf_pint_t;
482 #define _fcdtocp(desc) (desc)
483 #define FILELIB UNIXBUFIO
490 /* JPEG #define's - Look in the JPEG docs before changing - (Q) */
492 /* Determine the memory manager we are going to use. Valid values are: */
493 @@ -1097,6 +1522,8 @@ typedef long hdf_pint_t;
494 #define _fcdtocp(desc) (desc)
495 #define FILELIB UNIXBUFIO
499 /* JPEG #define's - Look in the JPEG docs before changing - (Q) */
501 /* Determine the memory manager we are going to use. Valid values are: */
502 @@ -1111,6 +1538,66 @@ typedef long hdf_pint_t;
506 +/* Renesas SuperH SH3(little/big)/SH4(little/big) */
507 +#if defined (__linux__) && defined(__sh__)
510 +If you get an error on this line more than one machine type has been defined.
511 +Please check your Makefile.
513 +#define GOT_MACHINE 1
516 +#include <sys/types.h> /* for unbuffered file I/O */
517 +#include <sys/stat.h>
519 +#include <ctype.h> /* for character macros */
521 +#if defined (__LITTLE_ENDIAN__)
522 +#define DF_MT DFMT_SH
523 +#elif defined(__BIG_ENDIAN__)
524 +#define DF_MT DFMT_SHEB
527 +#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
529 +#endif /* end VOID */
531 +typedef void * VOIDP;
532 +typedef char * _fcd;
534 +typedef unsigned char uchar8;
535 +typedef signed char int8;
536 +typedef unsigned char uint8;
537 +typedef short int int16;
538 +typedef unsigned short int uint16;
539 +typedef long int int32;
540 +typedef unsigned long int uint32;
542 +typedef unsigned int uintn;
543 +typedef float float32;
544 +typedef double float64;
546 +typedef int hdf_pint_t;
547 +#define FNAME_POST_UNDERSCORE
548 +#define _fcdtocp(desc) (desc)
551 +#define FILELIB PAGEBUFIO /* enable page buffering */
553 +#define FILELIB UNIXBUFIO
556 +/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
557 +/* Determine the memory manager we are going to use. Valid values are: */
558 +/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
559 +/* what each does */
560 +#define JMEMSYS MEM_ANSI
562 +#define INCLUDES_ARE_ANSI
564 +#endif /* Linux/sh */
567 No machine type has been defined. Your Makefile needs to have someing like
568 -DSUN or -DUNICOS in order for the HDF internal structures to be defined
569 --- a/hdf/src/hconv.h
570 +++ b/hdf/src/hconv.h
572 /* CONSTANT DEFINITIONS */
573 /*****************************************************************************/
574 /* Generally Big-Endian machines */
575 -#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__)
576 +#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !(defined(__powerpc__) && defined(__LITTLE_ENDIAN__)) && !defined(__aarch64__) && !defined(__ARM_EABI__)
577 # define UI8_IN DFKnb1b /* Unsigned Integer, 8 bits */
578 # define UI8_OUT DFKnb1b
579 # define SI16_IN DFKnb2b /* S = Signed */