diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-09-01 13:56:46 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-09-01 13:56:46 +0200 |
commit | 22f703cab05b7cd368f4de9e03991b7664dc5022 (patch) | |
tree | 6f4d50beaa42328e24b1c6b56b6ec059e4ef21a5 /imdi/imdi_arch.h |
Initial import of argyll version 1.5.1-8debian/1.5.1-8
Diffstat (limited to 'imdi/imdi_arch.h')
-rw-r--r-- | imdi/imdi_arch.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/imdi/imdi_arch.h b/imdi/imdi_arch.h new file mode 100644 index 0000000..afceb73 --- /dev/null +++ b/imdi/imdi_arch.h @@ -0,0 +1,71 @@ +#ifndef IMDI_ARCH_H +#define IMDI_ARCH_H + +/* Integer Multi-Dimensional Interpolation */ + +/* + * Copyright 2000 - 2007 Graeme W. Gill + * All rights reserved. + * + * This material is licenced under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 :- + * see the License.txt file for licencing details. + */ + +/* + * Contained here is any architecture/platform specific facilities, + * used by the runtime code, and used by the code generation code + * in generating the runtime code (used in the generation code itself + * only in discovering the architecture automatically), + * and the architecture table that describes the architecture to the + * code generation. + * + * The mach_arch structure is not used by the runtime, since it is implicit + * that the runtime is setup for the described architecture. + * + */ + +#ifdef ALLOW64 + +#define STR_DEF(def) #def + +/* Detect machine/compiler specifics here */ +#if defined(NT) +#define longlong __int64 +#else /* !NT, assume standard */ +#define longlong long long +#endif /* !NT */ +#define str_longlong STR_DEF(longlong) + +#endif /* ALLOW64 */ + +/* Machine/Language architectural specifications */ +typedef struct { + int bits; /* Bits in this data type */ + char *name; /* Name used to specify this type */ + int align; /* Non-zero if this type should be accessed aligned */ +} dtypes; + +#define MXDTYPES 6 + +typedef struct { + int bigend; /* Non-zero if this is a bigendian architecture */ + int uwa; /* Use wide memory access */ + + int pbits; /* Number of bits in a pointer */ + + int nords; /* Number of ord types */ + dtypes ords[MXDTYPES]; /* Ordinal types, in size order */ + int natord; /* Index of natural machine ordinal */ + + int nints; /* Number of int types */ + dtypes ints[MXDTYPES]; /* Integer types, in size order */ + int natint; /* Index of natural machine integer */ + + /* Optimisation settings */ + int shfm; /* Non-zero to use shifts for masking */ + int oscale; /* Maximum power of 2 scaled indexing mode, 0 for none. */ + int smmul; /* Has fast small multiply for index scaling */ + +} mach_arch; + +#endif /* IMDI_ARCH_H */ |