summaryrefslogtreecommitdiffstats
path: root/uisimulator
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-09-01 21:29:34 +0000
committerThomas Martitz <kugel@rockbox.org>2010-09-01 21:29:34 +0000
commit6eaab4d00446c070c655f0e6c9a872532a776b6f (patch)
tree69610996dd0a6092459b14e164d4e48e03b1e5bb /uisimulator
parent8e0a0babc57db3e9edc06f3e269fb47c27292ed5 (diff)
downloadrockbox-6eaab4d00446c070c655f0e6c9a872532a776b6f.tar.gz
rockbox-6eaab4d00446c070c655f0e6c9a872532a776b6f.tar.bz2
rockbox-6eaab4d00446c070c655f0e6c9a872532a776b6f.zip
Ged rid of uisimulator/common/io.c for android builds.
Use host's functions for file i/o directly (open(), close() ,etc.), not the sim_* variants. Some dir functions need to be wrapped still because we need to cache the parents dir's path (host's dirent doesn't let us know). For the same reason (incompatibility) with host's dirent) detach some members from Rockbox' dirent struct and put it into an extra one, the values can be retrieved via the new dir_get_info(). Get rid of the sim_ prefix for sleep as well and change the signature to unix sleep(). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27968 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator')
-rw-r--r--uisimulator/common/SOURCES4
-rw-r--r--uisimulator/common/io.c21
2 files changed, 16 insertions, 9 deletions
diff --git a/uisimulator/common/SOURCES b/uisimulator/common/SOURCES
index a30b5abeb2..39f008b9dd 100644
--- a/uisimulator/common/SOURCES
+++ b/uisimulator/common/SOURCES
@@ -9,8 +9,10 @@ fmradio.c
backlight-sim.c
#endif
+#if !(CONFIG_PLATFORM & PLATFORM_ANDROID)
+io.c
+#endif
/* this is still needed for application since it has some stubs */
powermgmt-sim.c
-io.c
sim_tasks.c
stubs.c
diff --git a/uisimulator/common/io.c b/uisimulator/common/io.c
index 6547421668..f630ae49c8 100644
--- a/uisimulator/common/io.c
+++ b/uisimulator/common/io.c
@@ -158,13 +158,18 @@ extern const char *sim_root_dir;
static int num_openfiles = 0;
-struct sim_dirent {
- unsigned char d_name[MAX_PATH];
+/* from dir.h */
+struct dirinfo {
int attribute;
long size;
+ unsigned short wrtdate;
+ unsigned short wrttime;
+};
+
+struct sim_dirent {
+ unsigned char d_name[MAX_PATH];
+ struct dirinfo info;
long startcluster;
- unsigned short wrtdate; /* Last write date */
- unsigned short wrttime; /* Last write time */
};
struct dirstruct {
@@ -329,14 +334,14 @@ struct sim_dirent *sim_readdir(MYDIR *dir)
#define ATTR_DIRECTORY 0x10
- secret.attribute = S_ISDIR(s.st_mode)?ATTR_DIRECTORY:0;
- secret.size = s.st_size;
+ secret.info.attribute = S_ISDIR(s.st_mode)?ATTR_DIRECTORY:0;
+ secret.info.size = s.st_size;
tm = localtime(&(s.st_mtime));
- secret.wrtdate = ((tm->tm_year - 80) << 9) |
+ secret.info.wrtdate = ((tm->tm_year - 80) << 9) |
((tm->tm_mon + 1) << 5) |
tm->tm_mday;
- secret.wrttime = (tm->tm_hour << 11) |
+ secret.info.wrttime = (tm->tm_hour << 11) |
(tm->tm_min << 5) |
(tm->tm_sec >> 1);
return &secret;