/*
 * This is a machine-generated file. Please do not edit it by hand.
 * (As of sbcl-0.8.14, it came from WRITE-CONFIG-H in genesis.lisp.)
 *
 * This file contains low-level information about the
 * internals of a particular version and configuration
 * of SBCL. It is used by the C compiler to create a runtime
 * support environment, an executable program in the host
 * operating system's native format, which can then be used to
 * load and run 'core' files, which are basically programs
 * in SBCL's own format.
 */
#ifndef SBCL_GENESIS_CONSTANTS
#define SBCL_GENESIS_CONSTANTS 1
#define N_FIXNUM_TAG_BITS 2 /* 0x2 */
#define FIXNUM_TAG_MASK 3 /* 0x3 */
#define N_LOWTAG_BITS 3 /* 0x3 */
#define N_WORD_BYTES 4 /* 0x4 */
#define LOWTAG_MASK 7 /* 0x7 */
#define N_WIDETAG_BITS 8 /* 0x8 */
#define N_WORD_BITS 32 /* 0x20 */
#define WIDETAG_MASK 255 /* 0xFF */

#define EVEN_FIXNUM_LOWTAG 0 /* 0x0 */
#define INSTANCE_POINTER_LOWTAG 1 /* 0x1 */
#define OTHER_IMMEDIATE_0_LOWTAG 2 /* 0x2 */
#define LIST_POINTER_LOWTAG 3 /* 0x3 */
#define ODD_FIXNUM_LOWTAG 4 /* 0x4 */
#define FUN_POINTER_LOWTAG 5 /* 0x5 */
#define OTHER_IMMEDIATE_1_LOWTAG 6 /* 0x6 */
#define OTHER_POINTER_LOWTAG 7 /* 0x7 */

#define WORD_SHIFT 2 /* 0x2 */
#define BIGNUM_WIDETAG 10 /* 0xA */
#define RATIO_WIDETAG 14 /* 0xE */
#define SINGLE_FLOAT_WIDETAG 18 /* 0x12 */
#define DOUBLE_FLOAT_WIDETAG 22 /* 0x16 */
#define COMPLEX_WIDETAG 26 /* 0x1A */
#define COMPLEX_SINGLE_FLOAT_WIDETAG 30 /* 0x1E */
#define FLOAT_SIGN_SHIFT 31 /* 0x1F */
#define COMPLEX_DOUBLE_FLOAT_WIDETAG 34 /* 0x22 */
#define CODE_HEADER_WIDETAG 38 /* 0x26 */
#define SIMPLE_FUN_HEADER_WIDETAG 42 /* 0x2A */
#define CLOSURE_HEADER_WIDETAG 46 /* 0x2E */
#define FUNCALLABLE_INSTANCE_HEADER_WIDETAG 50 /* 0x32 */
#define RETURN_PC_HEADER_WIDETAG 54 /* 0x36 */
#define VALUE_CELL_HEADER_WIDETAG 58 /* 0x3A */
#define SYMBOL_HEADER_WIDETAG 62 /* 0x3E */
#define CHARACTER_WIDETAG 66 /* 0x42 */
#define SAP_WIDETAG 70 /* 0x46 */
#define UNBOUND_MARKER_WIDETAG 74 /* 0x4A */
#define WEAK_POINTER_WIDETAG 78 /* 0x4E */
#define INSTANCE_HEADER_WIDETAG 82 /* 0x52 */
#define FDEFN_WIDETAG 86 /* 0x56 */
#define NO_TLS_VALUE_MARKER_WIDETAG 90 /* 0x5A */
#define SIMPLE_ARRAY_UNSIGNED_BYTE_2_WIDETAG 138 /* 0x8A */
#define SIMPLE_ARRAY_UNSIGNED_BYTE_4_WIDETAG 142 /* 0x8E */
#define SIMPLE_ARRAY_UNSIGNED_BYTE_7_WIDETAG 146 /* 0x92 */
#define SIMPLE_ARRAY_UNSIGNED_BYTE_8_WIDETAG 150 /* 0x96 */
#define SIMPLE_ARRAY_UNSIGNED_BYTE_15_WIDETAG 154 /* 0x9A */
#define SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG 158 /* 0x9E */
#define SIMPLE_ARRAY_NIL_WIDETAG 162 /* 0xA2 */
#define SIMPLE_BASE_STRING_WIDETAG 166 /* 0xA6 */
#define SIMPLE_CHARACTER_STRING_WIDETAG 170 /* 0xAA */
#define SIMPLE_BIT_VECTOR_WIDETAG 174 /* 0xAE */
#define SIMPLE_VECTOR_WIDETAG 178 /* 0xB2 */
#define SIMPLE_ARRAY_UNSIGNED_FIXNUM_WIDETAG 182 /* 0xB6 */
#define SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG 186 /* 0xBA */
#define SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG 190 /* 0xBE */
#define SIMPLE_ARRAY_SIGNED_BYTE_8_WIDETAG 194 /* 0xC2 */
#define SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG 198 /* 0xC6 */
#define SIMPLE_ARRAY_FIXNUM_WIDETAG 202 /* 0xCA */
#define SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG 206 /* 0xCE */
#define SIMPLE_ARRAY_SINGLE_FLOAT_WIDETAG 210 /* 0xD2 */
#define SIMPLE_ARRAY_DOUBLE_FLOAT_WIDETAG 214 /* 0xD6 */
#define SIMPLE_ARRAY_COMPLEX_SINGLE_FLOAT_WIDETAG 218 /* 0xDA */
#define SIMPLE_ARRAY_COMPLEX_DOUBLE_FLOAT_WIDETAG 222 /* 0xDE */
#define SIMPLE_ARRAY_WIDETAG 226 /* 0xE2 */
#define COMPLEX_VECTOR_NIL_WIDETAG 230 /* 0xE6 */
#define COMPLEX_BASE_STRING_WIDETAG 234 /* 0xEA */
#define COMPLEX_CHARACTER_STRING_WIDETAG 238 /* 0xEE */
#define COMPLEX_BIT_VECTOR_WIDETAG 242 /* 0xF2 */
#define COMPLEX_VECTOR_WIDETAG 246 /* 0xF6 */
#define COMPLEX_ARRAY_WIDETAG 250 /* 0xFA */

#define flag_DeflatedCoreSpaceId 4 /* 0x4 */

#define trap_Halt 8 /* 0x8 */
#define trap_PendingInterrupt 9 /* 0x9 */
#define trap_Error 10 /* 0xA */
#define trap_Cerror 11 /* 0xB */
#define trap_Breakpoint 12 /* 0xC */
#define trap_FunEndBreakpoint 13 /* 0xD */
#define trap_SingleStepAround 14 /* 0xE */
#define trap_SingleStepBefore 15 /* 0xF */
#define trap_ObjectNotList 24 /* 0x18 */
#define trap_ObjectNotInstance 25 /* 0x19 */

#define subtype_VectorNormal 0 /* 0x0 */
#define subtype_VectorValidHashing 2 /* 0x2 */

#define sc_Constant 0 /* 0x0 */
#define sc_FpConstant 1 /* 0x1 */
#define sc_Immediate 4 /* 0x4 */
#define sc_ControlStack 5 /* 0x5 */
#define sc_SignedStack 6 /* 0x6 */
#define sc_UnsignedStack 7 /* 0x7 */
#define sc_CharacterStack 8 /* 0x8 */
#define sc_SapStack 9 /* 0x9 */
#define sc_SingleStack 10 /* 0xA */
#define sc_DoubleStack 11 /* 0xB */
#define sc_ComplexSingleStack 12 /* 0xC */
#define sc_ComplexDoubleStack 13 /* 0xD */
#define sc_IgnoreMe 14 /* 0xE */
#define sc_AnyReg 15 /* 0xF */
#define sc_DescriptorReg 16 /* 0x10 */
#define sc_CharacterReg 17 /* 0x11 */
#define sc_SapReg 18 /* 0x12 */
#define sc_SignedReg 19 /* 0x13 */
#define sc_UnsignedReg 20 /* 0x14 */
#define sc_WordReg 21 /* 0x15 */
#define sc_ByteReg 22 /* 0x16 */
#define sc_SingleReg 23 /* 0x17 */
#define sc_DoubleReg 24 /* 0x18 */
#define sc_ComplexSingleReg 25 /* 0x19 */
#define sc_ComplexDoubleReg 26 /* 0x1A */
#define sc_CatchBlock 27 /* 0x1B */

#define BINDING_SIZE 2 /* 0x2 */
#define CONS_SIZE 2 /* 0x2 */
#define SAP_SIZE 2 /* 0x2 */
#define SINGLE_FLOAT_SIZE 2 /* 0x2 */
#define VALUE_CELL_SIZE 2 /* 0x2 */
#define COMPLEX_SINGLE_FLOAT_SIZE 3 /* 0x3 */
#define COMPLEX_SIZE 3 /* 0x3 */
#define RATIO_SIZE 3 /* 0x3 */
#define UNWIND_BLOCK_SIZE 3 /* 0x3 */
#define DOUBLE_FLOAT_SIZE 4 /* 0x4 */
#define FDEFN_SIZE 4 /* 0x4 */
#define WEAK_POINTER_SIZE 4 /* 0x4 */
#define CATCH_BLOCK_SIZE 5 /* 0x5 */
#define COMPLEX_DOUBLE_FLOAT_SIZE 6 /* 0x6 */
#define SYMBOL_SIZE 7 /* 0x7 */
#define LINKAGE_TABLE_ENTRY_SIZE 8 /* 0x8 */
#define TLS_SIZE 4096 /* 0x1000 */

#define GENCGC_ALLOC_GRANULARITY 0LU /* 0x0 */
#define GENCGC_CARD_BYTES 4096LU /* 0x1000 */
#define GENCGC_RELEASE_GRANULARITY 4096LU /* 0x1000 */
#define READ_ONLY_SPACE_START 16777216LU /* 0x1000000 */
#define READ_ONLY_SPACE_END 17817600LU /* 0x10FE000 */
#define STATIC_SPACE_START 17825792LU /* 0x1100000 */
#define STATIC_SPACE_END 18870272LU /* 0x11FF000 */
#define LINKAGE_TABLE_SPACE_START 18874368LU /* 0x1200000 */
#define LINKAGE_TABLE_SPACE_END 19918848LU /* 0x12FF000 */
#define DYNAMIC_SPACE_START 150994944LU /* 0x9000000 */
#define DYNAMIC_SPACE_END 687865856LU /* 0x29000000 */
#define MAX_DYNAMIC_SPACE_END 4294967295LU /* 0xFFFFFFFF */

#define END_CORE_ENTRY_TYPE_CODE 3840 /* 0xF00 */
#define VERSION_CORE_ENTRY_TYPE_CODE 3860 /* 0xF14 */
#define NEW_DIRECTORY_CORE_ENTRY_TYPE_CODE 3861 /* 0xF15 */
#define INITIAL_FUN_CORE_ENTRY_TYPE_CODE 3863 /* 0xF17 */
#define PAGE_TABLE_CORE_ENTRY_TYPE_CODE 3880 /* 0xF28 */
#define BUILD_ID_CORE_ENTRY_TYPE_CODE 3899 /* 0xF3B */

#define DYNAMIC_CORE_SPACE_ID 1 /* 0x1 */
#define STATIC_CORE_SPACE_ID 2 /* 0x2 */
#define MAX_CORE_SPACE_ID 3 /* 0x3 */
#define READ_ONLY_CORE_SPACE_ID 3 /* 0x3 */
#define DEFLATED_CORE_SPACE_ID_FLAG 4 /* 0x4 */
#define MAGIC_HASH_VECTOR_VALUE 2147483648LU /* 0x80000000 */

#define HIGHEST_NORMAL_GENERATION 5 /* 0x5 */
#define PSEUDO_STATIC_GENERATION 6 /* 0x6 */

#define UNKNOWN_ERROR 0
#define OBJECT_NOT_FUN_ERROR 1
#define OBJECT_NOT_LIST_ERROR 2
#define OBJECT_NOT_BIGNUM_ERROR 3
#define OBJECT_NOT_RATIO_ERROR 4
#define OBJECT_NOT_SINGLE_FLOAT_ERROR 5
#define OBJECT_NOT_DOUBLE_FLOAT_ERROR 6
#define OBJECT_NOT_SIMPLE_STRING_ERROR 7
#define OBJECT_NOT_FIXNUM_ERROR 8
#define OBJECT_NOT_VECTOR_ERROR 9
#define OBJECT_NOT_STRING_ERROR 10
#define OBJECT_NOT_BASE_STRING_ERROR 11
#define OBJECT_NOT_VECTOR_NIL_ERROR 12
#define OBJECT_NOT_CHARACTER_STRING_ERROR 13
#define OBJECT_NOT_BIT_VECTOR_ERROR 14
#define OBJECT_NOT_ARRAY_ERROR 15
#define OBJECT_NOT_NUMBER_ERROR 16
#define OBJECT_NOT_RATIONAL_ERROR 17
#define OBJECT_NOT_FLOAT_ERROR 18
#define OBJECT_NOT_REAL_ERROR 19
#define OBJECT_NOT_INTEGER_ERROR 20
#define OBJECT_NOT_CONS_ERROR 21
#define OBJECT_NOT_SYMBOL_ERROR 22
#define UNDEFINED_FUN_ERROR 23
#define INVALID_ARG_COUNT_ERROR 24
#define BOGUS_ARG_TO_VALUES_LIST_ERROR 25
#define UNBOUND_SYMBOL_ERROR 26
#define OBJECT_NOT_SAP_ERROR 27
#define INVALID_UNWIND_ERROR 28
#define UNSEEN_THROW_TAG_ERROR 29
#define DIVISION_BY_ZERO_ERROR 30
#define OBJECT_NOT_TYPE_ERROR 31
#define ODD_KEY_ARGS_ERROR 32
#define UNKNOWN_KEY_ARG_ERROR 33
#define INVALID_ARRAY_INDEX_ERROR 34
#define WRONG_NUMBER_OF_INDICES_ERROR 35
#define OBJECT_NOT_SIMPLE_ARRAY_ERROR 36
#define OBJECT_NOT_SIGNED_BYTE_32_ERROR 37
#define OBJECT_NOT_UNSIGNED_BYTE_32_ERROR 38
#define OBJECT_NOT_COMPLEX_ERROR 39
#define OBJECT_NOT_COMPLEX_RATIONAL_ERROR 40
#define OBJECT_NOT_COMPLEX_FLOAT_ERROR 41
#define OBJECT_NOT_COMPLEX_SINGLE_FLOAT_ERROR 42
#define OBJECT_NOT_COMPLEX_DOUBLE_FLOAT_ERROR 43
#define OBJECT_NOT_WEAK_POINTER_ERROR 44
#define OBJECT_NOT_INSTANCE_ERROR 45
#define OBJECT_NOT_CHARACTER_ERROR 46
#define NIL_FUN_RETURNED_ERROR 47
#define NIL_ARRAY_ACCESSED_ERROR 48
#define LAYOUT_INVALID_ERROR 49
#define OBJECT_NOT_COMPLEX_VECTOR_ERROR 50
#define TLS_EXHAUSTED_ERROR 51
#define OBJECT_NOT_SIMPLE_ARRAY_NIL_ERROR 52
#define OBJECT_NOT_SIMPLE_BASE_STRING_ERROR 53
#define OBJECT_NOT_SIMPLE_CHARACTER_STRING_ERROR 54
#define OBJECT_NOT_SIMPLE_ARRAY_SINGLE_FLOAT_ERROR 55
#define OBJECT_NOT_SIMPLE_ARRAY_DOUBLE_FLOAT_ERROR 56
#define OBJECT_NOT_SIMPLE_BIT_VECTOR_ERROR 57
#define OBJECT_NOT_SIMPLE_ARRAY_UNSIGNED_BYTE_2_ERROR 58
#define OBJECT_NOT_SIMPLE_ARRAY_UNSIGNED_BYTE_4_ERROR 59
#define OBJECT_NOT_SIMPLE_ARRAY_UNSIGNED_BYTE_7_ERROR 60
#define OBJECT_NOT_SIMPLE_ARRAY_UNSIGNED_BYTE_8_ERROR 61
#define OBJECT_NOT_SIMPLE_ARRAY_UNSIGNED_BYTE_15_ERROR 62
#define OBJECT_NOT_SIMPLE_ARRAY_UNSIGNED_BYTE_16_ERROR 63
#define OBJECT_NOT_SIMPLE_ARRAY_UNSIGNED_FIXNUM_ERROR 64
#define OBJECT_NOT_SIMPLE_ARRAY_UNSIGNED_BYTE_31_ERROR 65
#define OBJECT_NOT_SIMPLE_ARRAY_UNSIGNED_BYTE_32_ERROR 66
#define OBJECT_NOT_SIMPLE_ARRAY_SIGNED_BYTE_8_ERROR 67
#define OBJECT_NOT_SIMPLE_ARRAY_SIGNED_BYTE_16_ERROR 68
#define OBJECT_NOT_SIMPLE_ARRAY_FIXNUM_ERROR 69
#define OBJECT_NOT_SIMPLE_ARRAY_SIGNED_BYTE_32_ERROR 70
#define OBJECT_NOT_SIMPLE_ARRAY_COMPLEX_SINGLE_FLOAT_ERROR 71
#define OBJECT_NOT_SIMPLE_ARRAY_COMPLEX_DOUBLE_FLOAT_ERROR 72
#define OBJECT_NOT_SIMPLE_VECTOR_ERROR 73
#define INTERNAL_ERROR_NAMES \
"unknown system lossage", \
"Object is not of type FUNCTION.", \
"Object is not of type LIST.", \
"Object is not of type BIGNUM.", \
"Object is not of type RATIO.", \
"Object is not of type SINGLE-FLOAT.", \
"Object is not of type DOUBLE-FLOAT.", \
"Object is not of type SIMPLE-STRING.", \
"Object is not of type FIXNUM.", \
"Object is not of type VECTOR.", \
"Object is not of type STRING.", \
"Object is not of type BASE-STRING.", \
"Object is not of type (VECTOR NIL).", \
"Object is not of type (VECTOR CHARACTER).", \
"Object is not of type BIT-VECTOR.", \
"Object is not of type ARRAY.", \
"Object is not of type NUMBER.", \
"Object is not of type RATIONAL.", \
"Object is not of type FLOAT.", \
"Object is not of type REAL.", \
"Object is not of type INTEGER.", \
"Object is not of type CONS.", \
"Object is not of type SYMBOL.", \
"An attempt was made to use an undefined FDEFINITION.", \
"invalid argument count", \
"bogus argument to VALUES-LIST", \
"An attempt was made to use an undefined SYMBOL-VALUE.", \
"Object is not a System Area Pointer (SAP).", \
"attempt to RETURN-FROM a block that no longer exists", \
"attempt to THROW to a non-existent tag", \
"division by zero", \
"Object is of the wrong type.", \
"odd number of &KEY arguments", \
"unknown &KEY argument", \
"invalid array index", \
"wrong number of indices", \
"Object is not of type SIMPLE-ARRAY.", \
"Object is not of type (SIGNED-BYTE 32).", \
"Object is not of type (UNSIGNED-BYTE 32).", \
"Object is not of type COMPLEX.", \
"Object is not of type (COMPLEX RATIONAL).", \
"Object is not of type (COMPLEX FLOAT).", \
"Object is not of type (COMPLEX SINGLE-FLOAT).", \
"Object is not of type (COMPLEX DOUBLE-FLOAT).", \
"Object is not a WEAK-POINTER.", \
"Object is not a INSTANCE.", \
"Object is not a CHARACTER.", \
"A function with declared result type NIL returned.", \
"An array with element-type NIL was accessed.", \
"Object layout is invalid. (indicates obsolete instance)", \
"Object is not a complex (non-SIMPLE-ARRAY) vector.", \
"Thread local storage exhausted.", \
"Object is not of type (SIMPLE-ARRAY NIL (*)).", \
"Object is not of type SIMPLE-BASE-STRING.", \
"Object is not of type (SIMPLE-ARRAY CHARACTER (*)).", \
"Object is not of type (SIMPLE-ARRAY SINGLE-FLOAT (*)).", \
"Object is not of type (SIMPLE-ARRAY DOUBLE-FLOAT (*)).", \
"Object is not of type SIMPLE-BIT-VECTOR.", \
"Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 2) (*)).", \
"Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 4) (*)).", \
"Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 7) (*)).", \
"Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)).", \
"Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 15) (*)).", \
"Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 16) (*)).", \
"Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 29) (*)).", \
"Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 31) (*)).", \
"Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 32) (*)).", \
"Object is not of type (SIMPLE-ARRAY (SIGNED-BYTE 8) (*)).", \
"Object is not of type (SIMPLE-ARRAY (SIGNED-BYTE 16) (*)).", \
"Object is not of type (SIMPLE-ARRAY FIXNUM (*)).", \
"Object is not of type (SIMPLE-ARRAY (SIGNED-BYTE 32) (*)).", \
"Object is not of type (SIMPLE-ARRAY (COMPLEX SINGLE-FLOAT) (*)).", \
"Object is not of type (SIMPLE-ARRAY (COMPLEX DOUBLE-FLOAT) (*)).", \
"Object is not of type SIMPLE-VECTOR."

#define BACKEND_PAGE_BYTES 4096LU

#define FLOAT_TRAPS_BYTE_POSITION 0 /* 0x0 */
#define FLOAT_TRAPS_BYTE_MASK 0x3F /* 63 */
#define FLOAT_EXCEPTIONS_BYTE_POSITION 16 /* 0x10 */
#define FLOAT_EXCEPTIONS_BYTE_MASK 0x3F0000 /* 4128768 */
#define FLOAT_STICKY_BITS_POSITION 16 /* 0x10 */
#define FLOAT_STICKY_BITS_MASK 0x3F0000 /* 4128768 */
#define FLOAT_ROUNDING_MODE_POSITION 10 /* 0xA */
#define FLOAT_ROUNDING_MODE_MASK 0xC00 /* 3072 */
#endif /* SBCL_GENESIS_CONSTANTS */
