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);
+}