X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=support%2Funistd.c;h=5652329e13ff78abe8ca97b54789c5ded2522e7e;hb=794cb23fdd32ac721e02fe64647dfb71e6f2289a;hp=352bdce87d47b41b973084eb6729b12b42958cb9;hpb=e51a9b6ba1a93bc981639a706c93bee413099fd6;p=mono.git diff --git a/support/unistd.c b/support/unistd.c index 352bdce87d4..5652329e13f 100644 --- a/support/unistd.c +++ b/support/unistd.c @@ -4,7 +4,7 @@ * Authors: * Jonathan Pryor (jonpryor@vt.edu) * - * Copyright (C) 2004-2005 Jonathan Pryor + * Copyright (C) 2004-2006 Jonathan Pryor */ #ifndef _GNU_SOURCE @@ -116,6 +116,7 @@ Mono_Posix_Syscall_sysconf (int name, int defaultError) return sysconf (name); } +#if HAVE_CONFSTR mph_size_t Mono_Posix_Syscall_confstr (int name, char *buf, mph_size_t len) { @@ -124,6 +125,7 @@ Mono_Posix_Syscall_confstr (int name, char *buf, mph_size_t len) return -1; return confstr (name, buf, (size_t) len); } +#endif /* def HAVE_CONFSTR */ #ifdef HAVE_TTYNAME_R gint32 @@ -145,12 +147,14 @@ Mono_Posix_Syscall_readlink (const char *path, char *buf, mph_size_t len) return r; } +#if HAVE_GETLOGIN_R gint32 Mono_Posix_Syscall_getlogin_r (char *buf, mph_size_t len) { mph_return_if_size_t_overflow (len); return getlogin_r (buf, (size_t) len); } +#endif /* def HAVE_GETLOGIN_R */ gint32 Mono_Posix_Syscall_gethostname (char *buf, mph_size_t len) @@ -159,18 +163,22 @@ Mono_Posix_Syscall_gethostname (char *buf, mph_size_t len) return gethostname (buf, (size_t) len); } +#if HAVE_SETHOSTNAME gint32 Mono_Posix_Syscall_sethostname (const char *name, mph_size_t len) { mph_return_if_size_t_overflow (len); return sethostname (name, (size_t) len); } +#endif /* def HAVE_SETHOSTNAME */ +#if HAVE_GETHOSTID gint64 Mono_Posix_Syscall_gethostid (void) { return gethostid (); } +#endif /* def HAVE_GETHOSTID */ #ifdef HAVE_SETHOSTID gint32 @@ -204,12 +212,17 @@ Mono_Posix_Syscall_setdomainname (const char *name, mph_size_t len) } #endif /* def HAVE_SETDOMAINNAME */ +/* Android implements truncate, but doesn't declare it. + * Result is a warning during compilation, so skip it. + */ +#ifndef PLATFORM_ANDROID gint32 Mono_Posix_Syscall_truncate (const char *path, mph_off_t length) { mph_return_if_off_t_overflow (length); return truncate (path, (off_t) length); } +#endif gint32 Mono_Posix_Syscall_ftruncate (int fd, mph_off_t length) @@ -218,6 +231,7 @@ Mono_Posix_Syscall_ftruncate (int fd, mph_off_t length) return ftruncate (fd, (off_t) length); } +#if HAVE_LOCKF gint32 Mono_Posix_Syscall_lockf (int fd, int cmd, mph_off_t len) { @@ -226,37 +240,42 @@ Mono_Posix_Syscall_lockf (int fd, int cmd, mph_off_t len) return -1; return lockf (fd, cmd, (off_t) len); } +#endif /* def HAVE_LOCKF */ -void +#if HAVE_SWAB +int Mono_Posix_Syscall_swab (void *from, void *to, mph_ssize_t n) { if (mph_have_long_overflow (n)) - return; + return -1; swab (from, to, (ssize_t) n); + return 0; } +#endif /* def HAVE_SWAB */ +#if HAVE_SETUSERSHELL int Mono_Posix_Syscall_setusershell (void) { - errno = 0; setusershell (); - return errno == 0 ? 0 : -1; + return 0; } +#endif /* def HAVE_SETUSERSHELL */ +#if HAVE_ENDUSERSHELL int Mono_Posix_Syscall_endusershell (void) { - errno = 0; endusershell (); - return errno == 0 ? 0 : -1; + return 0; } +#endif /* def HAVE_ENDUSERSHELL */ int Mono_Posix_Syscall_sync (void) { - errno = 0; sync (); - return errno == 0 ? 0 : -1; + return 0; }