diff options
-rw-r--r-- | apps/plugin.c | 2 | ||||
-rw-r--r-- | apps/plugin.h | 2 | ||||
-rw-r--r-- | firmware/include/file.h | 1 | ||||
-rw-r--r-- | uisimulator/common/io.c | 24 |
4 files changed, 15 insertions, 14 deletions
diff --git a/apps/plugin.c b/apps/plugin.c index f8f8fb18d4..6b429c3175 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -135,7 +135,7 @@ static const struct plugin_api rockbox_api = { (open_func)PREFIX(open), close, (read_func)read, - lseek, + PREFIX(lseek), (creat_func)PREFIX(creat), (write_func)write, PREFIX(remove), diff --git a/apps/plugin.h b/apps/plugin.h index ed34d9ac19..76f31c3f83 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -177,7 +177,7 @@ struct plugin_api { int (*PREFIX(open))(const char* pathname, int flags); int (*close)(int fd); ssize_t (*read)(int fd, void* buf, size_t count); - off_t (*lseek)(int fd, off_t offset, int whence); + off_t (*PREFIX(lseek))(int fd, off_t offset, int whence); int (*PREFIX(creat))(const char *pathname, mode_t mode); ssize_t (*write)(int fd, const void* buf, size_t count); int (*PREFIX(remove))(const char* pathname); diff --git a/firmware/include/file.h b/firmware/include/file.h index 694de48348..d497ede23c 100644 --- a/firmware/include/file.h +++ b/firmware/include/file.h @@ -52,6 +52,7 @@ #define filesize(x) sim_filesize(x) #define fsync(x) sim_fsync(x) #define ftruncate(x,y) sim_ftruncate(x,y) +#define lseek(x,y,z) sim_lseek(x,y,z) #endif typedef int (*open_func)(const char* pathname, int flags); diff --git a/uisimulator/common/io.c b/uisimulator/common/io.c index ee2ad6f14c..d85cf680ab 100644 --- a/uisimulator/common/io.c +++ b/uisimulator/common/io.c @@ -145,7 +145,6 @@ void sim_closedir(MYDIR *dir) free(dir); } - int sim_open(const char *name, int o) { char buffer[256]; /* sufficiently big */ @@ -153,7 +152,7 @@ int sim_open(const char *name, int o) if(name[0] == '/') { sprintf(buffer, "%s%s", SIMULATOR_ARCHOS_ROOT, name); - + debugf("We open the real file '%s'\n", buffer); #ifdef WIN32 return (open)(buffer, opts); @@ -166,11 +165,6 @@ int sim_open(const char *name, int o) return -1; } -int sim_close(int fd) -{ - return (close)(fd); -} - int sim_creat(const char *name, mode_t mode) { char buffer[256]; /* sufficiently big */ @@ -184,7 +178,7 @@ int sim_creat(const char *name, mode_t mode) fprintf(stderr, "WARNING, bad file name lacks slash: %s\n", name); return -1; -} +} int sim_mkdir(const char *name, mode_t mode) { @@ -242,13 +236,19 @@ int sim_rename(const char *oldpath, const char* newpath) return -1; } -off_t sim_filesize(int fd) +/* rockbox off_t may be different from system off_t */ +long sim_lseek(int fildes, long offset, int whence) +{ + return lseek(fildes, offset, whence); +} + +long sim_filesize(int fd) { - int old = lseek(fd, 0, SEEK_CUR); - int size = lseek(fd, 0, SEEK_END); + long old = lseek(fd, 0, SEEK_CUR); + long size = lseek(fd, 0, SEEK_END); lseek(fd, old, SEEK_SET); - return(size); + return size; } void fat_size(unsigned int* size, unsigned int* free) |