projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'big-files': Merge in large file support
[yaffs2.git]
/
direct
/
yaffsfs.c
diff --git
a/direct/yaffsfs.c
b/direct/yaffsfs.c
index 37d6cae1d0cce812d4217f6444c06fbaf8360dd5..b57084cb5805ca6b675d9a8287e4a69ece20ef75 100644
(file)
--- a/
direct/yaffsfs.c
+++ b/
direct/yaffsfs.c
@@
-75,7
+75,7
@@
typedef struct{
u8 shareWrite:1;
int inodeId:12; /* Index to corresponding yaffsfs_Inode */
int handleCount:10; /* Number of handles for this fd */
u8 shareWrite:1;
int inodeId:12; /* Index to corresponding yaffsfs_Inode */
int handleCount:10; /* Number of handles for this fd */
-
u32 position;
/* current position in file */
+
loff_t position;
/* current position in file */
}yaffsfs_FileDes;
typedef struct {
}yaffsfs_FileDes;
typedef struct {
@@
-1048,17
+1048,17
@@
int yaffs_close(int handle)
-int yaffsfs_do_read(int handle, void *vbuf, unsigned int nbyte, int isPread,
in
t offset)
+int yaffsfs_do_read(int handle, void *vbuf, unsigned int nbyte, int isPread,
loff_
t offset)
{
yaffsfs_FileDes *fd = NULL;
struct yaffs_obj *obj = NULL;
{
yaffsfs_FileDes *fd = NULL;
struct yaffs_obj *obj = NULL;
-
in
t pos = 0;
-
in
t startPos = 0;
-
in
t endPos = 0;
+
loff_
t pos = 0;
+
loff_
t startPos = 0;
+
loff_
t endPos = 0;
int nRead = 0;
int nToRead = 0;
int totalRead = 0;
int nRead = 0;
int nToRead = 0;
int totalRead = 0;
-
unsigned in
t maxRead;
+
loff_
t maxRead;
u8 *buf = (u8 *)vbuf;
if(!vbuf){
u8 *buf = (u8 *)vbuf;
if(!vbuf){
@@
-1165,18
+1165,18
@@
int yaffs_read(int handle, void *buf, unsigned int nbyte)
return yaffsfs_do_read(handle, buf, nbyte, 0, 0);
}
return yaffsfs_do_read(handle, buf, nbyte, 0, 0);
}
-int yaffs_pread(int handle, void *buf, unsigned int nbyte,
unsigned in
t offset)
+int yaffs_pread(int handle, void *buf, unsigned int nbyte,
loff_
t offset)
{
return yaffsfs_do_read(handle, buf, nbyte, 1, offset);
}
{
return yaffsfs_do_read(handle, buf, nbyte, 1, offset);
}
-int yaffsfs_do_write(int handle, const void *vbuf, unsigned int nbyte, int isPwrite,
in
t offset)
+int yaffsfs_do_write(int handle, const void *vbuf, unsigned int nbyte, int isPwrite,
loff_
t offset)
{
yaffsfs_FileDes *fd = NULL;
struct yaffs_obj *obj = NULL;
{
yaffsfs_FileDes *fd = NULL;
struct yaffs_obj *obj = NULL;
-
in
t pos = 0;
-
in
t startPos = 0;
-
in
t endPos;
+
loff_
t pos = 0;
+
loff_
t startPos = 0;
+
loff_
t endPos;
int nWritten = 0;
int totalWritten = 0;
int write_trhrough = 0;
int nWritten = 0;
int totalWritten = 0;
int write_trhrough = 0;
@@
-1279,13
+1279,13
@@
int yaffs_write(int fd, const void *buf, unsigned int nbyte)
return yaffsfs_do_write(fd, buf, nbyte, 0, 0);
}
return yaffsfs_do_write(fd, buf, nbyte, 0, 0);
}
-int yaffs_pwrite(int fd, const void *buf, unsigned int nbyte,
unsigned in
t offset)
+int yaffs_pwrite(int fd, const void *buf, unsigned int nbyte,
loff_
t offset)
{
return yaffsfs_do_write(fd, buf, nbyte, 1, offset);
}
{
return yaffsfs_do_write(fd, buf, nbyte, 1, offset);
}
-int yaffs_truncate(const YCHAR *path,off_t new_size)
+int yaffs_truncate(const YCHAR *path,
l
off_t new_size)
{
struct yaffs_obj *obj = NULL;
struct yaffs_obj *dir = NULL;
{
struct yaffs_obj *obj = NULL;
struct yaffs_obj *dir = NULL;
@@
-1323,14
+1323,14
@@
int yaffs_truncate(const YCHAR *path,off_t new_size)
else if(new_size < 0 || new_size > YAFFS_MAX_FILE_SIZE)
yaffsfs_SetError(-EINVAL);
else
else if(new_size < 0 || new_size > YAFFS_MAX_FILE_SIZE)
yaffsfs_SetError(-EINVAL);
else
- result = yaffs_resize_file(obj,new_size);
+ result = yaffs_resize_file(obj,
new_size);
yaffsfs_Unlock();
return (result) ? 0 : -1;
}
yaffsfs_Unlock();
return (result) ? 0 : -1;
}
-int yaffs_ftruncate(int handle, off_t new_size)
+int yaffs_ftruncate(int handle,
l
off_t new_size)
{
yaffsfs_FileDes *fd = NULL;
struct yaffs_obj *obj = NULL;
{
yaffsfs_FileDes *fd = NULL;
struct yaffs_obj *obj = NULL;
@@
-1351,19
+1351,19
@@
int yaffs_ftruncate(int handle, off_t new_size)
yaffsfs_SetError(-EINVAL);
else
/* resize the file */
yaffsfs_SetError(-EINVAL);
else
/* resize the file */
- result = yaffs_resize_file(obj,new_size);
+ result = yaffs_resize_file(obj,
new_size);
yaffsfs_Unlock();
return (result) ? 0 : -1;
}
yaffsfs_Unlock();
return (result) ? 0 : -1;
}
-
off_t yaffs_lseek(int handle,
off_t offset, int whence)
+
loff_t yaffs_lseek(int handle, l
off_t offset, int whence)
{
yaffsfs_FileDes *fd = NULL;
struct yaffs_obj *obj = NULL;
{
yaffsfs_FileDes *fd = NULL;
struct yaffs_obj *obj = NULL;
-
in
t pos = -1;
-
in
t fSize = -1;
+
loff_
t pos = -1;
+
loff_
t fSize = -1;
yaffsfs_Lock();
fd = yaffsfs_HandleToFileDes(handle);
yaffsfs_Lock();
fd = yaffsfs_HandleToFileDes(handle);
@@
-2438,7
+2438,7
@@
void * yaffs_getdev(const YCHAR *path)
return (void *)dev;
}
return (void *)dev;
}
-int yaffs_mount
2(const YCHAR *path,int read_only
)
+int yaffs_mount
_common(const YCHAR *path,int read_only, int skip_checkpt
)
{
int retVal=-1;
int result=YAFFS_FAIL;
{
int retVal=-1;
int result=YAFFS_FAIL;
@@
-2464,7
+2464,15
@@
int yaffs_mount2(const YCHAR *path,int read_only)
if(dev){
if(!dev->is_mounted){
dev->read_only = read_only ? 1 : 0;
if(dev){
if(!dev->is_mounted){
dev->read_only = read_only ? 1 : 0;
- result = yaffs_guts_initialise(dev);
+ if(skip_checkpt) {
+ u8 skip = dev->param.skip_checkpt_rd;
+ dev->param.skip_checkpt_rd = 1;
+ result = yaffs_guts_initialise(dev);
+ dev->param.skip_checkpt_rd = skip;
+ } else {
+ result = yaffs_guts_initialise(dev);
+ }
+
if(result == YAFFS_FAIL)
yaffsfs_SetError(-ENOMEM);
retVal = result ? 0 : -1;
if(result == YAFFS_FAIL)
yaffsfs_SetError(-ENOMEM);
retVal = result ? 0 : -1;
@@
-2480,9
+2488,13
@@
int yaffs_mount2(const YCHAR *path,int read_only)
}
}
+int yaffs_mount2(const YCHAR *path, int readonly)
+{
+ return yaffs_mount_common(path, readonly, 0);
+}
int yaffs_mount(const YCHAR *path)
{
int yaffs_mount(const YCHAR *path)
{
- return yaffs_mount
2(path,
0);
+ return yaffs_mount
_common(path, 0,
0);
}
int yaffs_sync(const YCHAR *path)
}
int yaffs_sync(const YCHAR *path)