@ -1034,24 +1034,27 @@ int file_fat_detectfs(void)
int fat_exists ( const char * filename )
int fat_exists ( const char * filename )
{
{
fsdata fsdata ;
fsdata fsdata ;
fat_itr itrblock , * itr = & itrblock ;
fat_itr * itr ;
int ret ;
int ret ;
itr = malloc ( sizeof ( fat_itr ) ) ;
ret = fat_itr_root ( itr , & fsdata ) ;
ret = fat_itr_root ( itr , & fsdata ) ;
if ( ret )
if ( ret )
return 0 ;
return 0 ;
ret = fat_itr_resolve ( itr , filename , TYPE_ANY ) ;
ret = fat_itr_resolve ( itr , filename , TYPE_ANY ) ;
free ( fsdata . fatbuf ) ;
free ( fsdata . fatbuf ) ;
free ( itr ) ;
return ret = = 0 ;
return ret = = 0 ;
}
}
int fat_size ( const char * filename , loff_t * size )
int fat_size ( const char * filename , loff_t * size )
{
{
fsdata fsdata ;
fsdata fsdata ;
fat_itr itrblock , * itr = & itrblock ;
fat_itr * itr ;
int ret ;
int ret ;
itr = malloc ( sizeof ( fat_itr ) ) ;
ret = fat_itr_root ( itr , & fsdata ) ;
ret = fat_itr_root ( itr , & fsdata ) ;
if ( ret )
if ( ret )
return ret ;
return ret ;
@ -1072,8 +1075,9 @@ int fat_size(const char *filename, loff_t *size)
}
}
* size = FAT2CPU32 ( itr - > dent - > size ) ;
* size = FAT2CPU32 ( itr - > dent - > size ) ;
out :
free ( fsdata . fatbuf ) ;
free ( fsdata . fatbuf ) ;
out :
free ( itr ) ;
return ret ;
return ret ;
}
}
@ -1081,9 +1085,10 @@ int file_fat_read_at(const char *filename, loff_t pos, void *buffer,
loff_t maxsize , loff_t * actread )
loff_t maxsize , loff_t * actread )
{
{
fsdata fsdata ;
fsdata fsdata ;
fat_itr itrblock , * itr = & itrblock ;
fat_itr * itr ;
int ret ;
int ret ;
itr = malloc ( sizeof ( fat_itr ) ) ;
ret = fat_itr_root ( itr , & fsdata ) ;
ret = fat_itr_root ( itr , & fsdata ) ;
if ( ret )
if ( ret )
return ret ;
return ret ;
@ -1097,6 +1102,7 @@ int file_fat_read_at(const char *filename, loff_t pos, void *buffer,
out :
out :
free ( fsdata . fatbuf ) ;
free ( fsdata . fatbuf ) ;
free ( itr ) ;
return ret ;
return ret ;
}
}