From 8e7042a8159899ddb58570a09e1070fb725e680d Mon Sep 17 00:00:00 2001 From: Charles Manning Date: Thu, 14 Jun 2012 13:17:33 +1200 Subject: [PATCH 1/1] Change loff_t to Y_LOFF_T in Yaffs Direct This allows easy porting to 32-bit loff_t. Signed-off-by: Charles Manning --- direct/handle_common.sh | 4 +++- direct/yaffsfs.c | 44 ++++++++++++++++++++--------------------- direct/yaffsfs.h | 18 ++++++++--------- direct/ydirectenv.h | 4 ++++ 4 files changed, 38 insertions(+), 32 deletions(-) diff --git a/direct/handle_common.sh b/direct/handle_common.sh index 04dbcf9..0e339f1 100755 --- a/direct/handle_common.sh +++ b/direct/handle_common.sh @@ -26,7 +26,9 @@ if [ "$1" = "copy" ] ; then -e "s/strncpy/yaffs_strncpy/g" \ -e "s/strnlen/yaffs_strnlen/g" \ -e "s/strcmp/yaffs_strcmp/g" \ - -e "s/strncmp/yaffs_strncmp/g" >$i + -e "s/strncmp/yaffs_strncmp/g"\ + -e "s/loff_t/Y_LOFF_T/g" \ + >$i done elif [ "$1" = "clean" ] ; then for i in $YAFFS_COMMON_SOURCES ; do diff --git a/direct/yaffsfs.c b/direct/yaffsfs.c index 9f1397b..b418eca 100644 --- a/direct/yaffsfs.c +++ b/direct/yaffsfs.c @@ -74,7 +74,7 @@ struct yaffsfs_FileDes { u8 shareWrite:1; int inodeId:12; /* Index to corresponding yaffsfs_Inode */ int handleCount:10; /* Number of handles for this fd */ - loff_t position; /* current position in file */ + Y_LOFF_T position; /* current position in file */ }; struct yaffsfs_Handle { @@ -1064,17 +1064,17 @@ int yaffs_close(int handle) } int yaffsfs_do_read(int handle, void *vbuf, unsigned int nbyte, - int isPread, loff_t offset) + int isPread, Y_LOFF_T offset) { struct yaffsfs_FileDes *fd = NULL; struct yaffs_obj *obj = NULL; - loff_t pos = 0; - loff_t startPos = 0; - loff_t endPos = 0; + Y_LOFF_T pos = 0; + Y_LOFF_T startPos = 0; + Y_LOFF_T endPos = 0; int nRead = 0; int nToRead = 0; int totalRead = 0; - loff_t maxRead; + Y_LOFF_T maxRead; u8 *buf = (u8 *) vbuf; if (!vbuf) { @@ -1180,19 +1180,19 @@ int yaffs_read(int handle, void *buf, unsigned int nbyte) return yaffsfs_do_read(handle, buf, nbyte, 0, 0); } -int yaffs_pread(int handle, void *buf, unsigned int nbyte, loff_t offset) +int yaffs_pread(int handle, void *buf, unsigned int nbyte, Y_LOFF_T offset) { return yaffsfs_do_read(handle, buf, nbyte, 1, offset); } int yaffsfs_do_write(int handle, const void *vbuf, unsigned int nbyte, - int isPwrite, loff_t offset) + int isPwrite, Y_LOFF_T offset) { struct yaffsfs_FileDes *fd = NULL; struct yaffs_obj *obj = NULL; - loff_t pos = 0; - loff_t startPos = 0; - loff_t endPos; + Y_LOFF_T pos = 0; + Y_LOFF_T startPos = 0; + Y_LOFF_T endPos; int nWritten = 0; int totalWritten = 0; int write_trhrough = 0; @@ -1297,12 +1297,12 @@ int yaffs_write(int fd, const void *buf, unsigned int nbyte) return yaffsfs_do_write(fd, buf, nbyte, 0, 0); } -int yaffs_pwrite(int fd, const void *buf, unsigned int nbyte, loff_t offset) +int yaffs_pwrite(int fd, const void *buf, unsigned int nbyte, Y_LOFF_T offset) { return yaffsfs_do_write(fd, buf, nbyte, 1, offset); } -int yaffs_truncate(const YCHAR *path, loff_t new_size) +int yaffs_truncate(const YCHAR *path, Y_LOFF_T new_size) { struct yaffs_obj *obj = NULL; struct yaffs_obj *dir = NULL; @@ -1347,7 +1347,7 @@ int yaffs_truncate(const YCHAR *path, loff_t new_size) return (result) ? 0 : -1; } -int yaffs_ftruncate(int handle, loff_t new_size) +int yaffs_ftruncate(int handle, Y_LOFF_T new_size) { struct yaffsfs_FileDes *fd = NULL; struct yaffs_obj *obj = NULL; @@ -1375,12 +1375,12 @@ int yaffs_ftruncate(int handle, loff_t new_size) } -loff_t yaffs_lseek(int handle, loff_t offset, int whence) +Y_LOFF_T yaffs_lseek(int handle, Y_LOFF_T offset, int whence) { struct yaffsfs_FileDes *fd = NULL; struct yaffs_obj *obj = NULL; - loff_t pos = -1; - loff_t fSize = -1; + Y_LOFF_T pos = -1; + Y_LOFF_T fSize = -1; yaffsfs_Lock(); fd = yaffsfs_HandleToFileDes(handle); @@ -2648,9 +2648,9 @@ int yaffs_unmount(const YCHAR *path) return yaffs_unmount2(path, 0); } -loff_t yaffs_freespace(const YCHAR *path) +Y_LOFF_T yaffs_freespace(const YCHAR *path) { - loff_t retVal = -1; + Y_LOFF_T retVal = -1; struct yaffs_dev *dev = NULL; YCHAR *dummy; @@ -2677,9 +2677,9 @@ loff_t yaffs_freespace(const YCHAR *path) return retVal; } -loff_t yaffs_totalspace(const YCHAR *path) +Y_LOFF_T yaffs_totalspace(const YCHAR *path) { - loff_t retVal = -1; + Y_LOFF_T retVal = -1; struct yaffs_dev *dev = NULL; YCHAR *dummy; @@ -2710,7 +2710,7 @@ loff_t yaffs_totalspace(const YCHAR *path) int yaffs_inodecount(const YCHAR *path) { - loff_t retVal = -1; + Y_LOFF_T retVal = -1; struct yaffs_dev *dev = NULL; YCHAR *dummy; diff --git a/direct/yaffsfs.h b/direct/yaffsfs.h index c20da16..3196f0c 100644 --- a/direct/yaffsfs.h +++ b/direct/yaffsfs.h @@ -31,7 +31,7 @@ #endif #define YAFFS_MAX_FILE_SIZE \ - ( (sizeof(loff_t) < 8) ? YAFFS_MAX_FILE_SIZE_32 : (0x800000000LL - 1) ) + ( (sizeof(Y_LOFF_T) < 8) ? YAFFS_MAX_FILE_SIZE_32 : (0x800000000LL - 1) ) struct yaffs_dirent { @@ -55,7 +55,7 @@ struct yaffs_stat { int st_uid; /* user ID of owner */ int st_gid; /* group ID of owner */ unsigned st_rdev; /* device type (if inode device) */ - loff_t st_size; /* total size, in bytes */ + Y_LOFF_T st_size; /* total size, in bytes */ unsigned long st_blksize; /* blocksize for filesystem I/O */ unsigned long st_blocks; /* number of blocks allocated */ #ifdef CONFIG_YAFFS_WINCE @@ -91,13 +91,13 @@ int yaffs_dup(int fd); int yaffs_read(int fd, void *buf, unsigned int nbyte) ; int yaffs_write(int fd, const void *buf, unsigned int nbyte) ; -int yaffs_pread(int fd, void *buf, unsigned int nbyte, loff_t offset); -int yaffs_pwrite(int fd, const void *buf, unsigned int nbyte, loff_t offset); +int yaffs_pread(int fd, void *buf, unsigned int nbyte, Y_LOFF_T offset); +int yaffs_pwrite(int fd, const void *buf, unsigned int nbyte, Y_LOFF_T offset); -loff_t yaffs_lseek(int fd, loff_t offset, int whence) ; +Y_LOFF_T yaffs_lseek(int fd, Y_LOFF_T offset, int whence) ; -int yaffs_truncate(const YCHAR *path, loff_t new_size); -int yaffs_ftruncate(int fd, loff_t new_size); +int yaffs_truncate(const YCHAR *path, Y_LOFF_T new_size); +int yaffs_ftruncate(int fd, Y_LOFF_T new_size); int yaffs_unlink(const YCHAR *path) ; int yaffs_rename(const YCHAR *oldPath, const YCHAR *newPath) ; @@ -174,8 +174,8 @@ int yaffs_readlink(const YCHAR *path, YCHAR *buf, int bufsiz); int yaffs_link(const YCHAR *oldpath, const YCHAR *newpath); int yaffs_mknod(const YCHAR *pathname, mode_t mode, dev_t dev); -loff_t yaffs_freespace(const YCHAR *path); -loff_t yaffs_totalspace(const YCHAR *path); +Y_LOFF_T yaffs_freespace(const YCHAR *path); +Y_LOFF_T yaffs_totalspace(const YCHAR *path); int yaffs_inodecount(const YCHAR *path); diff --git a/direct/ydirectenv.h b/direct/ydirectenv.h index eff8ff9..b2293a6 100644 --- a/direct/ydirectenv.h +++ b/direct/ydirectenv.h @@ -35,6 +35,10 @@ void yaffs_bug_fn(const char *file_name, int line_no); #define YUCHAR unsigned char #define _Y(x) x +#ifndef Y_LOFF_T +#define Y_LOFF_T loff_t +#endif + #define yaffs_strcat(a, b) strcat(a, b) #define yaffs_strcpy(a, b) strcpy(a, b) #define yaffs_strncpy(a, b, c) strncpy(a, b, c) -- 2.30.2