/*
 * This is a machine-generated file. Please do not edit it by hand.
 *
 * 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_UNWIND_BLOCK
#define SBCL_GENESIS_UNWIND_BLOCK
#ifdef __ASSEMBLER__

/* These offsets are SLOT-OFFSET * N-WORD-BYTES - LOWTAG
 * so they work directly on tagged addresses. */

#define UNWIND_BLOCK_UWP_OFFSET 0
#define UNWIND_BLOCK_CFP_OFFSET 4
#define UNWIND_BLOCK_ENTRY_PC_OFFSET 8
#define UNWIND_BLOCK_SIZE 3
#define CATCH_BLOCK_UWP_OFFSET 0
#define CATCH_BLOCK_CFP_OFFSET 4
#define CATCH_BLOCK_ENTRY_PC_OFFSET 8
#define CATCH_BLOCK_PREVIOUS_CATCH_OFFSET 12
#define CATCH_BLOCK_TAG_OFFSET 16
#define CATCH_BLOCK_SIZE 5

#else /* __ASSEMBLER__ */

#include "lispobj.h"
struct unwind_block {
    struct unwind_block * uwp;
    lispobj * cfp;
    lispobj entry_pc;
};
struct catch_block {
    struct unwind_block * uwp;
    lispobj * cfp;
    lispobj entry_pc;
    struct catch_block * previous_catch;
    lispobj tag;
};

#endif /* __ASSEMBLER__ */
#endif
