@ -808,7 +808,7 @@ __u8 do_fat_read_at_block[MAX_CLUSTSIZE]
long
do_fat_read_at ( const char * filename , unsigned long pos , void * buffer ,
unsigned long maxsize , int dols )
unsigned long maxsize , int dols , int dogetsize )
{
char fnamecopy [ 2048 ] ;
boot_sector bs ;
@ -1152,6 +1152,9 @@ rootdir_done:
subname = nextname ;
}
if ( dogetsize )
ret = FAT2CPU32 ( dentptr - > size ) ;
else
ret = get_contents ( mydata , dentptr , pos , buffer , maxsize ) ;
debug ( " Size: %d, got: %ld \n " , FAT2CPU32 ( dentptr - > size ) , ret ) ;
@ -1163,7 +1166,7 @@ exit:
long
do_fat_read ( const char * filename , void * buffer , unsigned long maxsize , int dols )
{
return do_fat_read_at ( filename , 0 , buffer , maxsize , dols ) ;
return do_fat_read_at ( filename , 0 , buffer , maxsize , dols , 0 ) ;
}
int file_fat_detectfs ( void )
@ -1233,11 +1236,18 @@ int file_fat_ls(const char *dir)
return do_fat_read ( dir , NULL , 0 , LS_YES ) ;
}
int fat_exists ( const char * filename )
{
int sz ;
sz = do_fat_read_at ( filename , 0 , NULL , 0 , LS_NO , 1 ) ;
return sz > = 0 ;
}
long file_fat_read_at ( const char * filename , unsigned long pos , void * buffer ,
unsigned long maxsize )
{
printf ( " reading %s \n " , filename ) ;
return do_fat_read_at ( filename , pos , buffer , maxsize , LS_NO ) ;
return do_fat_read_at ( filename , pos , buffer , maxsize , LS_NO , 0 ) ;
}
long file_fat_read ( const char * filename , void * buffer , unsigned long maxsize )