remove compiling warning in dfs_efsl

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@38 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
bernard.xiong 2009-09-06 11:06:26 +00:00
parent b9290bcef4
commit 5931c6d00f
6 changed files with 48 additions and 56 deletions

View File

@ -12,11 +12,14 @@
* 2008-08-16 Yi.Qiu The first version.
*/
#include <string.h>
#include "efs.h"
#include "dfs_cache.h"
#include "ls.h"
#include "ui.h"
#include "fat.h"
#include <string.h>
#define EFS_MAX 2
@ -24,7 +27,7 @@ struct dfs_filesystem_operation efs;
/**
* This function will initialize efsl to DFS interface.
*
*
* @return 0 on succesful
*/
int efsl_init()
@ -65,8 +68,8 @@ int efs_mount(struct dfs_filesystem* fs)
efsl_fs* efsfs;
int result;
/* allocate an EFS filesystem entry */
efsfs = (efsl_fs*) rt_malloc (sizeof(efsl_fs));
/* allocate an EFS filesystem entry */
efsfs = (efsl_fs*) rt_malloc (sizeof(efsl_fs));
/* init efs filesystem struct */
efsfs->partition.ioman = rt_malloc(sizeof(IOManager));
@ -74,7 +77,7 @@ int efs_mount(struct dfs_filesystem* fs)
part_initPartition(&efsfs->partition);
ioman_init(efsfs->partition.ioman);
result = fs_initFs(&efsfs->filesystem ,&efsfs->partition);
result = fs_initFs(&efsfs->filesystem ,&efsfs->partition);
/* set to DFS filesystem user data */
fs->data = efsfs;
@ -96,7 +99,7 @@ int efs_unmount(struct dfs_filesystem* fs)
if ( efsfs == RT_NULL ) return -DFS_STATUS_EINVAL;
fs_flushFs(&efsfs->filesystem);
rt_free(efsfs->partition.ioman);
rt_free(efsfs->partition.ioman);
rt_free(efsfs);
fs->data = RT_NULL;
@ -202,19 +205,19 @@ int efs_close(struct dfs_fd* file)
{
int result = 0;
if (!file || !(file->flags & DFS_F_OPEN)) return -DFS_STATUS_EBADF;
if (!file || !(file->flags & DFS_F_OPEN)) return -DFS_STATUS_EBADF;
if(!(file->flags & DFS_F_DIRECTORY))
result = file_fclose((File *)file->data);
else
{
else
{
dfs_log(DFS_DEBUG_INFO, ("close a directory, %s", file->path));
}
}
dfs_log(DFS_DEBUG_INFO, ("close a file, %s", file->path));
/* free directory or file */
rt_free(file->data);
rt_free(file->data);
file->data = RT_NULL;
return result;
@ -242,8 +245,8 @@ int efs_read(struct dfs_fd* file, void* buf, rt_size_t len)
File* efsfile = file->data;
int result = 0;
/* parameter check */
RT_ASSERT(efsfile != RT_NULL);
/* parameter check */
RT_ASSERT(efsfile != RT_NULL);
result = file_read(efsfile, len, buf);
file->pos = efsfile->FilePtr;
@ -264,8 +267,8 @@ int efs_write(struct dfs_fd* file, const void* buf, rt_size_t len)
File* efsfile = file->data;
int result = 0;
/* parameter check */
RT_ASSERT(efsfile != RT_NULL);
/* parameter check */
RT_ASSERT(efsfile != RT_NULL);
result = file_write(efsfile, len, (euint8 *)buf);
file->pos = efsfile->FilePtr;
@ -286,9 +289,9 @@ int efs_lseek(struct dfs_fd* file, rt_off_t offset)
{
int result = 0;
DirList* efsdir;
efsl_fs* efsfs = (efsl_fs *)file->fs->data;
efsl_fs* efsfs = (efsl_fs *)file->fs->data;
/* parameter check */
/* parameter check */
RT_ASSERT(efsfs != RT_NULL);
/* seek directory */
@ -365,7 +368,7 @@ int efs_getdents(struct dfs_fd* file, struct dfs_dirent* dirp, rt_uint32_t count
result ++;
/* is it enough? */
if ( result * sizeof(struct dfs_dirent) >= count )
if ( result * sizeof(struct dfs_dirent) >= count )
break;
}
@ -380,13 +383,13 @@ int efs_getdents(struct dfs_fd* file, struct dfs_dirent* dirp, rt_uint32_t count
*/
int efs_unlink(struct dfs_filesystem* fs, const char* path)
{
efsl_fs* efsfs;
efsl_fs* efsfs;
RT_ASSERT(fs != RT_NULL);
efsfs = (efsl_fs *)fs->data;
RT_ASSERT(fs != RT_NULL);
efsfs = (efsl_fs *)fs->data;
RT_ASSERT(path != RT_NULL);
RT_ASSERT(efsfs != RT_NULL);
RT_ASSERT(path != RT_NULL);
RT_ASSERT(efsfs != RT_NULL);
return un_link(&efsfs->filesystem, (euint8 *)path);
}
@ -403,7 +406,7 @@ int efs_stat(struct dfs_filesystem* fs, const char *path, struct dfs_stat *st)
FileLocation loc;
efsl_fs* efsfs = (efsl_fs*)(fs->data);
/* parameter check */
/* parameter check */
RT_ASSERT(efsfs != RT_NULL);
/* file does not exist */
@ -446,7 +449,7 @@ int efs_rename(struct dfs_filesystem* fs, const char* oldpath, const char* newpa
eint8 fatfilename[11];
efsfs = (efsl_fs*) fs->data ;
RT_ASSERT(efsfs != RT_NULL);
RT_ASSERT(efsfs != RT_NULL);
dir_getFatFileName((eint8 *)newpath, &fatfilename[0]);

View File

@ -217,13 +217,8 @@ euint32 dir_findinBuf(euint8 *buf, eint8 *fatname, FileLocation *loc, euint8 mo
switch(mode){
case DIRFIND_FILE:
return(dir_findFileinBuf(buf,fatname,loc));
break;
case DIRFIND_FREE:
return(dir_findFreeEntryinBuf(buf,loc));
break;
default:
return(0);
break;
}
return(0);
}
@ -274,10 +269,9 @@ euint32 dir_findinDir(FileSystem *fs, eint8* fatname,euint32 firstcluster, FileL
return(dir_findinRootArea(fs,fatname,loc,mode));
}
while(!fat_LogicToDiscCluster(fs,&Cache,c++)){
if((cluster=dir_findinCluster(fs,Cache.DiscCluster,fatname,loc,mode))){
return(cluster);
}
while(!fat_LogicToDiscCluster(fs,&Cache,c++)){
cluster=dir_findinCluster(fs,Cache.DiscCluster,fatname,loc,mode);
if(cluster) return(cluster);
}
return(0);
}
@ -296,8 +290,9 @@ euint32 dir_findinRootArea(FileSystem *fs,eint8* fatname, FileLocation *loc, eui
if((fs->type != FAT12) && (fs->type != FAT16))return(0);
for(c=fs->FirstSectorRootDir;c<(fs->FirstSectorRootDir+fs->volumeId.RootEntryCount/32);c++){
buf = part_getSect(fs->part,c,IOM_MODE_READONLY);
if((fclus=dir_findinBuf(buf,fatname,loc,mode))){
buf = part_getSect(fs->part,c,IOM_MODE_READONLY);
fclus=dir_findinBuf(buf,fatname,loc,mode);
if(fclus){
if(loc)loc->Sector=c;
part_relSect(fs->part,buf);
return(fclus);
@ -322,10 +317,13 @@ esint8 dir_getFatFileName(eint8* filename, eint8* fatfilename)
next = filename;
if(*filename=='/')next++;
while((next=file_normalToFatName(next,ffnamec))){
next=file_normalToFatName(next,ffnamec);
while(next){
memCpy(ffnamec,fatfilename,11);
nn++;
nn++;
next=file_normalToFatName(next,ffnamec);
}
if(nn)return(1);
return(0);

View File

@ -51,26 +51,21 @@ euint32 fat_getSectorAddressFatEntry(FileSystem *fs,euint32 cluster_addr)
res=(cluster_addr*3/1024);
if(res>=fs->FatSectorCount){
return(0);
}else{
return(base+res);
}
break;
}
return(base+res);
case FAT16:
res=cluster_addr/256;
if(res>=fs->FatSectorCount){
return(0);
}else{
return(base+res);
}
break;
return(base+res);
case FAT32:
res=cluster_addr/128;
if(res>=fs->FatSectorCount){
return(0);
}else{
return(base+res);
}
break;
}
return(base+res);
}
return(0);
}
@ -241,13 +236,10 @@ euint32 fat_giveEocMarker(FileSystem *fs)
{
case FAT12:
return(0xFFF);
break;
case FAT16:
return(0xFFFF);
break;
case FAT32:
return(0x0FFFFFFF);
break;
}
return(0);
}

View File

@ -30,6 +30,7 @@
#endif
/* Device error codes */
#define DFS_STATUS_OK 0 /* no error */
#define DFS_STATUS_ENOENT 2 /* No such file or directory */
#define DFS_STATUS_EIO 5 /* I/O error */
#define DFS_STATUS_ENXIO 6 /* No such device or address */

View File

@ -513,7 +513,7 @@ int chdir(const char *path)
{
char* fullpath, full_path[DFS_PATH_MAX + 1];
if(path == RT_NULL || strlen(path) > DFS_PATH_MAX)
if(path == RT_NULL || rt_strlen(path) > DFS_PATH_MAX)
return -1;
fullpath = (char*)path;

View File

@ -262,8 +262,6 @@ char *strrchr(const char *t, int c)
if ((*t == ch)) l=t;
if ((!*t)) return (char*)l; ++t;
}
return (char*)l;
}
#endif