Merge "Fix flags to *_PORTABLE in open_portable(), and support openat_portable()."
diff --git a/ndk/sources/android/libportable/arch-mips/open.c b/ndk/sources/android/libportable/arch-mips/open.c
index 384b894..2f4dcd7 100644
--- a/ndk/sources/android/libportable/arch-mips/open.c
+++ b/ndk/sources/android/libportable/arch-mips/open.c
@@ -63,9 +63,9 @@
int open_portable(const char *pathname, int flags, ...)
{
mode_t mode = 0;
- flags |= O_LARGEFILE;
+ flags |= O_LARGEFILE_PORTABLE;
- if (flags & O_CREAT)
+ if (flags & O_CREAT_PORTABLE)
{
va_list args;
@@ -76,3 +76,22 @@
return __open(pathname, mips_change_flags(flags), mode);
}
+
+extern int __openat(int, const char*, int, int);
+int openat_portable(int fd, const char *pathname, int flags, ...)
+{
+ mode_t mode = 0;
+
+ flags |= O_LARGEFILE_PORTABLE;
+
+ if (flags & O_CREAT_PORTABLE)
+ {
+ va_list args;
+
+ va_start(args, flags);
+ mode = (mode_t) va_arg(args, int);
+ va_end(args);
+ }
+
+ return __openat(fd, pathname, mips_change_flags(flags), mode);
+}