forked from len0rd/rockbox
Make open() posix compliant api-wise. A few calls (those with O_CREAT) need the additional optional mode parameter so add it. Impact for the core is almost zero, as open() is a wrapper macro for the real open function which doesn't take the variable parameter.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25844 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
c61e89c0ed
commit
0a1d7c28b7
76 changed files with 179 additions and 122 deletions
|
@ -63,13 +63,20 @@ int fileexists(const char * fname)
|
|||
}
|
||||
|
||||
#ifndef SIMULATOR
|
||||
int my_open(const char *file, int flags)
|
||||
int my_open(const char *file, int flags, ...)
|
||||
{
|
||||
if(fpoint==8)
|
||||
return -1;
|
||||
#undef open
|
||||
filearray[fpoint]=rb->open(file, flags);
|
||||
|
||||
if (flags & O_CREAT)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, flags);
|
||||
filearray[fpoint]=rb->open(file, flags, va_arg(ap, mode_t));
|
||||
va_end(ap);
|
||||
}
|
||||
else
|
||||
filearray[fpoint]=rb->open(file, flags);
|
||||
if(filearray[fpoint]<0)
|
||||
return filearray[fpoint];
|
||||
|
||||
|
|
|
@ -39,12 +39,12 @@ char *my_strtok( char * s, const char * delim );
|
|||
#define read_line(a,b,c) rb->read_line((a),(b),(c))
|
||||
|
||||
#ifdef SIMULATOR
|
||||
#define open(a,b) rb->open((a),(b))
|
||||
#define open(a, ...) rb->open((a), __VA_ARGS__)
|
||||
#define close(a) rb->close((a))
|
||||
#else
|
||||
int my_open(const char *file, int flags);
|
||||
int my_open(const char *file, int flags, ...);
|
||||
int my_close(int id);
|
||||
#define open(a,b) my_open((a),(b))
|
||||
#define open(a, ...) my_open((a), __VA_ARGS__)
|
||||
#define close(a) my_close((a))
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue