summaryrefslogtreecommitdiff
path: root/filesystem
diff options
context:
space:
mode:
authorbernard.xiong <[email protected]>2009-08-19 13:14:50 +0000
committerbernard.xiong <[email protected]>2009-08-19 13:14:50 +0000
commite00da562ed8cf940329ca9c6fbb8318164295762 (patch)
treeef17b40da4cfdb59039cdc766546becb9e823ac0 /filesystem
parent9eed317daf5c7ab54d14539535a75e7652e55b15 (diff)
update stm32 radio code; add backspace key support in finsh;
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@22 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'filesystem')
-rw-r--r--filesystem/dfs/filesystems/efsl/src/fs/vfat/file.c60
-rw-r--r--filesystem/dfs/src/dfs_raw.c8
2 files changed, 38 insertions, 30 deletions
diff --git a/filesystem/dfs/filesystems/efsl/src/fs/vfat/file.c b/filesystem/dfs/filesystems/efsl/src/fs/vfat/file.c
index 436989edc0..4bd0593f53 100644
--- a/filesystem/dfs/filesystems/efsl/src/fs/vfat/file.c
+++ b/filesystem/dfs/filesystems/efsl/src/fs/vfat/file.c
@@ -61,40 +61,40 @@ euint32 file_fread(File *file,euint32 offset, euint32 size,euint8 *buf)
if( (offset+size > file->FileSize) && size_left!=0)
size_left=file->FileSize-offset;
- while(size_left>0)
+ while(size_left>0)
{
cclus = coffset/(512*file->fs->volumeId.SectorsPerCluster);
csec = (coffset/(512))%file->fs->volumeId.SectorsPerCluster;
cbyte = coffset%512;
-
- if ((size_left > 512 * file->fs->volumeId.SectorsPerCluster) &&
- (csec == 0) && (cbyte == 0))
- {
- /* read whole cluster */
- btr = 512 * file->fs->volumeId.SectorsPerCluster;
- }
- else if(cbyte!=0 || size_left<512)
- {
+
+ if ((size_left > 512 * file->fs->volumeId.SectorsPerCluster) &&
+ (csec == 0) && (cbyte == 0))
+ {
+ /* read whole cluster */
+ btr = 512 * file->fs->volumeId.SectorsPerCluster;
+ }
+ else if(cbyte!=0 || size_left<512)
+ {
btr = 512-(coffset%512) >= size_left? size_left:512-(coffset%512);
- }
- else
- {
+ }
+ else
+ {
/* whole sector */
btr = 512;
}
if((fat_LogicToDiscCluster(file->fs,&(file->Cache),cclus))!=0){
return(0);
- }
+ }
rclus = file->Cache.DiscCluster;
rsec = fs_clusterToSector(file->fs,rclus);
- if(btr > 512)
+ if(btr > 512)
{
part_directSectorRead(file->fs->part, rsec + csec, buf + bytes_read, btr / 512);
- }
- else
+ }
+ else
{
tbuf = part_getSect(file->fs->part,rsec+csec,IOM_MODE_READONLY);
memCpy(tbuf+(coffset%512),buf+bytes_read,btr);
@@ -194,18 +194,18 @@ euint32 file_fwrite(File* file,euint32 offset,euint32 size,euint8* buf)
csec = (coffset/(512))%file->fs->volumeId.SectorsPerCluster;
cbyte = coffset%512;
- if ((size_left > 512 * file->fs->volumeId.SectorsPerCluster) &&
- (csec == 0) && (cbyte == 0))
- {
- /* write whole cluster */
- btr = 512 * file->fs->volumeId.SectorsPerCluster;
- }
- else if(cbyte!=0 || size_left<512)
+ if ((size_left > 512 * file->fs->volumeId.SectorsPerCluster) &&
+ (csec == 0) && (cbyte == 0))
+ {
+ /* write whole cluster */
+ btr = 512 * file->fs->volumeId.SectorsPerCluster;
+ }
+ else if(cbyte!=0 || size_left<512)
{
btr = 512- (coffset%512) >= size_left? size_left:512-(coffset%512);
- }
- else
- {
+ }
+ else
+ {
/* whole sector */
btr = 512;
}
@@ -218,11 +218,11 @@ euint32 file_fwrite(File* file,euint32 offset,euint32 size,euint8* buf)
rclus=file->Cache.DiscCluster;
rsec=fs_clusterToSector(file->fs,rclus);
- if(btr > 512)
+ if(btr > 512)
{
part_directSectorWrite(file->fs->part, rsec + csec, buf + bytes_written, btr / 512);
- }
- else
+ }
+ else
{
tbuf = part_getSect(file->fs->part,rsec+csec,IOM_MODE_READWRITE);
memCpy(buf+bytes_written, tbuf+(coffset%512), btr);
diff --git a/filesystem/dfs/src/dfs_raw.c b/filesystem/dfs/src/dfs_raw.c
index 816197c5e9..a3be0b6a13 100644
--- a/filesystem/dfs/src/dfs_raw.c
+++ b/filesystem/dfs/src/dfs_raw.c
@@ -38,7 +38,11 @@ int fd_new(void)
rt_sem_take(fd_table_lock, RT_WAITING_FOREVER);
/* find an empty fd entry */
+#ifdef RT_USING_STDIO
for (idx = 3; idx < DFS_FD_MAX && fd_table[idx].ref_count > 0; idx++);
+#else
+ for (idx = 0; idx < DFS_FD_MAX && fd_table[idx].ref_count > 0; idx++);
+#endif
/* can't find an empty fd entry */
if (idx == DFS_FD_MAX)
@@ -69,7 +73,11 @@ struct dfs_fd* fd_get(int fd)
{
struct dfs_fd* d;
+#ifdef RT_USING_STDIO
if ( fd < 3 || fd > DFS_FD_MAX ) return RT_NULL;
+#else
+ if ( fd < 0 || fd > DFS_FD_MAX ) return RT_NULL;
+#endif
d = &fd_table[fd];