コード例 #1
0
ファイル: bitmap.c プロジェクト: Azarien/open-watcom-v2
/*
 * readInPieces - read a specified amount of data from a file in chunks
 */
static void readInPieces( BYTE _WCI86HUGE *dst, FILE *fp, DWORD size )
{
    BYTE                *buffer;
    WORD                chunk_size;

    for( chunk_size = CHUNK_SIZE; chunk_size != 0; chunk_size >>= 1 ) {
        if( (buffer = MemAlloc( chunk_size )) != NULL ) {
            while( size > chunk_size ) {
                fread( buffer, chunk_size, 1, fp );
                HugeMemCopy( dst, buffer, chunk_size );
                dst += chunk_size;
                size -= chunk_size;
            }
            fread( buffer, size, 1, fp );
            HugeMemCopy( dst, buffer, size );
            MemFree( buffer );
            break;
        }
    }

} /* readInPieces */
コード例 #2
0
static void WRReadInPieces( BYTE _HUGE *dst, BYTE *data, DWORD size )
{
    BYTE                *buffer = NULL;
    WORD                chunk_size;

    chunk_size = CHUNK_SIZE;
    while( chunk_size != 0 && (buffer = MemAlloc( chunk_size )) == NULL ) {
        chunk_size >>= 1;
    }
    if( buffer == NULL ) {
        return;
    }
    while( size > chunk_size ) {
        memcpy( buffer, data, chunk_size );
        HugeMemCopy( dst, buffer, chunk_size );
        dst += chunk_size;
        size -= chunk_size;
        data += chunk_size;
    }
    memcpy( buffer, data, size );
    HugeMemCopy( dst, buffer, size );
    MemFree( buffer );
}
コード例 #3
0
ファイル: BITMAP.C プロジェクト: aquashift/86Duino_DuinOS
static void ReadInPieces( BYTE _HUGE *dst, FILE *fp, DWORD size )
{
    BYTE                *buffer;
    WORD                chunk_size;

    chunk_size = CHUNK_SIZE;
    while( ( buffer = malloc( chunk_size ) ) == NULL ) {
        chunk_size >>= 1;
    }
    while( size > chunk_size ) {
        fread( buffer, chunk_size, 1, fp );
        HugeMemCopy( dst, buffer, chunk_size );
        dst += chunk_size;
        size -= chunk_size;
    }
    fread( buffer, size, 1, fp );
    _memcpy( dst, buffer, size );
    free( buffer );
} /* ReadInPieces */