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

📄 dw.h

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:

/* macro definitions */
void            DWENTRY DWMacStartFile( dw_client, dw_linenum __line,
                            char const *__file_name );
void            DWENTRY DWMacEndFile( dw_client );
dw_macro        DWENTRY DWMacDef( dw_client, dw_linenum __line,
                            char const *__macro_name );
void            DWENTRY DWMacParam( dw_client, dw_macro __macro,
                            char const *__parm_name );
void            DWENTRY DWMacFini( dw_client, dw_macro __macro,
                            char const *__definition );
void            DWENTRY DWMacUnDef( dw_client, dw_linenum __line,
                            char const *__macro_name );
void            DWENTRY DWMacUse( dw_client, dw_linenum __line,
                            char const *__macro_name );

/* file/line number management */

extern void DWInitDebugLine(
    dw_client                   cli,
    dw_cu_info                 *cu  );

extern void DWFiniDebugLine(
    dw_client                   cli );

void            DWENTRY DWSetFile( dw_client, char const *__fname );
/* line number information */
enum {
    DW_LN_DEFAULT               = 0x00,
    DW_LN_STMT                  = 0x01,
    DW_LN_BLK                   = 0x02
};
void            DWENTRY DWLineNum( dw_client, uint __info,
                            dw_linenum __line_num, dw_column __column,
                            dw_addr_offset __addr );
void DWLineAddr(  dw_client  cli, dw_sym_handle sym, dw_addr_offset addr );
void            DWLineSeg(  dw_client  cli, dw_sym_handle sym );
void            DWENTRY DWDeclFile( dw_client, char const *__fname );
void            DWENTRY DWDeclPos( dw_client, dw_linenum, dw_column );

unsigned        DWENTRY DWLineGen( dw_linenum_delta, dw_addr_delta, char * );

/* reference declarations */
void            DWENTRY DWReference( dw_client, dw_linenum,
                            dw_column, dw_handle );

/* Location expressions */
dw_loc_id       DWENTRY DWLocInit( dw_client );
dw_loc_label    DWENTRY DWLocNewLabel( dw_client, dw_loc_id __loc );
void            DWENTRY DWLocSetLabel( dw_client, dw_loc_id __loc,
                            dw_loc_label __label );
void            DWENTRY DWLocReg( dw_client, dw_loc_id __loc,
                            uint __reg );
void            DWENTRY DWLocPiece( dw_client, dw_loc_id __loc,
                            uint __size );
void            DWENTRY DWLocStatic( dw_client, dw_loc_id __loc,
                            dw_sym_handle __sym );
void            DWENTRY DWLocSym( dw_client, dw_loc_id,
                            dw_sym_handle, dw_relocs );
void            DWENTRY DWLocSegment( dw_client, dw_loc_id __loc,
                            dw_sym_handle __sym );
void            DWENTRY DWLocConstU( dw_client, dw_loc_id __loc,
                            dw_uconst __value );
void            DWENTRY DWLocConstS( dw_client, dw_loc_id __loc,
                            dw_sconst __value );
void            DWENTRY DWLocOp0( dw_client, dw_loc_id __loc,
                            uint __op );
void            DWENTRY DWLocOp( dw_client, dw_loc_id __loc,
                            uint __op, ... );
dw_loc_handle   DWENTRY DWLocFini( dw_client, dw_loc_id __loc );

/* Location Lists */
dw_list_id      DWENTRY DWListInit( dw_client );
void            DWENTRY DWListEntry( dw_client, dw_list_id __list,
                            dw_sym_handle __beg, dw_sym_handle __end,
                            dw_loc_handle __location_expr );
void            DWENTRY DWListEntryOut(
                      dw_client                   cli,
                      dw_list_id                  id,
                      dw_sym_handle               begin,
                      dw_sym_handle               end,
                      dw_loc_handle               loc );
dw_loc_handle   DWENTRY DWListFini( dw_client, dw_list_id __list );
void            DWENTRY DWLocTrash( dw_client, dw_loc_handle __loc );
/* debug info handle refs */
dw_handle DWENTRY DWHandle(
    dw_client                   cli,
    uint                        kind );
void DWENTRY DWHandleSet(
    dw_client                   cli,
    dw_handle                   set_hdl );

/* typing information */
dw_handle       DWENTRY DWFundamental( dw_client, char const * __name,
                            unsigned __fund_idx, unsigned __size );
dw_handle       DWENTRY DWModifier( dw_client, dw_handle __base_type,
                            uint __modifiers );
dw_handle       DWENTRY DWTypedef( dw_client, dw_handle __base_type,
                            char const *__name, dw_addr_offset __scope,
                            uint __flags );
dw_handle       DWENTRY DWPointer( dw_client, dw_handle __base_type,
                            uint __flags );
dw_handle       DWENTRY DWBasedPointer(  dw_client       cli,
                                         dw_handle       base_type,
                                         dw_loc_handle   seg,
                                         uint            flags );
dw_handle       DWENTRY DWString( dw_client, dw_loc_handle __string_length,
                            dw_size_t __byte_size, char const *__name,
                            dw_addr_offset __scope, uint __flags );
dw_handle       DWENTRY DWMemberPointer( dw_client,
                            dw_handle __containing_struct,
                            dw_loc_handle __use_location, dw_handle __base_type,
                            char const *__name, unsigned __flags );

/* array types */

typedef struct {
    dw_handle   index_type;
    dw_uconst   lo_data;
    dw_uconst   hi_data;
} dw_dim_info;

typedef struct {
    dw_handle   index_type;
    dw_handle   lo_data;
    dw_handle   count_data;
} dw_vardim_info;

dw_handle DWENTRY DWSimpleArray(
        dw_client cli,
        dw_handle elt_type,
        int elt_count );
dw_handle       DWENTRY DWBeginArray( dw_client, dw_handle __elt_type,
                            uint __stride_size, char const *__name,
                            dw_addr_offset __scope, uint __flags );
void            DWENTRY DWArrayDimension( dw_client, const dw_dim_info *__info);
void            DWENTRY DWArrayVarDim( dw_client, const dw_vardim_info * );
void            DWENTRY DWEndArray( dw_client );

/* structure types */
typedef enum {                  // Kind of Structure
    DW_ST_NONE,
    DW_ST_CLASS,
    DW_ST_STRUCT,
    DW_ST_UNION,
}dw_st;

dw_handle       DWENTRY DWStruct( dw_client, uint __kind );
void            DWENTRY DWBeginStruct( dw_client, dw_handle __struct_hdl,
                            dw_size_t __size, char const *__name,
                            dw_addr_offset __scope, uint __flags );
void            DWENTRY DWAddFriend( dw_client, dw_handle __friend );
dw_handle       DWENTRY DWAddInheritance( dw_client, dw_handle __ancestor,
                            dw_loc_handle __loc, uint __flags );
dw_handle       DWENTRY DWAddField( dw_client, dw_handle __field_hdl,
                            dw_loc_handle __loc, char const *__name,
                            uint __flags );
dw_handle       DWENTRY DWAddBitField( dw_client, dw_handle __field_hdl,
                            dw_loc_handle __loc, dw_size_t __byte_size,
                            uint __bit_offset, uint __bit_size,
                            char const *__name, uint __flags );
void            DWENTRY DWEndStruct( dw_client );


/* enumeration types */
dw_handle       DWENTRY DWBeginEnumeration( dw_client, dw_size_t __byte_size,
                            char const *__name, dw_addr_offset __scope,
                            uint __flags );
void            DWENTRY DWAddConstant( dw_client, dw_uconst __value,
                            char const *__name );
void            DWENTRY DWEndEnumeration( dw_client );


/* subroutine types */
dw_handle       DWENTRY DWBeginSubroutineType( dw_client,
                            dw_handle __return_type, char const *__name,
                            dw_addr_offset __scope, uint __flags );
dw_handle       DWENTRY DWAddParmToSubroutineType( dw_client,
                            dw_handle __parm_type, dw_loc_handle __loc,
                            dw_loc_handle __seg, char const *__name );
dw_handle       DWENTRY DWAddEllipsisToSubroutineType( dw_client );
void            DWENTRY DWEndSubroutineType( dw_client );


/* namespace      */
dw_handle DWENTRY DWBeginNameSpace(
    dw_client                   cli,
    const char *                name );
void DWENTRY DWEndNameSpace(
    dw_client                   cli );
/* lexical blocks */
dw_handle       DWENTRY DWBeginLexicalBlock( dw_client,
                            dw_loc_handle __aseg, char const *__name );
void            DWENTRY DWEndLexicalBlock( dw_client );


/* common blocks */
dw_handle       DWENTRY DWBeginCommonBlock( dw_client, dw_loc_handle __loc,
                            dw_loc_handle __aseg, char const *__name,
                            unsigned __flags );
void            DWENTRY DWEndCommonBlock( dw_client );
dw_handle       DWENTRY DWIncludeCommonBlock( dw_client,
                            dw_handle __common_block );

/* subroutines */
dw_handle       DWENTRY DWBeginInlineSubroutine( dw_client,
                            dw_handle __subr, dw_loc_handle __ret_addr_loc,
                            dw_loc_handle __aseg );
dw_handle       DWENTRY DWBeginSubroutine( dw_client, uint call_type,
                            dw_handle __return_type,
                            dw_loc_handle __return_addr_loc,
                            dw_loc_handle __frame_base_loc,
                            dw_loc_handle __structure_loc,
                            dw_handle __member_hdl, dw_loc_handle __aseg,
                            char const * __name, dw_addr_offset __start_scope,
                            uint __flags );
dw_handle DWENTRY DWBeginEntryPoint(
    dw_client                   cli,
    dw_handle                   return_type,
    dw_loc_handle               return_addr_loc,
    dw_loc_handle               segment,
    char const *                name,
    dw_addr_offset              start_scope,
    uint                        flags );

dw_handle DWENTRY DWBeginMemFuncDecl(
    dw_client                   cli,
    dw_handle                   return_type,
    dw_loc_handle               segment,
    dw_loc_handle               loc,
    char const *                name,
    uint                        flags );
dw_handle DWENTRY DWBeginVirtMemFuncDecl(
    dw_client                   cli,
    dw_handle                   return_type,
    dw_loc_handle               vtable_loc,
    char const *                name,
    uint                        flags );

void            DWENTRY DWEndSubroutine( dw_client );
enum {          // Kind of format for default value
    DW_DEFAULT_NONE,
    DW_DEFAULT_FUNCTION,
    DW_DEFAULT_STRING,
    DW_DEFAULT_BLOCK
};
dw_handle       DWENTRY DWFormalParameter( dw_client, dw_handle __parm_type,
                            dw_loc_handle __parm_loc, dw_loc_handle __aseg,
                            char const *__name, uint __default_value_type,
                            ... );
dw_handle       DWENTRY DWEllipsis( dw_client );
dw_handle       DWENTRY DWLabel( dw_client, dw_loc_handle __aseg,
                            char const *__name, dw_addr_offset __start_scope );
dw_handle       DWENTRY DWVariable( dw_client, dw_handle __type,
                            dw_loc_handle __loc, dw_handle __member_of,
                            dw_loc_handle __aseg, char const *__name,
                            dw_addr_offset __start_scope, uint __flags );
dw_handle       DWENTRY DWConstant( dw_client, dw_handle __type,
                            const void *__value, dw_size_t __len,
                            dw_handle __member_of, char const * __name,
                            dw_addr_offset __start_scope, uint __flags );
/* name list      */
dw_handle       DWENTRY DWNameListBegin( dw_client cli, char const *name );
void            DWENTRY DWNameListItem( dw_client cli, dw_handle ref );
void            DWENTRY DWEndNameList( dw_client cli );
/* address ranges */
void            DWENTRY DWAddress( dw_client, uint_32 );

/* public names */
void            DWENTRY DWPubname( dw_client, dw_handle __hdl,
                            char const *__name );
/* util used for PCH */
uint_32         DWENTRY DWDebugRefOffset( dw_client cli, dw_handle hdl );
dw_handle       DWENTRY DWRefPCH( dw_client cli, uint_32 ref );

#endif

⌨️ 快捷键说明

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