summaryrefslogtreecommitdiff
path: root/uisimulator/common/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'uisimulator/common/io.c')
-rw-r--r--uisimulator/common/io.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/uisimulator/common/io.c b/uisimulator/common/io.c
index e321c1adcc..3f639d557d 100644
--- a/uisimulator/common/io.c
+++ b/uisimulator/common/io.c
@@ -54,6 +54,24 @@ struct mydir {
54 54
55typedef struct mydir MYDIR; 55typedef struct mydir MYDIR;
56 56
57static unsigned int rockbox2sim(int opt)
58{
59 int newopt = 0;
60 if(opt & 1)
61 newopt |= O_WRONLY;
62 if(opt & 2)
63 newopt |= O_RDWR;
64 if(opt & 4)
65 newopt |= O_CREAT;
66 if(opt & 8)
67 newopt |= O_APPEND;
68 if(opt & 0x10)
69 newopt |= O_TRUNC;
70
71 return newopt;
72}
73
74
57MYDIR *sim_opendir(const char *name) 75MYDIR *sim_opendir(const char *name)
58{ 76{
59 char buffer[256]; /* sufficiently big */ 77 char buffer[256]; /* sufficiently big */
@@ -109,9 +127,10 @@ void sim_closedir(MYDIR *dir)
109} 127}
110 128
111 129
112int sim_open(const char *name, int opts) 130int sim_open(const char *name, int o)
113{ 131{
114 char buffer[256]; /* sufficiently big */ 132 char buffer[256]; /* sufficiently big */
133 int opts = rockbox2sim(o);
115 134
116 if(name[0] == '/') { 135 if(name[0] == '/') {
117 sprintf(buffer, "%s%s", SIMULATOR_ARCHOS_ROOT, name); 136 sprintf(buffer, "%s%s", SIMULATOR_ARCHOS_ROOT, name);