digtypes.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 435 行
H
435 行
/****************************************************************************
*
* Open Watcom Project
*
* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
*
* ========================================================================
*
* This file contains Original Code and/or Modifications of Original
* Code as defined in and that are subject to the Sybase Open Watcom
* Public License version 1.0 (the 'License'). You may not use this file
* except in compliance with the License. BY USING THIS FILE YOU AGREE TO
* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
* provided with the Original Code and Modifications, and is also
* available at www.sybase.com/developer/opensource.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
* NON-INFRINGEMENT. Please see the License for the specific language
* governing rights and limitations under the License.
*
* ========================================================================
*
* Description: Debugger interface types.
*
****************************************************************************/
#ifndef DIGTYPES_H
#include <machtype.h>
#include "digpck.h"
typedef unsigned_8 search_result; enum {
SR_NONE,
SR_EXACT,
SR_CLOSEST,
SR_FAIL,
SR_LAST };
typedef unsigned_8 walk_result; enum {
WR_CONTINUE,
WR_STOP,
WR_FAIL,
WR_LAST };
typedef unsigned context_item; enum {
/* common */
CI_FRAME,
CI_STACK,
CI_EXECUTION,
CI_OBJECT,
CI_DEF_ADDR_SPACE,
/* x86 architecture */
CI_EAX,
CI_EBX,
CI_ECX,
CI_EDX,
CI_ESI,
CI_EDI,
CI_EBP,
CI_ESP,
CI_EFL,
CI_EIP,
CI_DS,
CI_ES,
CI_SS,
CI_CS,
CI_FS,
CI_GS,
CI_ST0,
CI_ST1,
CI_ST2,
CI_ST3,
CI_ST4,
CI_ST5,
CI_ST6,
CI_ST7,
CI_SW,
CI_CW,
/* Alpha architecture */
CI_AXP_r0,
CI_AXP_r1,
CI_AXP_r2,
CI_AXP_r3,
CI_AXP_r4,
CI_AXP_r5,
CI_AXP_r6,
CI_AXP_r7,
CI_AXP_r8,
CI_AXP_r9,
CI_AXP_r10,
CI_AXP_r11,
CI_AXP_r12,
CI_AXP_r13,
CI_AXP_r14,
CI_AXP_r15,
CI_AXP_r16,
CI_AXP_r17,
CI_AXP_r18,
CI_AXP_r19,
CI_AXP_r20,
CI_AXP_r21,
CI_AXP_r22,
CI_AXP_r23,
CI_AXP_r24,
CI_AXP_r25,
CI_AXP_r26,
CI_AXP_r27,
CI_AXP_r28,
CI_AXP_r29,
CI_AXP_r30,
CI_AXP_r31,
CI_AXP_f0,
CI_AXP_f1,
CI_AXP_f2,
CI_AXP_f3,
CI_AXP_f4,
CI_AXP_f5,
CI_AXP_f6,
CI_AXP_f7,
CI_AXP_f8,
CI_AXP_f9,
CI_AXP_f10,
CI_AXP_f11,
CI_AXP_f12,
CI_AXP_f13,
CI_AXP_f14,
CI_AXP_f15,
CI_AXP_f16,
CI_AXP_f17,
CI_AXP_f18,
CI_AXP_f19,
CI_AXP_f20,
CI_AXP_f21,
CI_AXP_f22,
CI_AXP_f23,
CI_AXP_f24,
CI_AXP_f25,
CI_AXP_f26,
CI_AXP_f27,
CI_AXP_f28,
CI_AXP_f29,
CI_AXP_f30,
CI_AXP_f31,
CI_AXP_fir,
/* PowerPC architecture */
CI_PPC_r0,
CI_PPC_r1,
CI_PPC_r2,
CI_PPC_r3,
CI_PPC_r4,
CI_PPC_r5,
CI_PPC_r6,
CI_PPC_r7,
CI_PPC_r8,
CI_PPC_r9,
CI_PPC_r10,
CI_PPC_r11,
CI_PPC_r12,
CI_PPC_r13,
CI_PPC_r14,
CI_PPC_r15,
CI_PPC_r16,
CI_PPC_r17,
CI_PPC_r18,
CI_PPC_r19,
CI_PPC_r20,
CI_PPC_r21,
CI_PPC_r22,
CI_PPC_r23,
CI_PPC_r24,
CI_PPC_r25,
CI_PPC_r26,
CI_PPC_r27,
CI_PPC_r28,
CI_PPC_r29,
CI_PPC_r30,
CI_PPC_r31,
CI_PPC_f0,
CI_PPC_f1,
CI_PPC_f2,
CI_PPC_f3,
CI_PPC_f4,
CI_PPC_f5,
CI_PPC_f6,
CI_PPC_f7,
CI_PPC_f8,
CI_PPC_f9,
CI_PPC_f10,
CI_PPC_f11,
CI_PPC_f12,
CI_PPC_f13,
CI_PPC_f14,
CI_PPC_f15,
CI_PPC_f16,
CI_PPC_f17,
CI_PPC_f18,
CI_PPC_f19,
CI_PPC_f20,
CI_PPC_f21,
CI_PPC_f22,
CI_PPC_f23,
CI_PPC_f24,
CI_PPC_f25,
CI_PPC_f26,
CI_PPC_f27,
CI_PPC_f28,
CI_PPC_f29,
CI_PPC_f30,
CI_PPC_f31,
CI_PPC_lr,
CI_PPC_ctr,
CI_PPC_iar,
CI_PPC_msr,
CI_PPC_cr,
CI_PPC_xer,
CI_PPC_fpscr,
/* MIPS architecture */
CI_MIPS_r0,
CI_MIPS_r1,
CI_MIPS_r2,
CI_MIPS_r3,
CI_MIPS_r4,
CI_MIPS_r5,
CI_MIPS_r6,
CI_MIPS_r7,
CI_MIPS_r8,
CI_MIPS_r9,
CI_MIPS_r10,
CI_MIPS_r11,
CI_MIPS_r12,
CI_MIPS_r13,
CI_MIPS_r14,
CI_MIPS_r15,
CI_MIPS_r16,
CI_MIPS_r17,
CI_MIPS_r18,
CI_MIPS_r19,
CI_MIPS_r20,
CI_MIPS_r21,
CI_MIPS_r22,
CI_MIPS_r23,
CI_MIPS_r24,
CI_MIPS_r25,
CI_MIPS_r26,
CI_MIPS_r27,
CI_MIPS_r28,
CI_MIPS_r29,
CI_MIPS_r30,
CI_MIPS_r31,
CI_MIPS_f0,
CI_MIPS_f1,
CI_MIPS_f2,
CI_MIPS_f3,
CI_MIPS_f4,
CI_MIPS_f5,
CI_MIPS_f6,
CI_MIPS_f7,
CI_MIPS_f8,
CI_MIPS_f9,
CI_MIPS_f10,
CI_MIPS_f11,
CI_MIPS_f12,
CI_MIPS_f13,
CI_MIPS_f14,
CI_MIPS_f15,
CI_MIPS_f16,
CI_MIPS_f17,
CI_MIPS_f18,
CI_MIPS_f19,
CI_MIPS_f20,
CI_MIPS_f21,
CI_MIPS_f22,
CI_MIPS_f23,
CI_MIPS_f24,
CI_MIPS_f25,
CI_MIPS_f26,
CI_MIPS_f27,
CI_MIPS_f28,
CI_MIPS_f29,
CI_MIPS_f30,
CI_MIPS_f31,
CI_MIPS_pc,
CI_MIPS_lo,
CI_MIPS_hi,
/* Java Virtual Machine architecture */
CI_JVM_pc,
CI_JVM_vars,
CI_JVM_optop,
CI_JVM_frame,
CI_LAST
};
typedef unsigned_8 type_kind; enum {
TK_NONE,
TK_DATA,
TK_CODE,
TK_ADDRESS,
TK_VOID,
TK_BOOL,
TK_ENUM,
TK_CHAR,
TK_INTEGER,
TK_REAL,
TK_COMPLEX,
TK_STRING,
TK_POINTER,
TK_STRUCT,
TK_ARRAY,
TK_FUNCTION,
TK_NAMESPACE,
TK_LAST
};
typedef unsigned_8 type_modifier; enum {
TM_NONE = 0,
/* for pointer/address types */
TM_NEAR = 1,
TM_FAR,
TM_HUGE,
/* for integer types */
TM_SIGNED = 1,
TM_UNSIGNED,
/* for floating point types */
TM_IEEE = 1,
TM_VAX1, /* F, G floating */
TM_VAX2, /* D floating */
/* for string types */
TM_ASCII = 1,
TM_EBCIDIC,
TM_UNICODE,
TM_MOD_MASK = 0x0f,
TM_FLAG_DEREF = 0x10
};
typedef struct type_info {
unsigned long size;
type_kind kind;
type_modifier modifier;
} type_info;
typedef unsigned dig_fhandle;
typedef unsigned_8 dig_seek; enum {
DIG_ORG,
DIG_CUR,
DIG_END };
typedef unsigned_8 dig_open; enum {
DIG_READ = 0x01,
DIG_WRITE = 0x02,
DIG_CREATE = 0x04,
DIG_TRUNC = 0x08,
DIG_APPEND = 0x10,
DIG_REMOTE = 0x20,
DIG_LOCAL = 0x40,
DIG_SEARCH = 0x80 };
#define DIG_NIL_HANDLE ( (dig_fhandle) -1 )
enum {
MAD_NIL,
MAD_X86,
MAD_AXP,
MAD_PPC,
MAD_MIPS,
MAD_MSJ,
MAD_MAX
};
typedef unsigned_16 mad_handle;
enum ostypes { //NYI: redo these for PIL
OS_IDUNNO,
OS_DOS,
OS_OS2,
OS_PHARLAP,
OS_ECLIPSE,
OS_NW386,
OS_QNX,
OS_RATIONAL,
OS_WINDOWS,
OS_PENPOINT,
OS_NT,
OS_AUTOCAD,
OS_NEUTRINO,
OS_LINUX,
OS_FREEBSD
};
typedef struct { //NYI: redo this for PIL
unsigned_8 cpu;
unsigned_8 fpu;
unsigned_8 osmajor;
unsigned_8 osminor;
unsigned_8 os;
unsigned_8 huge_shift;
mad_handle mad;
} system_config;
enum {
MAP_FLAT_CODE_SELECTOR = (unsigned_16)-1,
MAP_FLAT_DATA_SELECTOR = (unsigned_16)-2,
};
#if defined(__WINDOWS__) && !defined(__NT__)
#define DIGREGISTER __far __pascal
#define DIGENTRY __export DIGREGISTER
#define DIGCLIENT __loadds
#endif
#if !defined(DIGENTRY)
#define DIGENTRY
#endif
#if !defined(DIGREGISTER)
#define DIGREGISTER
#endif
#if !defined(DIGCLIENT)
#define DIGCLIENT
#endif
#define DIGTYPES_H
#include "digunpck.h"
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?