diff options
Diffstat (limited to 'uisimulator/common')
-rw-r--r-- | uisimulator/common/io.c | 21 |
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 | ||
55 | typedef struct mydir MYDIR; | 55 | typedef struct mydir MYDIR; |
56 | 56 | ||
57 | static 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 | |||
57 | MYDIR *sim_opendir(const char *name) | 75 | MYDIR *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 | ||
112 | int sim_open(const char *name, int opts) | 130 | int 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); |