#ifndef LIBUNWIND_H
#define LIBUNWIND_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#include <sys/types.h>
#include <inttypes.h>
#include <ucontext.h>
#ifndef UNW_EMPTY_STRUCT
# define UNW_EMPTY_STRUCT uint8_t unused;
#endif
#define UNW_TARGET s390x
#define UNW_TARGET_S390X 1
#define _U_TDEP_QP_TRUE 0
#define UNW_TDEP_CURSOR_LEN 384
typedef uint64_t unw_word_t;
typedef int64_t unw_sword_t;
typedef double unw_tdep_fpreg_t;
#define UNW_WORD_MAX UINT64_MAX
typedef enum
{
UNW_S390X_R0,
UNW_S390X_R1,
UNW_S390X_R2,
UNW_S390X_R3,
UNW_S390X_R4,
UNW_S390X_R5,
UNW_S390X_R6,
UNW_S390X_R7,
UNW_S390X_R8,
UNW_S390X_R9,
UNW_S390X_R10,
UNW_S390X_R11,
UNW_S390X_R12,
UNW_S390X_R13,
UNW_S390X_R14,
UNW_S390X_R15,
UNW_S390X_F0,
UNW_S390X_F1,
UNW_S390X_F2,
UNW_S390X_F3,
UNW_S390X_F4,
UNW_S390X_F5,
UNW_S390X_F6,
UNW_S390X_F7,
UNW_S390X_F8,
UNW_S390X_F9,
UNW_S390X_F10,
UNW_S390X_F11,
UNW_S390X_F12,
UNW_S390X_F13,
UNW_S390X_F14,
UNW_S390X_F15,
UNW_S390X_IP,
UNW_TDEP_LAST_REG = UNW_S390X_IP,
UNW_S390X_CFA,
UNW_TDEP_IP = UNW_S390X_IP,
UNW_TDEP_SP = UNW_S390X_R15,
UNW_TDEP_EH = UNW_S390X_R0,
}
s390x_regnum_t;
#define UNW_TDEP_NUM_EH_REGS 2
typedef struct unw_tdep_save_loc
{
UNW_EMPTY_STRUCT
}
unw_tdep_save_loc_t;
typedef ucontext_t unw_tdep_context_t;
typedef struct
{
UNW_EMPTY_STRUCT
}
unw_tdep_proc_info_t;
#include "libunwind-dynamic.h"
#include "libunwind-common.h"
#define unw_tdep_getcontext UNW_ARCH_OBJ(getcontext)
#define unw_tdep_is_fpreg UNW_ARCH_OBJ(is_fpreg)
extern int unw_tdep_getcontext (unw_tdep_context_t *);
extern int unw_tdep_is_fpreg (int);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif