summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
author[email protected] <[email protected]>2012-04-08 08:14:32 +0000
committer[email protected] <[email protected]>2012-04-08 08:14:32 +0000
commit7494880ac206acf3d8f1a3142efa40ef10e0f7b0 (patch)
tree0cb106c1ceb5a9745b5498da722fa2f087f3e278 /components
parent2c22680affd161e57f8ccff925af3e713018c95d (diff)
remove struct _uffs_data in dfs_uffs.c
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2022 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'components')
-rw-r--r--components/dfs/filesystems/uffs/dfs_uffs.c49
1 files changed, 8 insertions, 41 deletions
diff --git a/components/dfs/filesystems/uffs/dfs_uffs.c b/components/dfs/filesystems/uffs/dfs_uffs.c
index 8c8ff47903..7a6f97a920 100644
--- a/components/dfs/filesystems/uffs/dfs_uffs.c
+++ b/components/dfs/filesystems/uffs/dfs_uffs.c
@@ -276,17 +276,10 @@ static int dfs_uffs_statfs(struct dfs_filesystem* fs,
return 0;
}
-struct _uffs_data
-{
- int fd; /* the handle of an open file/entry */
- char * path; /* the path of the file/entry */
-};
-
static int dfs_uffs_open(struct dfs_fd* file)
{
int fd;
int oflag, mode;
- struct _uffs_data * uffs_data;
char * file_path;
oflag = file->flags;
@@ -344,18 +337,10 @@ static int dfs_uffs_open(struct dfs_fd* file)
return uffs_result_to_dfs(uffs_get_error());
}
- uffs_data = rt_malloc(sizeof(struct _uffs_data));
- if (uffs_data == RT_NULL)
- return -DFS_STATUS_ENOMEM;
-
- /* save file info */
- uffs_data->fd = fd;
- uffs_data->path = file->path;
-
/* save this pointer, it will be used when calling read()��write(),
* flush(), seek(), and will be free when calling close()*/
- file->data = uffs_data;
+ file->data = (void *)fd;
file->pos = uffs_seek(fd, 0, USEEK_CUR);
file->size = uffs_seek(fd, 0, USEEK_END);
uffs_seek(fd, file->pos, USEEK_SET);
@@ -370,7 +355,7 @@ static int dfs_uffs_open(struct dfs_fd* file)
static int dfs_uffs_close(struct dfs_fd* file)
{
int oflag;
- struct _uffs_data * uffs_data;
+ int fd;
oflag = file->flags;
if (oflag & DFS_O_DIRECTORY)
@@ -382,15 +367,10 @@ static int dfs_uffs_close(struct dfs_fd* file)
return 0;
}
/* regular file operations */
- uffs_data = (struct _uffs_data *)(file->data);
- RT_ASSERT(uffs_data != RT_NULL);
+ fd = (int)(file->data);
- if (uffs_close(uffs_data->fd) == 0)
- {
- /* release memory */
- rt_free(uffs_data);
+ if (uffs_close(fd) == 0)
return 0;
- }
return uffs_result_to_dfs(uffs_get_error());
}
@@ -403,13 +383,9 @@ static int dfs_uffs_ioctl(struct dfs_fd * file, int cmd, void* args)
static int dfs_uffs_read(struct dfs_fd * file, void* buf, rt_size_t len)
{
int fd;
- struct _uffs_data * uffs_data;
int char_read;
- uffs_data = (struct _uffs_data *)(file->data);
- RT_ASSERT(uffs_data != RT_NULL);
-
- fd = uffs_data->fd;
+ fd = (int)(file->data);
char_read = uffs_read(fd, buf, len);
if (char_read < 0)
return uffs_result_to_dfs(uffs_get_error());
@@ -424,12 +400,9 @@ static int dfs_uffs_write(struct dfs_fd* file,
rt_size_t len)
{
int fd;
- struct _uffs_data * uffs_data;
int char_write;
- uffs_data = (struct _uffs_data *)(file->data);
- RT_ASSERT(uffs_data != RT_NULL);
- fd = uffs_data->fd;
+ fd = (int)(file->data);
char_write = uffs_write(fd, buf, len);
if (char_write < 0)
@@ -444,11 +417,8 @@ static int dfs_uffs_flush(struct dfs_fd* file)
{
int fd;
int result;
- struct _uffs_data * uffs_data;
- uffs_data = (struct _uffs_data *)(file->data);
- RT_ASSERT(uffs_data != RT_NULL);
- fd = uffs_data->fd;
+ fd = (int)(file->data);
result = uffs_flush(fd);
if (result < 0 )
@@ -460,12 +430,9 @@ static int dfs_uffs_seek(struct dfs_fd* file,
rt_off_t offset)
{
int fd;
- struct _uffs_data * uffs_data;
int result;
- uffs_data = (struct _uffs_data *)(file->data);
- RT_ASSERT(uffs_data != RT_NULL);
- fd = uffs_data->fd;
+ fd = (int)(file->data);
/* set offset as current offset */
result = uffs_seek(fd, offset, USEEK_SET);