unsigned ReqMachine_data() { int sel; int size; int bitness; machine_data_req *acc; machine_data_ret *ret; union { unsigned_8 u8; } *data; acc = GetInPtr( 0 ); ret = GetOutPtr( 0 ); data = GetOutPtr( sizeof( *ret ) ); sel = acc->addr.segment; if( RdosGetSelectorInfo( sel, &size, &bitness ) ) { if( size > 0xFFFF ) bitness = 32; ret->cache_start = 0; ret->cache_end = size; if( bitness == 16 ) data->u8 = 0; else data->u8 = 1; } else { ret->cache_start = 0; ret->cache_end = 0xFFFFFFFF; data->u8 = 1; } return( sizeof( *ret ) + sizeof( data->u8 ) ); }
int GetThreadMemoryModel( struct TDebugThread *obj ) { int limit; int bitness; if (obj->Cs == 0x1B3) return DEBUG_MEMORY_MODEL_FLAT; if (RdosGetSelectorInfo(obj->Cs, &limit, &bitness)) { if (limit == 0xFFFFFFFF) return DEBUG_MEMORY_MODEL_FLAT; if (bitness == 16) return DEBUG_MEMORY_MODEL_16; if (bitness == 32) return DEBUG_MEMORY_MODEL_32; } return DEBUG_MEMORY_MODEL_16; }