Ejemplo n.º 1
0
_WCRTLINK long __lseek( int handle, long offset, int origin )
{
    long            pos;

    __handle_check( handle, -1 );

#if defined( __OS2__ )
    {
        APIRET          rc;

        rc = DosChgFilePtr( handle, offset, origin, (PULONG)&pos );
        if( rc != 0 ) {
            return( __set_errno_dos( rc ) );
        }
    }
#elif defined( __NT__ )
    pos = SetFilePointer( __getOSHandle( handle ), offset, 0, origin );
    if( pos == INVALID_SET_FILE_POINTER ) {
        return( __set_errno_nt() );
    }
#elif defined( __DOS__ ) || defined( __WINDOWS__ )
    {
        tiny_ret_t      rc;

        rc = TinyLSeek( handle, offset, origin, (u32_stk_ptr)&pos );
        if( TINY_ERROR( rc ) ) {
            return( __set_errno_dos( TINY_INFO( rc ) ) );
        }
    }
#endif
    return( pos );
}
Ejemplo n.º 2
0
unsigned long SysSeek( int handle, unsigned long loc )
{
    unsigned long   new_loc;

    if( TINY_ERROR( TinyLSeek( handle, loc, TIO_SEEK_START, (u32_stk_ptr)&new_loc ) ) )
        return( -1UL );
    return( new_loc );
}
Ejemplo n.º 3
0
unsigned long QPos( f_handle file )
/****************************************/
{
    unsigned long pos;

    CheckBreak();
    if( TINY_ERROR( TinyLSeek( file, 0L, TIO_SEEK_CURR, (void __near *)&pos ) ) ) {
        return( -1L );
    }
    return( pos );
}
Ejemplo n.º 4
0
unsigned long QFileSize( f_handle file )
/*********************************************/
{
    unsigned long   curpos;
    unsigned long   size;

    curpos = QPos( file );
    if( TINY_ERROR( TinyLSeek( file, 0L, TIO_SEEK_END, (void __near *)&size ) ) )
        size = 0;
    TinySeek( file, curpos, TIO_SEEK_START );
    return( size );
}
Ejemplo n.º 5
0
unsigned long LocalSeek( sys_handle hdl, unsigned long npos, seek_method method )
{
    tiny_ret_t      ret;
    unsigned long   pos;

    ret = TinyLSeek( hdl, npos, method, (u32_stk_ptr)&pos );
    if( TINY_ERROR( ret ) ) {
        StashErrCode( TINY_INFO( ret ), OP_LOCAL );
        return( -1UL );
    }
    return( pos );
}
Ejemplo n.º 6
0
unsigned long LocalSeek( sys_handle hdl, unsigned long len, unsigned method )
{
    tiny_ret_t      ret;
    unsigned long   pos;

    ret = TinyLSeek( hdl, len, method, &pos );
    if( TINY_ERROR( ret ) ) {
        StashErrCode( TINY_INFO( ret ), OP_LOCAL );
        return( -1UL );
    }
    return( pos );
}
Ejemplo n.º 7
0
trap_retval ReqFile_seek( void )
{
    tiny_ret_t      rc;
    file_seek_req   *acc;
    file_seek_ret   *ret;
    unsigned long   pos;

    acc = GetInPtr( 0 );
    ret = GetOutPtr( 0 );
    rc = TinyLSeek( acc->handle, acc->pos, acc->mode, (u32_stk_ptr)&pos );
    ret->pos = pos;
    ret->err = TINY_ERROR( rc ) ? TINY_INFO( rc ) : 0;
    return( sizeof( *ret ) );
}
Ejemplo n.º 8
0
long QLSeek( f_handle file, long position, int start, char *name )
/***********************************************************************/
{
    tiny_ret_t    rc;
    unsigned long pos;

    CheckBreak();
    rc = TinyLSeek( file, position, start, (void __near *)&pos );
    if( TINY_ERROR( rc ) ) {
        if( name != NULL )
            LnkMsg( ERR+MSG_IO_PROBLEM, "12", name, QErrMsg( TINY_INFO( rc ) ) );
        return( -1L );   /* for xmem checking */
    }
    return( pos );
}