Пример #1
0
/*
 * Lets the DIP user setup segment mappings.
 */
void DIGENTRY DIPImpMapInfo( imp_image_handle *ii, void *d )
{
    unsigned    i;

    for( i = 0; i < ii->seg_count; i++ ) {
        DCMapAddr( &ii->segments[i].map, d );
    }
}
Пример #2
0
address DIPIMPENTRY( CueAddr )( imp_image_handle *ii, imp_cue_handle *ic )
/********************************************************************************/
{
    address     ret;
    /* Return the address of source cue. Return NilAddr if there
     * is no address associated with the cue, or an error occurs in
     * getting the information.
     */
    ret = ic->a;
    DCMapAddr( &ret.mach, ii->dcmap );
    return( ret );
}
Пример #3
0
void            DIGENTRY DIPImpMapInfo( imp_image_handle *ii, void *d )
{
    unsigned    i;
    addr_ptr    addr;

    for( i = 0; i < ii->map_count; ++i ) {
        addr.segment = ii->mapping[i].frame;
        addr.offset  = ii->mapping[i].offset;
        DCMapAddr( &addr, d );
        ii->mapping[i].frame  = addr.segment;
        ii->mapping[i].offset = addr.offset;
    }
}
Пример #4
0
static bool AModAddr( void *_info, dr_line_data *curr )
/*****************************************************/
{
    l_walk_info         *info = _info;
    bool                ret;
    imp_image_handle    *ii;

    ret = TRUE;
    if( curr->is_stmt ) {
        off_info *off;

        *info->ret = NilAddr;
        info->ret->mach.offset = curr->offset;
        info->ret->mach.segment = curr->seg;
        ii = info->ii;
        DCMapAddr( &info->ret->mach, ii->dcmap );
        off = FindMapAddr( ii->addr_map, info->ret );
        if( off->im == info->im ) {
            ret = FALSE;
        }
    }
    return( ret );
}