summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugin.c2
-rw-r--r--apps/plugin.h2
-rw-r--r--firmware/include/file.h1
-rw-r--r--uisimulator/common/io.c24
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)