Example #1
0
trap_retval ReqProg_go( void )
{
    prog_go_ret *ret;

    ret = GetOutPtr( 0 );
    ret->conditions = COND_TERMINATE;
    return( sizeof( *ret ) );
}
Example #2
0
trap_retval ReqRedirect_stdin( void )
{
    redirect_stdin_ret      *ret;

    ret = GetOutPtr( 0 );
    ret->err = 1;
    return( sizeof( *ret ) );
}
Example #3
0
unsigned ReqRedirect_stdout( void  )
{
    redirect_stdout_ret *ret;

    ret = GetOutPtr( 0 );
    ret->err = 1;
    return( sizeof( *ret ) );
}
Example #4
0
trap_retval ReqMachine_data( void )
{
    machine_data_req    *acc;
    machine_data_ret    *ret;
    unsigned_8          *data;

    acc = GetInPtr( 0 );
    ret = GetOutPtr( 0 );
    data = GetOutPtr( sizeof( *ret ) );
    ret->cache_start = 0;
    ret->cache_end = ~(addr_off)0;
    *data = 0;
    if( IsSegSize32( acc->addr.segment ) ) {
        *data |= X86AC_BIG;
    }
    return( sizeof( *ret ) + sizeof( *data ) );
}
Example #5
0
//OBSOLETE - use ReqRead_regs
unsigned ReqRead_fpu()
{
    trap_fpu_regs       *regs;

    regs = GetOutPtr( 0 );
    ReadFPU( (struct x86_fpu *)regs );
    return( sizeof( *regs ) );
}
Example #6
0
trap_retval ReqFile_run_cmd( void )
{
    file_run_cmd_ret *ret;

    ret = GetOutPtr( 0 );
    ret->err = 0;  //NYI: No error?
    return( sizeof( *ret ) );
}
Example #7
0
static unsigned_16 AccReadUserKey()
{
    rd_key_return FAR *retblk;

    retblk = GetOutPtr( 0 );
    retblk->key = GtKey();
    return( sizeof( rd_key_return ) );
}
Example #8
0
trap_retval ReqChecksum_mem( void )
{
    checksum_mem_ret    *ret;

    ret = GetOutPtr(0);
    ret->result = 0;
    return( sizeof( *ret ) );
}
Example #9
0
unsigned ReqRead_mem( void )
/**************************/
{
    read_mem_req        *acc;

    acc = GetInPtr( 0 );
    return( ReadMemory( &acc->mem_addr, GetOutPtr( 0 ), acc->len ) );
}
Example #10
0
unsigned ReqRead_regs( void )
{
    mad_registers   *mr;

    mr = GetOutPtr( 0 );
    ReadCPU( &mr->mips );
    return( sizeof( mr->mips ) );
}
Example #11
0
//OBSOLETE - use ReqMachine_data
trap_retval ReqAddr_info( void )
{
    addr_info_ret   *ret;

    ret = GetOutPtr( 0 );
    ret->is_big = FALSE;
    return( sizeof( *ret ) );
}
Example #12
0
trap_retval ReqFile_erase( void )
{
    file_erase_ret      *ret;

    ret = GetOutPtr( 0 );
    ret->err = 1;       //NYI:
    return( sizeof( *ret ) );
}
Example #13
0
trap_retval ReqThread_thaw( void )
{
    thread_thaw_ret     *ret;

    ret = GetOutPtr( 0 );
    ret->err = 0;
    return( sizeof( *ret ) );
}
Example #14
0
trap_retval ReqSet_break( void )
{
    set_break_ret       *ret;

    ret = GetOutPtr( 0 );
    ret->old = 0;
    return( sizeof( *ret ) );
}
Example #15
0
trap_retval ReqWrite_io( void )
{
    write_io_ret        *ret;

    ret = GetOutPtr( 0 );
    ret->len = 0;
    return( sizeof( *ret ) );
}
Example #16
0
trap_retval ReqChecksum_mem( void )
{
    checksum_mem_ret    *ret;

    ret = GetOutPtr( 0 );
    ret->result = 0;    // Dead programs do not tend to change much
    return( sizeof( *ret ) );
}
Example #17
0
trap_retval ReqRunThread_info( void )
{
    run_thread_info_req *acc;
    run_thread_info_ret *ret;
    char                *header_txt;

    acc = GetInPtr( 0 );
    ret = GetOutPtr( 0 );

    header_txt = GetOutPtr( sizeof( *ret ) );

    switch( acc->col )
    {
    case 0:
        ret->info = RUN_THREAD_INFO_TYPE_NAME;
        ret->width = 25;
        strcpy( header_txt, "ID   Name" );
        break;

    case 1:
        ret->info = RUN_THREAD_INFO_TYPE_EXTRA;
        ret->width = 21;
        strcpy( header_txt, "                Time" );
        break;

    case 2:
        ret->info = RUN_THREAD_INFO_TYPE_STATE;
        ret->width = 10;
        strcpy( header_txt, "State" );
        break;

    case 3:
        ret->info = RUN_THREAD_INFO_TYPE_CS_EIP;
        ret->width = 15;
        strcpy( header_txt, "cs:eip" );
        break;

    default:
        ret->info = RUN_THREAD_INFO_TYPE_NONE;
        ret->width = 0;
        *header_txt = 0;
        break;
    }

    return( sizeof( *ret ) + strlen( header_txt ) + 1 );
}
Example #18
0
trap_retval ReqThread_get_extra( void )
{
    char                 *ret;

    ret = GetOutPtr( 0 );
    ret[0] = '\0';
    return( strlen( ret ) + 1 );
}
Example #19
0
unsigned ReqRead_fpu( void )
/**************************/
{
    trap_fpu_regs       *regs;

    regs = GetOutPtr( 0 );
    Read387( regs );
    return( sizeof( *regs ) );
}
Example #20
0
unsigned ReqRead_cpu( void )
/**************************/
{
    trap_cpu_regs       *regs;

    regs = GetOutPtr( 0 );
    *regs = DebugRegs;
    return( sizeof( *regs ) );
}
Example #21
0
/* We do not support I/O port access on MIPS, although if we really
 * wanted to, we could access memory mapped ISA/PCI I/O ports on systems
 * where those are provided. Would require root privileges.
 */
unsigned ReqRead_io( void )
{
    read_io_req *acc;
    void        *ret;

    acc = GetInPtr( 0 );
    ret = GetOutPtr( 0 );
    return( 0 );
}
Example #22
0
unsigned ReqGet_next_alias()
{
    get_next_alias_ret  *ret;

    ret = GetOutPtr( 0 );
    ret->seg = 0;
    ret->alias = 0;
    return( sizeof( *ret ) );
}
Example #23
0
unsigned ReqFile_run_cmd( void )
{
    file_run_cmd_ret    *ret;

    //NYI: to do
    ret = GetOutPtr( 0 );
    ret->err = 0;
    return( sizeof( *ret ) );
}
Example #24
0
trap_retval ReqSet_watch( void )
{
    set_watch_ret       *ret;

    ret = GetOutPtr( 0 );
    ret->err = 0;
    ret->multiplier = USING_DEBUG_REG | 1;
    return( sizeof( *ret ) );
}
Example #25
0
//OBSOLETE - use ReqMachine_data
trap_retval ReqAddr_info( void )
{
    addr_info_ret       *ret;

                                                                          _DBG1(( "AccAddrInfo" ));
    ret = GetOutPtr( 0 );
    ret->is_big = 1;
    return( sizeof( *ret ) );
}
Example #26
0
unsigned ReqRead_regs( void )
{
    mad_registers       *mr;

    mr = GetOutPtr(0);
    ReadCPU( &mr->x86.cpu );
    ReadFPU( &mr->x86.fpu );
    return( sizeof( mr->x86 ) );
}
Example #27
0
trap_retval ReqGet_next_alias( void )
{
    get_next_alias_ret  *ret;

    ret = GetOutPtr( 0 );
    ret->seg = 0;
    ret->alias = 0;
    return( sizeof( *ret ) );
}
Example #28
0
trap_retval ReqFile_read( void )
{
    file_read_req       *acc;
    file_read_ret       *ret;
    int           retval;

    acc = GetInPtr( 0 );
    ret = GetOutPtr( 0 );
    retval = IORead( acc->handle, GetOutPtr( sizeof( *ret ) ),
                     acc->len );
    if( retval < 0 ) {
        ret->err = retval;
        retval = 0;
    } else {
        ret->err = 0;
    }
    return( sizeof( *ret ) + retval );
}
Example #29
0
trap_retval ReqRead_regs( void )
{
    mad_registers       *mr;

    mr = GetOutPtr(0);
    mr->x86.cpu = *(struct x86_cpu *)&Regs;
    Read387( &mr->x86.u.fpu );
    return( sizeof( mr->x86 ) );
}
Example #30
0
trap_retval ReqThread_set( void )
{
    thread_set_ret      *ret;

    ret = GetOutPtr( 0 );
    ret->err = 0;
    ret->old_thread = Core.hdr.psdata.pid;
    return( sizeof( *ret ) );
}