/* * 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 ); } }
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 ); }
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; } }
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 ); }