⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cvinfo.h

📁 CC386 is a general-purpose 32-bit C compiler. It is not an optimizing compiler but given that the co
💻 H
📖 第 1 页 / 共 5 页
字号:

    #define T_INT4          0x0074  // 32 bit signed int
    #define T_UINT4         0x0075  // 32 bit unsigned int
    #define T_PINT4         0x0174  // near pointer to 32 bit signed int
    #define T_PUINT4        0x0175  // near pointer to 32 bit unsigned int
    #define T_PFINT4        0x0274  // far pointer to 32 bit signed int
    #define T_PFUINT4       0x0275  // far pointer to 32 bit unsigned int
    #define T_PHINT4        0x0374  // huge pointer to 32 bit signed int
    #define T_PHUINT4       0x0375  // huge pointer to 32 bit unsigned int

    #define T_32PINT4       0x0474  // 16:32 near pointer to 32 bit signed int
    #define T_32PUINT4      0x0475  // 16:32 near pointer to 32 bit unsigned int
    #define T_32PFINT4      0x0574  // 16:32 far pointer to 32 bit signed int
    #define T_32PFUINT4     0x0575  // 16:32 far pointer to 32 bit unsigned int




    //      64 bit quad types


    #define T_QUAD          0x0013  // 64 bit signed
    #define T_UQUAD         0x0023  // 64 bit unsigned
    #define T_PQUAD         0x0113  // near pointer to 64 bit signed
    #define T_PUQUAD        0x0123  // near pointer to 64 bit unsigned
    #define T_PFQUAD        0x0213  // far pointer to 64 bit signed
    #define T_PFUQUAD       0x0223  // far pointer to 64 bit unsigned
    #define T_PHQUAD        0x0313  // huge pointer to 64 bit signed
    #define T_PHUQUAD       0x0323  // huge pointer to 64 bit unsigned
    #define T_32PQUAD       0x0413  // 16:32 near pointer to 64 bit signed
    #define T_32PUQUAD      0x0423  // 16:32 near pointer to 64 bit unsigned
    #define T_32PFQUAD      0x0513  // 16:32 far pointer to 64 bit signed
    #define T_32PFUQUAD     0x0523  // 16:32 far pointer to 64 bit unsigned



    //      64 bit int types


    #define T_INT8          0x0076  // 64 bit signed int
    #define T_UINT8         0x0077  // 64 bit unsigned int
    #define T_PINT8         0x0176  // near pointer to 64 bit signed int
    #define T_PUINT8        0x0177  // near pointer to 64 bit unsigned int
    #define T_PFINT8        0x0276  // far pointer to 64 bit signed int
    #define T_PFUINT8       0x0277  // far pointer to 64 bit unsigned int
    #define T_PHINT8        0x0376  // huge pointer to 64 bit signed int
    #define T_PHUINT8       0x0377  // huge pointer to 64 bit unsigned int

    #define T_32PINT8       0x0476  // 16:32 near pointer to 64 bit signed int
    #define T_32PUINT8      0x0477  // 16:32 near pointer to 64 bit unsigned int
    #define T_32PFINT8      0x0576  // 16:32 far pointer to 64 bit signed int
    #define T_32PFUINT8     0x0577  // 16:32 far pointer to 64 bit unsigned int


    #if CC_BIGINT
        //      128 bit octet types


        #define T_OCT           0x0014  // 128 bit signed
        #define T_UOCT          0x0024  // 128 bit unsigned
        #define T_POCT          0x0114  // near pointer to 128 bit signed
        #define T_PUOCT         0x0124  // near pointer to 128 bit unsigned
        #define T_PFOCT         0x0214  // far pointer to 128 bit signed
        #define T_PFUOCT        0x0224  // far pointer to 128 bit unsigned
        #define T_PHOCT         0x0314  // huge pointer to 128 bit signed
        #define T_PHUOCT        0x0324  // huge pointer to 128 bit unsigned

        #define T_32POCT        0x0414  // 16:32 near pointer to 128 bit signed
        #define T_32PUOCT       0x0424  
            // 16:32 near pointer to 128 bit unsigned
        #define T_32PFOCT       0x0514  // 16:32 far pointer to 128 bit signed
        #define T_32PFUOCT      0x0524  // 16:32 far pointer to 128 bit unsigned

        //      128 bit int types


        #define T_INT16         0x0078  // 128 bit signed int
        #define T_UINT16        0x0079  // 128 bit unsigned int
        #define T_PINT16        0x0178  // near pointer to 128 bit signed int
        #define T_PUINT16       0x0179  // near pointer to 128 bit unsigned int
        #define T_PFINT16       0x0278  // far pointer to 128 bit signed int
        #define T_PFUINT16      0x0279  // far pointer to 128 bit unsigned int
        #define T_PHINT16       0x0378  // huge pointer to 128 bit signed int
        #define T_PHUINT16      0x0379  // huge pointer to 128 bit unsigned int

        #define T_32PINT16      0x0478  
            // 16:32 near pointer to 128 bit signed int
        #define T_32PUINT16     0x0479  
            // 16:32 near pointer to 128 bit unsigned int
        #define T_32PFINT16     0x0578  
            // 16:32 far pointer to 128 bit signed int
        #define T_32PFUINT16    0x0579  
            // 16:32 far pointer to 128 bit unsigned int

    #endif 




    //      32 bit real types


    #define T_REAL32        0x0040  // 32 bit real
    #define T_PREAL32       0x0140  // near pointer to 32 bit real
    #define T_PFREAL32      0x0240  // far pointer to 32 bit real
    #define T_PHREAL32      0x0340  // huge pointer to 32 bit real
    #define T_32PREAL32     0x0440  // 16:32 near pointer to 32 bit real
    #define T_32PFREAL32    0x0540  // 16:32 far pointer to 32 bit real

    #define T_IMAGINARY32        0x0080  // 32 bit `
    #define T_PIMAGINARY32       0x0180  // near pointer to 32 bit real
    #define T_PFIMAGINARY32      0x0280  // far pointer to 32 bit real
    #define T_PHIMAGINARY32      0x0380  // huge pointer to 32 bit real
    #define T_32PIMAGINARY32     0x0480  // 16:32 near pointer to 32 bit real
    #define T_32PFREAL32    0x0580  // 16:32 far pointer to 32 bit real


    //      48 bit real types


    #define T_REAL48        0x0044  // 48 bit real
    #define T_PREAL48       0x0144  // near pointer to 48 bit real
    #define T_PFREAL48      0x0244  // far pointer to 48 bit real
    #define T_PHREAL48      0x0344  // huge pointer to 48 bit real
    #define T_32PREAL48     0x0444  // 16:32 near pointer to 48 bit real
    #define T_32PFREAL48    0x0544  // 16:32 far pointer to 48 bit real




    //      64 bit real types


    #define T_REAL64        0x0041  // 64 bit real
    #define T_PREAL64       0x0141  // near pointer to 64 bit real
    #define T_PFREAL64      0x0241  // far pointer to 64 bit real
    #define T_PHREAL64      0x0341  // huge pointer to 64 bit real
    #define T_32PREAL64     0x0441  // 16:32 near pointer to 64 bit real
    #define T_32PFREAL64    0x0541  // 16:32 far pointer to 64 bit real

    #define T_IMAGINARY64        0x0081  // 64 bit real
    #define T_PIMAGINARY64       0x0181  // near pointer to 64 bit real
    #define T_PFIMAGINARY64      0x0281  // far pointer to 64 bit real
    #define T_PHIMAGINARY64      0x0381  // huge pointer to 64 bit real
    #define T_32PIMAGINARY64     0x0481  // 16:32 near pointer to 64 bit real
    #define T_32PFIMAGINARY64    0x0581  // 16:32 far pointer to 64 bit real



    //      80 bit real types


    #define T_REAL80        0x0042  // 80 bit real
    #define T_PREAL80       0x0142  // near pointer to 80 bit real
    #define T_PFREAL80      0x0242  // far pointer to 80 bit real
    #define T_PHREAL80      0x0342  // huge pointer to 80 bit real
    #define T_32PREAL80     0x0442  // 16:32 near pointer to 80 bit real
    #define T_32PFREAL80    0x0542  // 16:32 far pointer to 80 bit real

    #define T_IMAGINARY80        0x0082  // 80 bit real
    #define T_PIMAGINARY80       0x0182  // near pointer to 80 bit real
    #define T_PFIMAGINARY80      0x0282  // far pointer to 80 bit real
    #define T_PHIMAGINARY80      0x0382  // huge pointer to 80 bit real
    #define T_32PIMAGINARY80     0x0482  // 16:32 near pointer to 80 bit real
    #define T_32PFIMAGINARY80    0x0582  // 16:32 far pointer to 80 bit real



    //      128 bit real types


    #define T_REAL128       0x0043  // 128 bit real
    #define T_PREAL128      0x0143  // near pointer to 128 bit real
    #define T_PFREAL128     0x0243  // far pointer to 128 bit real
    #define T_PHREAL128     0x0343  // huge pointer to 128 bit real
    #define T_32PREAL128    0x0443  // 16:32 near pointer to 128 bit real
    #define T_32PFREAL128   0x0543  // 16:32 far pointer to 128 bit real




    //      32 bit complex types


    #define T_CPLX32        0x0050  // 32 bit complex
    #define T_PCPLX32       0x0150  // near pointer to 32 bit complex
    #define T_PFCPLX32      0x0250  // far pointer to 32 bit complex
    #define T_PHCPLX32      0x0350  // huge pointer to 32 bit complex
    #define T_32PCPLX32     0x0450  // 16:32 near pointer to 32 bit complex
    #define T_32PFCPLX32    0x0550  // 16:32 far pointer to 32 bit complex




    //      64 bit complex types


    #define T_CPLX64        0x0051  // 64 bit complex
    #define T_PCPLX64       0x0151  // near pointer to 64 bit complex
    #define T_PFCPLX64      0x0251  // far pointer to 64 bit complex
    #define T_PHCPLX64      0x0351  // huge pointer to 64 bit complex
    #define T_32PCPLX64     0x0451  // 16:32 near pointer to 64 bit complex
    #define T_32PFCPLX64    0x0551  // 16:32 far pointer to 64 bit complex




    //      80 bit complex types


    #define T_CPLX80        0x0052  // 80 bit complex
    #define T_PCPLX80       0x0152  // near pointer to 80 bit complex
    #define T_PFCPLX80      0x0252  // far pointer to 80 bit complex
    #define T_PHCPLX80      0x0352  // huge pointer to 80 bit complex
    #define T_32PCPLX80     0x0452  // 16:32 near pointer to 80 bit complex
    #define T_32PFCPLX80    0x0552  // 16:32 far pointer to 80 bit complex




    //      128 bit complex types


    #define T_CPLX128       0x0053  // 128 bit complex
    #define T_PCPLX128      0x0153  // near pointer to 128 bit complex
    #define T_PFCPLX128     0x0253  // far pointer to 128 bit complex
    #define T_PHCPLX128     0x0353  // huge pointer to 128 bit real
    #define T_32PCPLX128    0x0453  // 16:32 near pointer to 128 bit complex
    #define T_32PFCPLX128   0x0553  // 16:32 far pointer to 128 bit complex




    //      boolean types


    #define T_BOOL08        0x0030  // 8 bit boolean
    #define T_BOOL16        0x0031  // 16 bit boolean
    #define T_BOOL32        0x0032  // 32 bit boolean
    #define T_BOOL64        0x0033  // 64 bit boolean
    #define T_PBOOL08       0x0130  // near pointer to  8 bit boolean
    #define T_PBOOL16       0x0131  // near pointer to 16 bit boolean
    #define T_PBOOL32       0x0132  // near pointer to 32 bit boolean
    #define T_PBOOL64       0x0133  // near pointer to 64 bit boolean
    #define T_PFBOOL08      0x0230  // far pointer to  8 bit boolean
    #define T_PFBOOL16      0x0231  // far pointer to 16 bit boolean
    #define T_PFBOOL32      0x0232  // far pointer to 32 bit boolean
    #define T_PFBOOL64      0x0233  // far pointer to 64 bit boolean
    #define T_PHBOOL08      0x0330  // huge pointer to  8 bit boolean
    #define T_PHBOOL16      0x0331  // huge pointer to 16 bit boolean
    #define T_PHBOOL32      0x0332  // huge pointer to 32 bit boolean
    #define T_PHBOOL64      0x0333  // huge pointer to 64 bit boolean

    #define T_32PBOOL08     0x0430  // 16:32 near pointer to 8 bit boolean
    #define T_32PFBOOL08    0x0530  // 16:32 far pointer to 8 bit boolean
    #define T_32PBOOL16     0x0431  // 16:32 near pointer to 18 bit boolean
    #define T_32PFBOOL16    0x0531  // 16:32 far pointer to 16 bit boolean
    #define T_32PBOOL32     0x0432  // 16:32 near pointer to 32 bit boolean
    #define T_32PFBOOL32    0x0532  // 16:32 far pointer to 32 bit boolean
    #define T_32PBOOL64     0x0433  // 16:32 near pointer to 64 bit boolean
    #define T_32PFBOOL64    0x0533  // 16:32 far pointer to 64 bit boolean


    #define T_NCVPTR        0x01f0  
        // CV Internal type for created near pointers
    #define T_FCVPTR        0x02f0  // CV Internal type for created far pointers
    #define T_HCVPTR        0x03f0  
        // CV Internal type for created huge pointers
    #define T_32NCVPTR      0x04f0  
        // CV Internal type for created near 32-bit pointers
    #define T_32FCVPTR      0x05f0  
        // CV Internal type for created far 32-bit pointers
    #define T_64NCVPTR      0x06f0  
        // CV Internal type for created near 64-bit pointers

    #define CV_IS_INTERNAL_PTR(typ) (CV_IS_PRIMITIVE(typ) && \
    CV_TYPE(typ) == CV_CVRESERVED && \
    CV_TYP_IS_PTR(typ))


    /**     No leaf index can have a value of 0x0000.  The leaf indices are
     *      separated into ranges depending upon the use of the type record.
     *      The second range is for the type records that are directly referenced
     *      in symbols. The first range is for type records that are not
     *      referenced by symbols but instead are referenced by other type
     *      records.  All type records must have a starting leaf index in these
     *      first two ranges.  The third range of leaf indices are used to build
     *      up complex lists such as the field list of a class type record.  No
     *      type record can begin with one of the leaf indices. The fourth ranges
     *      of type indices are used to represent numeric data in a symbol or
     *      type record. These leaf indices are greater than 0x8000.  At the
     *      point that type or symbol processor is expecting a numeric field, the
     *      next two bytes in the type record are examined.  If the value is less
     *      than 0x8000, then the two bytes contain the numeric value. If the
     *      value is greater than 0x8000, then the data follows the leaf index in
     *      a format specified by the leaf index. The final range of leaf indices
     *      are used to force alignment of subfields within a complex type record..
     */



    // leaf indices starting records but referenced from symbol records

    #define LF_VTSHAPE      0x000a
    #define LF_COBOL0       0x000b
    #define LF_COBOL1       0x000c
    #define LF_LABEL        0x000e
    #define LF_NULL         0x000f
    #define LF_NOTTRAN      0x0010
    #define LF_ENDPRECOMP   0x0014  // not referenced from symbol
    #define LF_TYPESERVER   0x0016  // not referenced from symbol

    // leaf indices starting records but referenced only from type records

    #define LF_LIST         0x0203
    #define LF_REFSYM       0x020c

    #define LF_ENUMERATE    0x0403

    #define LF_MODIFIER     0x1001
    #define LF_POINTER      0x1002
    #define LF_ARRAY        0x1003
    #define LF_CLASS        0x1004
    #define LF_STRUCTURE    0x1005
    #define LF_UNION        0x1006
    #define LF_ENUM         0x1007
    #define LF_PROCEDURE    0x1008
    #define LF_MFUNCTION    0x1009
    #define LF_BARRAY       0x100b
    #define LF_DIMARRAY     0x100c
    #define LF_VFTPATH      0x100d
    #define LF_PRECOMP      0x100e  // not referenced from symbol
    #define LF_OEM          0x100f  // oem definable type string

    #define LF_VARARRAY		0x1100	// DAL added this for variably indexed arrays

    #define LF_SKIP         0x1200
    #define LF_ARGLIST      0x1201
    #define LF_DEFARG       0x1202
    #define LF_FIELDLIST    0x1203
    #define LF_DERIVED      0x1204
    #define LF_BITFIELD     0x1205
    #define LF_METHODLIST   0x1206
    #define LF_DIMCONU      0x1207
    #define LF_DIMCONLU     0x1208
    #define LF_DIMVARU      0x1209
    #define LF_DIMVARLU     0x120a

    #define LF_BCLASS       0x1400
    #define LF_VBCLASS      0x1401
    #define LF_IVBCLASS     0x1402
    #define LF_FRIENDFCN    0x1403
    #define LF_INDEX        0x1404
    #define LF_MEMBER       0x1405
    #define LF_STMEMBER     0x1406
    #define LF_METHOD       0x1407
    #define LF_NESTTYPE     0x1408
    #define LF_VFUNCTAB     0x1409
    #define LF_FRIENDCLS    0x140a
    #define LF_ONEMETHOD    0x140b
    #define LF_VFUNCOFF     0x140c
    #define LF_NESTTYPEEX	0x140d
    #define LF_MEMBERMODIFY 0x140e

    #define LF_NUMERIC      0x8000

    #define LF_CHAR         0x8000
    #define LF_SHORT        0x8001
    #define LF_USHORT       0x8002
    #define LF_LONG         0x8003
    #define LF_ULONG        0x8004
    #define LF_REAL32       0x8005
    #define LF_REAL64       0x8006
    #define LF_REAL80       0x8007
    #define LF_REAL128      0x8008
    #define LF_QUADWORD     0x8009
    #define LF_UQUADWORD    0x800a
    #define LF_REAL48       0x800b
    #define LF_COMPLEX32    0x800c
    #define LF_COMPLEX64    0x800d
    #define LF_COMPLEX80    0x800e
    #define LF_COMPLEX128   0x800f
    #define LF_VARSTRING    0x8010

    #if CC_BIGINT
        #define LF_OCTWORD      0x8017
        #define LF_UOCTWORD     0x8018
    #endif 

    #define LF_PAD0         0xf0
    #define LF_PAD1         0xf1
    #define LF_PAD2         0xf2
    #define LF_PAD3         0xf3
    #define LF_PAD4         0xf4
    #define LF_PAD5         0xf5
    #define LF_PAD6         0xf6
    #define LF_PAD7         0xf7
    #define LF_PAD8         0xf8
    #define LF_PAD9         0xf9
    #define LF_PAD10        0xfa
    #define LF_PAD11        0xfb
    #define LF_PAD12        0xfc
    #define LF_PAD13        0xfd
    #define LF_PAD14        0xfe
    #define LF_PAD15        0xff

    // end of leaf indices




    //      Type enum for pointer records
    //      Pointers can be one of the following types


    typedef enum CV_ptrtype_e
    {
        CV_PTR_NEAR = 0x00,  // near pointer
        CV_PTR_FAR = 0x01,  // far pointer
        CV_PTR_HUGE = 0x02,  // huge pointer

⌨️ 快捷键说明

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