cv4f.h

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 839 行 · 第 1/2 页

H
839
字号
    u2          index;
}ct_dimvaru;

typedef struct {
    u2          rank;
    u2          index;
}ct_dimvarlu;

typedef struct {
    u2          type;
    cv_fldattr  attr;
}ct_bclass;

typedef struct { /*direct & indirect */
    u2          btype;
    u2          vtype;
    cv_fldattr  attr;
}ct_vbclass;

typedef ct_vbclass ct_ivbclass;

typedef struct {
    cv_fldattr  attr;
}ct_enumerate;

typedef struct {
    u2          type;
}ct_friendfcn;

typedef struct {
    u2          index;
}ct_index;

typedef struct {
    u2          type;
    cv_fldattr  attr;
}ct_member;

typedef struct {
    u2          type;
    cv_fldattr  attr;
}ct_stmember;

typedef struct {
    u2          count;
    u2          mList;
}ct_method;

typedef struct {
    u2          index;
}ct_nestedtype;

typedef struct {
    u2          type;
}ct_vfunctab;

typedef struct {
    u2          type;
}ct_friendcls;

typedef struct {
    cv_fldattr  attr;
    u2          type;
}ct_onemethod;

typedef struct {
    u2          type;
    u4          offset;
}ct_vfuncoff;


typedef enum {
    LANG_C           =0,
    LANG_CPP         =1,
    LANG_FORTRAN     =2,
    LANG_MASM        =3,
    LANG_PASCAL      =4,
    LANG_BASIC       =5,
    LANG_COBOL       =6,
}cv_lang;

typedef enum {
    AMBIENT_NEAR    =0,
    AMBIENT_FAR     =1,
    AMBIENT_HUGE    =2,
}cv_ambient;

typedef enum {
    FLOAT_PACKAGE_HARDWARE  =0,
    FLOAT_PACKAGE_EMULATOR  =1,
    FLOAT_PACKAGE_ALTMATH   =2,
}cv_float_package;

typedef enum {
    MACH_INTEL_8080     = 0x00,
    MACH_INTEL_8086     = 0x01,
    MACH_INTEL_80286    = 0x02,
    MACH_INTEL_80386    = 0x03,
    MACH_INTEL_80486    = 0x04,
    MACH_INTEL_PENTIUM  = 0x05,
    MACH_MIPS_R4000     = 0x10,
    MACH_MC68000        = 0x20,
    MACH_MC68010        = 0x21,
    MACH_MC68020        = 0x22,
    MACH_MC68030        = 0x23,
    MACH_MC68040        = 0x24,
    MACH_DECALPHA       = 0x30,
}cv_machine_class;

typedef union {
    struct {
        u2          PCodePresent:1;
        u2          FloatPrecision:2;
        u2          FloatPackage:2;
        u2          AmbientData:3;
        u2          AmbientCode:3;
        u2          Mode32:1;
        u2          Reserved:4;
    }f;
    u2 s;
}cv_compile;

typedef struct {
    u1          machine;
    u1          language;
    cv_compile  flags;
//  u1          version[1];
} cs_compile;

typedef struct {
    u2          type;
    u2          reg;
//  u1          name[1];
} cs_register;

typedef struct {
    u2          type;
//  u1          value[1];
//  u1          name[1];
} cs_constant;

typedef struct {
    u2          type;
//  u1          name[1];
} cs_udt;

typedef struct {
    u4          sym_off;
    u2          segment;
} cs_ssearch;

typedef struct {
    u4          signature;
//  u1          name[1];
} cs_objname;

typedef struct {
    u2          type;
//  u1          name[1];
} cs_coboludt;

typedef struct {
    u2          type;
    u1          count;
//  u1          reglist[count];
//  u1          name[1];
} cs_manyreg;

typedef union {
    struct {
        u1      cstyle  : 1;
        u1      rsclean : 1;
    } f;
    u2  s;
} cv_return_flags;

typedef enum {
    CVRET_VOID,
    CVRET_DIRECT,
    CVRET_CALLOC_NEAR,
    CVRET_CALLOC_FAR,
    CVRET_RALLOC_NEAR,
    CVRET_RALLOC_FAR
} cv_return_style;

typedef struct {
    cv_return_flags     flags;
    u1                  style;
//  u1                  data;
} cs_return;

typedef struct {
    i2          offset;
    u2          type;
//  u1          name[1];
} cs_bprel16;

typedef struct {
    i2          offset;
    u2          reg;
    u2          type;
//  u1          name[1];
} cs_regrel16;

typedef struct {
    u2          offset;
    u2          segment;
    u2          type;
//  u1          name[1];
} cs_ldata16,cs_gdata16;

typedef struct {
    u2          offset;
    u2          segment;
    u2          type;
//  u1          name[1];
} cs_pub16;

typedef union cv_proc{
    struct {
        u1 fpo          :1;
        u1 interr       :1;
        u1 far_ret      :1;
        u1 never        :1;
        u1 unused       :4;
    }f;
    u1 s;
}cv_proc;

typedef struct {
    u4          pParent;
    u4          pEnd;
    u4          pNext;
    u2          proc_length;
    u2          debug_start;
    u2          debug_end;
    u2          offset;
    u2          segment;
    u2          proctype;
    cv_proc     flags;
//  u1          name[1];
} cs_lproc16,cs_gproc16;

typedef enum {
    NOTYPE     = 0,
    ADJUSTOR   = 1,
    VCALL      = 2,
    PCODE      = 3,
}cv_ordinal;

typedef union {
    struct {
            u2   delta;
            char thisnm[1];
    }adjustor;
    u2 vcall;
    struct {
        u2 offset;
        u2 segment;
    }pcode;
}cv_ord_variant;

typedef struct {
    u4          pParent;
    u4          pEnd;
    u4          pNext;
    u2          offset;
    u2          segment;
    u2          length;
    unsigned_8  ordinal;
    u1          name[1];
//    u1        varient[1];
} cs_thunk16;

typedef struct {
    u4          pParent;
    u4          pEnd;
    u2          length;
    u2          offset;
    u2          segment;
//  u1          name[1];
} cs_block16;

typedef struct {
    u4          pParent;
    u4          pEnd;
    u2          length;
    u2          offset;
    u2          segment;
//  u1          value[1];
} cs_with16;

typedef struct {
    u2          offset;
    u2          segment;
    unsigned_8  near_far;
//  u1          name[1];
} cs_label16;

typedef struct {
    u2          offset;
    u2          segment;
    u2          model;
//  u1          varient[1];
} cs_cexmodel16;

typedef struct {
    u2          offset;
    u2          segment;
    u2          root;
    u2          path;
} cs_vftpath16;

typedef struct {
    i4          offset;
    u2          type;
//  u1          name[1];
} cs_bprel32;

typedef struct {
    i4          offset;
    u2          reg;
    u2          type;
//  u1          name[1];
} cs_regrel32;

typedef struct {
    u4          offset;
    u2          segment;
    u2          type;
//  u1          name[1];
} cs_lthread32, cs_gthread32;

typedef struct {
    u4          offset;
    u2          segment;
    u2          type;
//  u1          name[1];
} cs_ldata32,cs_gdata32;

typedef struct {
    u4          offset;
    u2          segment;
    u2          type;
//  u1          name[1];
} cs_pub32;

typedef struct {
    u4          pParent;
    u4          pEnd;
    u4          pNext;
    u4          proc_length;
    u4          debug_start;
    u4          debug_end;
    u4          offset;
    u2          segment;
    u2          proctype;
    cv_proc     flags;
//  u1          name[1];
} cs_lproc32,cs_gproc32;

typedef struct {
    u4          pParent;
    u4          pEnd;
    u4          pNext;
    u4          offset;
    u2          segment;
    u2          length;
    u2          ordinal;
 //  u1          name[1];
//    u1        varient[1];
} cs_thunk32;

typedef struct {
    u4          pParent;
    u4          pEnd;
    u4          length;
    u4          offset;
    u2          segment;
//  u1          name[1];
} cs_block32;

typedef struct {
    u4          pParent;
    u4          pEnd;
    u4          length;
    u4          offset;
    u2          segment;
//  u1          value[1];
} cs_with32;

typedef struct {
    u4          offset;
    u2          segment;
    unsigned_8  near_far;
//  u1          name[1];
} cs_label32;

typedef struct {
    u4          offset;
    u2          segment;
    u2          model;
//  u1          varient[1];
} cs_cexmodel32;

typedef struct {
    u4          offset;
    u2          segment;
    u2          root;
    u2          path;
} cs_vftpath32;

typedef struct {
    u4          checksum;
    u4          offset;
    u2          module;
} cs_procref, cs_dataref;
#pragma pack()

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?