Prepare Mono for Android NDK with unified headers (#5680)
[mono.git] / support / macros.c
index 802f0631942be93fa8c47e1ef97bfb226e4e33cd..e15fa76b7edb0a35774956c4e1070f10e366fd35 100644 (file)
@@ -9,6 +9,8 @@
 #include <dirent.h>
 #include <string.h>
 #include <glib.h>
+#include "mph.h" /* Don't remove or move after map.h! Works around issues with Android SDK unified headers */
+#include "map.h"
 
 int wifexited (int status)
 {
@@ -81,23 +83,33 @@ int helper_Mono_Posix_Stat(const char *filename, int dereference,
        return 0;
 }
 
-const char *helper_Mono_Posix_GetUserName(int uid) {
+char *helper_Mono_Posix_GetUserName(int uid) {
        struct passwd *p = getpwuid(uid);
        if (p == NULL) return NULL;
        return strdup (p->pw_name);
 }
-const char *helper_Mono_Posix_GetGroupName(int gid) {
+char *helper_Mono_Posix_GetGroupName(int gid) {
        struct group *p = getgrgid(gid);
        if (p == NULL) return NULL;
        return strdup (p->gr_name);
 }
 
-const char *helper_Mono_Posix_readdir(void *dir) {
+char *helper_Mono_Posix_readdir(void *dir) {
        struct dirent* e = readdir((DIR*) dir);
        if (e == NULL) return NULL;
        return strdup (e->d_name);
 }
 
+#if HAVE_GETPWNAM_R
+int helper_Mono_Posix_getpwnamuid (int mode, char *in_name, int in_uid,
+       char **account,
+       char **password,
+       int *uid,
+       int *gid,
+       char **name,
+       char **home,
+       char **shell);
+
 int helper_Mono_Posix_getpwnamuid (int mode, char *in_name, int in_uid,
        char **account,
        char **password,
@@ -144,3 +156,5 @@ int helper_Mono_Posix_getpwnamuid (int mode, char *in_name, int in_uid,
 
        return 0;
 }
+#endif  /* def HAVE_GETPWNAM_R */
+