summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-05-06 17:35:04 +0000
committerThomas Martitz <kugel@rockbox.org>2010-05-06 17:35:04 +0000
commitc61e89c0eda126c2c1a4a3983520c35fe30db156 (patch)
tree1285f8cbde5485f93f8653f31ea0454587dd741e /firmware
parent684c70bac5f27e8dec49e113563cf6e496da854d (diff)
downloadrockbox-c61e89c0eda126c2c1a4a3983520c35fe30db156.zip
rockbox-c61e89c0eda126c2c1a4a3983520c35fe30db156.tar.gz
rockbox-c61e89c0eda126c2c1a4a3983520c35fe30db156.tar.bz2
rockbox-c61e89c0eda126c2c1a4a3983520c35fe30db156.tar.xz
Make creat() posix compliant API-wise. Shouldn't affect the core as it's wrapped via a static inline.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25843 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/common/file.c2
-rw-r--r--firmware/drivers/tuner/lv24020lp.c2
-rw-r--r--firmware/font.c2
-rw-r--r--firmware/include/file.h17
-rw-r--r--firmware/screendump.c4
5 files changed, 18 insertions, 9 deletions
diff --git a/firmware/common/file.c b/firmware/common/file.c
index 7ec712a..05612cd 100644
--- a/firmware/common/file.c
+++ b/firmware/common/file.c
@@ -55,7 +55,7 @@ static struct filedesc openfiles[MAX_OPEN_FILES];
static int flush_cache(int fd);
-int creat(const char *pathname)
+int file_creat(const char *pathname)
{
return open(pathname, O_WRONLY|O_CREAT|O_TRUNC);
}
diff --git a/firmware/drivers/tuner/lv24020lp.c b/firmware/drivers/tuner/lv24020lp.c
index d70eef8..5f23338 100644
--- a/firmware/drivers/tuner/lv24020lp.c
+++ b/firmware/drivers/tuner/lv24020lp.c
@@ -46,7 +46,7 @@ static struct mutex tuner_mtx;
static int fd_log = -1;
#define TUNER_LOG_OPEN() if (fd_log < 0) \
- fd_log = creat("/tuner_dump.txt")
+ fd_log = creat("/tuner_dump.txt", 0666)
/* syncing required because close() is never called */
#define TUNER_LOG_SYNC() fsync(fd_log)
#define TUNER_LOG(s...) fdprintf(fd_log, s)
diff --git a/firmware/font.c b/firmware/font.c
index 804d389..6877d7e 100644
--- a/firmware/font.c
+++ b/firmware/font.c
@@ -609,7 +609,7 @@ void glyph_cache_save(struct font* pf)
#ifdef WPSEDITOR
cache_fd = open(GLYPH_CACHE_FILE, O_WRONLY|O_CREAT|O_TRUNC);
#else
- cache_fd = creat(GLYPH_CACHE_FILE);
+ cache_fd = creat(GLYPH_CACHE_FILE, 0666);
#endif
if (cache_fd < 0) return;
diff --git a/firmware/include/file.h b/firmware/include/file.h
index 9a9548f..b60c744 100644
--- a/firmware/include/file.h
+++ b/firmware/include/file.h
@@ -48,9 +48,9 @@
#define O_TRUNC 0x10
#endif
-#if defined(SIMULATOR) && !defined(PLUGIN) && !defined(CODEC)
+#if defined(SIMULATOR) && !defined(PLUGIN) && !defined(CODEC)
#define open(x,y) sim_open(x,y)
-#define creat(x) sim_creat(x)
+#define creat(x,m) sim_creat(x,m)
#define remove(x) sim_remove(x)
#define rename(x,y) sim_rename(x,y)
#define filesize(x) sim_filesize(x)
@@ -60,11 +60,12 @@
#define read(x,y,z) sim_read(x,y,z)
#define write(x,y,z) sim_write(x,y,z)
#define close(x) sim_close(x)
+extern int sim_creat(const char *pathname, mode_t mode);
#endif
typedef int (*open_func)(const char* pathname, int flags);
typedef ssize_t (*read_func)(int fd, void *buf, size_t count);
-typedef int (*creat_func)(const char *pathname);
+typedef int (*creat_func)(const char *pathname, mode_t mode);
typedef ssize_t (*write_func)(int fd, const void *buf, size_t count);
typedef void (*qsort_func)(void *base, size_t nmemb, size_t size,
int(*_compar)(const void *, const void *));
@@ -74,7 +75,15 @@ extern int close(int fd);
extern int fsync(int fd);
extern ssize_t read(int fd, void *buf, size_t count);
extern off_t lseek(int fildes, off_t offset, int whence);
-extern int creat(const char *pathname);
+extern int file_creat(const char *pathname);
+#ifndef SIMULATOR
+/* posix compatibility function */
+static inline int creat(const char *pathname, mode_t mode)
+{
+ (void)mode;
+ return file_creat(pathname);
+}
+#endif
extern ssize_t write(int fd, const void *buf, size_t count);
extern int remove(const char* pathname);
extern int rename(const char* path, const char* newname);
diff --git a/firmware/screendump.c b/firmware/screendump.c
index e84afb9..1876df8 100644
--- a/firmware/screendump.c
+++ b/firmware/screendump.c
@@ -140,7 +140,7 @@ void screen_dump(void)
IF_CNFN_NUM_(, NULL));
#endif
- fd = creat(filename);
+ fd = creat(filename, 0666);
if (fd < 0)
return;
@@ -317,7 +317,7 @@ void remote_screen_dump(void)
IF_CNFN_NUM_(, NULL));
#endif
- fd = creat(filename);
+ fd = creat(filename, 0666);
if (fd < 0)
return;