Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/Mono.Posix')
-rw-r--r--mcs/class/Mono.Posix/Mono.Unix/ChangeLog11
-rw-r--r--mcs/class/Mono.Posix/Mono.Unix/Stdlib.cs194
-rw-r--r--mcs/class/Mono.Posix/Mono.Unix/Syscall.cs9
3 files changed, 133 insertions, 81 deletions
diff --git a/mcs/class/Mono.Posix/Mono.Unix/ChangeLog b/mcs/class/Mono.Posix/Mono.Unix/ChangeLog
index 7048cc4d038..6b6e40a2daf 100644
--- a/mcs/class/Mono.Posix/Mono.Unix/ChangeLog
+++ b/mcs/class/Mono.Posix/Mono.Unix/ChangeLog
@@ -1,3 +1,14 @@
+2005-01-31 Jonathan Pryor <jonpryor@vt.edu>
+
+ * Stdlib.cs: Import "msvcrt", not "libc". These members are part of the
+ ANSI C standard, and thus should be present on Windows via msvcrt.dll
+ (except snprintf, until they catch up to C99). Change the calling
+ convention of all functions to Cdecl, as the .NET default is Stdcall.
+ Changing the calling convention isn't needed in Syscall, as it can only be
+ run on Unix platforms anyway, where the default is Cdecl.
+ * Syscall.cs: Add LIBC member that points to the real "libc"; we can't use
+ the imported definition from Stdlib as "msvcrt" doesn't exist on Unix.
+
2005-01-29 Jonathan Pryor <jonpryor@vt.edu>
* Stdlib.cs: sys_* functions shouldn't be public.
diff --git a/mcs/class/Mono.Posix/Mono.Unix/Stdlib.cs b/mcs/class/Mono.Posix/Mono.Unix/Stdlib.cs
index a9039024767..6ae28352c9c 100644
--- a/mcs/class/Mono.Posix/Mono.Unix/Stdlib.cs
+++ b/mcs/class/Mono.Posix/Mono.Unix/Stdlib.cs
@@ -107,7 +107,7 @@ namespace Mono.Unix {
"Mono_Posix_Stdlib_snprintf", typeof(int));
snprintf = new XPrintf (_snprintf.Invoke);
- CdeclFunction _syslog = new CdeclFunction (Stdlib.LIBC, "syslog", typeof(void));
+ CdeclFunction _syslog = new CdeclFunction (Syscall.LIBC, "syslog", typeof(void));
syslog = new XPrintf (_syslog.Invoke);
}
}
@@ -127,7 +127,7 @@ namespace Mono.Unix {
//
public class Stdlib
{
- internal const string LIBC = "libc";
+ internal const string LIBC = "msvcrt";
internal const string MPH = "MonoPosixHelper";
internal Stdlib () {}
@@ -135,16 +135,20 @@ namespace Mono.Unix {
//
// <signal.h>
//
- [DllImport (MPH, EntryPoint="Mono_Posix_Syscall_InvokeSignalHandler")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Syscall_InvokeSignalHandler")]
internal static extern void InvokeSignalHandler (int signum, IntPtr handler);
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_SIG_DFL")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_SIG_DFL")]
private static extern IntPtr GetDefaultSignal ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_SIG_ERR")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_SIG_ERR")]
private static extern IntPtr GetErrorSignal ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_SIG_IGN")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_SIG_IGN")]
private static extern IntPtr GetIgnoreSignal ();
private static readonly IntPtr _SIG_DFL = GetDefaultSignal ();
@@ -173,10 +177,12 @@ namespace Mono.Unix {
public static readonly SignalHandler SIG_ERR = new SignalHandler (_ErrorHandler);
public static readonly SignalHandler SIG_IGN = new SignalHandler (_IgnoreHandler);
- [DllImport (LIBC, SetLastError=true, EntryPoint="signal")]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="signal")]
private static extern IntPtr sys_signal (int signum, SignalHandler handler);
- [DllImport (LIBC, SetLastError=true, EntryPoint="signal")]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="signal")]
private static extern IntPtr sys_signal (int signum, IntPtr handler);
public static SignalHandler signal (Signum signum, SignalHandler handler)
@@ -205,7 +211,7 @@ namespace Mono.Unix {
return new SignalHandler (new SignalWrapper (handler).InvokeSignalHandler);
}
- [DllImport (LIBC, EntryPoint="raise")]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, EntryPoint="raise")]
private static extern int sys_raise (int sig);
public static int raise (Signum sig)
@@ -220,43 +226,56 @@ namespace Mono.Unix {
// - vararg functions.
// - Horribly unsafe functions (gets(3)).
//
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib__IOFBF")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib__IOFBF")]
private static extern int GetFullyBuffered ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib__IOLBF")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib__IOLBF")]
private static extern int GetLineBuffered ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib__IONBF")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib__IONBF")]
private static extern int GetNonBuffered ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_BUFSIZ")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_BUFSIZ")]
private static extern int GetBufferSize ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_CreateFilePosition")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_CreateFilePosition")]
internal static extern IntPtr CreateFilePosition ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_EOF")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_EOF")]
private static extern int GetEOF ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_FILENAME_MAX")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_FILENAME_MAX")]
private static extern int GetFilenameMax ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_FOPEN_MAX")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_FOPEN_MAX")]
private static extern int GetFopenMax ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_L_tmpnam")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_L_tmpnam")]
private static extern int GetTmpnamLength ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_stdin")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_stdin")]
private static extern IntPtr GetStandardInput ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_stdout")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_stdout")]
private static extern IntPtr GetStandardOutput ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_stderr")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_stderr")]
private static extern IntPtr GetStandardError ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_TMP_MAX")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_TMP_MAX")]
private static extern int GetTmpMax ();
public static readonly int _IOFBF = GetFullyBuffered ();
@@ -272,16 +291,17 @@ namespace Mono.Unix {
public static readonly IntPtr stdout = GetStandardOutput ();
public static readonly int TMP_MAX = GetTmpMax ();
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int remove (string filename);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int rename (string oldpath, string newpath);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern IntPtr tmpfile ();
- [DllImport (LIBC, SetLastError=true, EntryPoint="tmpnam")]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="tmpnam")]
private static extern IntPtr sys_tmpnam (StringBuilder s);
[Obsolete ("Syscall.mkstemp() should be preferred.")]
@@ -300,19 +320,19 @@ namespace Mono.Unix {
return UnixMarshal.PtrToString (r);
}
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int fclose (IntPtr stream);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int fflush (IntPtr stream);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern IntPtr fopen (string path, string mode);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern IntPtr freopen (string path, string mode, IntPtr stream);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern void setbuf (IntPtr stream, IntPtr buf);
public static unsafe void setbuf (IntPtr stream, byte* buf)
@@ -320,8 +340,8 @@ namespace Mono.Unix {
setbuf (stream, (IntPtr) buf);
}
- [DllImport (MPH, SetLastError=true,
- EntryPoint="Mono_Posix_Stdlib_setvbuf")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_setvbuf")]
public static extern int setvbuf (IntPtr stream, IntPtr buf, int mode, ulong size);
public static unsafe int setvbuf (IntPtr stream, byte* buf, int mode, ulong size)
@@ -329,7 +349,8 @@ namespace Mono.Unix {
return setvbuf (stream, (IntPtr) buf, mode, size);
}
- [DllImport (LIBC, EntryPoint="fprintf")]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="fprintf")]
private static extern int sys_fprintf (IntPtr stream, string format, string message);
public static int fprintf (IntPtr stream, string message)
@@ -350,7 +371,8 @@ namespace Mono.Unix {
/* SKIP: fscanf(3) */
- [DllImport (LIBC, EntryPoint="printf")]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="printf")]
private static extern int sys_printf (string format, string message);
public static int printf (string message)
@@ -370,7 +392,8 @@ namespace Mono.Unix {
/* SKIP: scanf(3) */
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_snprintf")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_snprintf")]
private static extern int sys_snprintf (StringBuilder s, ulong n,
string format, string message);
@@ -423,10 +446,11 @@ namespace Mono.Unix {
* vsscanf(3)
*/
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int fgetc (IntPtr stream);
- [DllImport (LIBC, SetLastError=true, EntryPoint="fgets")]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="fgets")]
private static extern IntPtr sys_fgets (StringBuilder sb, int size, IntPtr stream);
public static StringBuilder fgets (StringBuilder sb, int size, IntPtr stream)
@@ -442,33 +466,34 @@ namespace Mono.Unix {
return fgets (sb, sb.Capacity, stream);
}
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int fputc (int c, IntPtr stream);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int fputs (string s, IntPtr stream);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int getc (IntPtr stream);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int getchar ();
/* SKIP: gets(3) */
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int putc (int c, IntPtr stream);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int putchar (int c);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int puts (string s);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int ungetc (int c, IntPtr stream);
- [DllImport (MPH, SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fread")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fread")]
public static extern ulong fread (IntPtr ptr, ulong size, ulong nmemb, IntPtr stream);
public static unsafe ulong fread (void* ptr, ulong size, ulong nmemb, IntPtr stream)
@@ -476,7 +501,8 @@ namespace Mono.Unix {
return fread ((IntPtr) ptr, size, nmemb, stream);
}
- [DllImport (MPH, SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fread")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fread")]
private static extern ulong sys_fread ([Out] byte[] ptr,
ulong size, ulong nmemb, IntPtr stream);
@@ -492,7 +518,8 @@ namespace Mono.Unix {
return fread (ptr, 1, (ulong) ptr.Length, stream);
}
- [DllImport (MPH, SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fwrite")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fwrite")]
public static extern ulong fwrite (IntPtr ptr, ulong size, ulong nmemb, IntPtr stream);
public static unsafe ulong fwrite (void* ptr, ulong size, ulong nmemb, IntPtr stream)
@@ -500,7 +527,8 @@ namespace Mono.Unix {
return fwrite ((IntPtr) ptr, size, nmemb, stream);
}
- [DllImport (MPH, SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fwrite")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fwrite")]
private static extern ulong sys_fwrite (byte[] ptr,
ulong size, ulong nmemb, IntPtr stream);
@@ -516,8 +544,8 @@ namespace Mono.Unix {
return fwrite (ptr, 1, (ulong) ptr.Length, stream);
}
- [DllImport (MPH, SetLastError=true,
- EntryPoint="Mono_Posix_Stdlib_fgetpos")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fgetpos")]
private static extern int sys_fgetpos (IntPtr stream, HandleRef pos);
public static int fgetpos (IntPtr stream, FilePosition pos)
@@ -525,8 +553,8 @@ namespace Mono.Unix {
return sys_fgetpos (stream, pos.Handle);
}
- [DllImport (MPH, SetLastError=true,
- EntryPoint="Mono_Posix_Stdlib_fseek")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fseek")]
private static extern int sys_fseek (IntPtr stream, long offset, int origin);
public static int fseek (IntPtr stream, long offset, SeekFlags origin)
@@ -535,8 +563,8 @@ namespace Mono.Unix {
return sys_fseek (stream, offset, _origin);
}
- [DllImport (MPH, SetLastError=true,
- EntryPoint="Mono_Posix_Stdlib_fsetpos")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_fsetpos")]
private static extern int sys_fsetpos (IntPtr stream, HandleRef pos);
public static int fsetpos (IntPtr stream, FilePosition pos)
@@ -544,38 +572,42 @@ namespace Mono.Unix {
return sys_fsetpos (stream, pos.Handle);
}
- [DllImport (MPH, SetLastError=true,
- EntryPoint="Mono_Posix_Stdlib_ftell")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_ftell")]
public static extern long ftell (IntPtr stream);
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern void rewind (IntPtr stream);
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern void clearerr (IntPtr stream);
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern int feof (IntPtr stream);
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern int ferror (IntPtr stream);
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern void perror (string s);
//
// <stdlib.h>
//
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_EXIT_FAILURE")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_EXIT_FAILURE")]
private static extern int GetExitFailure();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_EXIT_SUCCESS")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_EXIT_SUCCESS")]
private static extern int GetExitSuccess ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_MB_CUR_MAX")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_MB_CUR_MAX")]
private static extern int GetMbCurMax ();
- [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_RAND_MAX")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ EntryPoint="Mono_Posix_Stdlib_RAND_MAX")]
private static extern int GetRandMax ();
public static readonly int EXIT_FAILURE = GetExitFailure ();
@@ -583,42 +615,45 @@ namespace Mono.Unix {
public static readonly int MB_CUR_MAX = GetMbCurMax ();
public static readonly int RAND_MAX = GetRandMax ();
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern int rand ();
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern void srand (uint seed);
// calloc(3):
// void *calloc (size_t nmemb, size_t size);
- [DllImport (MPH, SetLastError=true, EntryPoint="Mono_Posix_Stdlib_calloc")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_calloc")]
public static extern IntPtr calloc (ulong nmemb, ulong size);
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern void free (IntPtr ptr);
// malloc(3):
// void *malloc(size_t size);
- [DllImport (MPH, SetLastError=true, EntryPoint="Mono_Posix_Stdlib_malloc")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_malloc")]
public static extern IntPtr malloc (ulong size);
// realloc(3):
// void *realloc(void *ptr, size_t size);
- [DllImport (MPH, SetLastError=true, EntryPoint="Mono_Posix_Stdlib_realloc")]
+ [DllImport (MPH, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="Mono_Posix_Stdlib_realloc")]
public static extern IntPtr realloc (IntPtr ptr, ulong size);
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern void abort ();
/* SKIP: atexit(3) */
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern void exit (int status);
- [DllImport (LIBC)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl)]
public static extern void _Exit (int status);
- [DllImport (LIBC, EntryPoint="getenv")]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, EntryPoint="getenv")]
private static extern IntPtr sys_getenv (string name);
public static string getenv (string name)
@@ -627,14 +662,15 @@ namespace Mono.Unix {
return UnixMarshal.PtrToString (r);
}
- [DllImport (LIBC, SetLastError=true)]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
public static extern int system (string @string);
//
// <string.h>
//
- [DllImport (LIBC, SetLastError=true, EntryPoint="strerror")]
+ [DllImport (LIBC, CallingConvention=CallingConvention.Cdecl,
+ SetLastError=true, EntryPoint="strerror")]
private static extern IntPtr sys_strerror (int errnum);
public static string strerror (Error errnum)
diff --git a/mcs/class/Mono.Posix/Mono.Unix/Syscall.cs b/mcs/class/Mono.Posix/Mono.Unix/Syscall.cs
index c5c6e39fd2e..04d30d961e8 100644
--- a/mcs/class/Mono.Posix/Mono.Unix/Syscall.cs
+++ b/mcs/class/Mono.Posix/Mono.Unix/Syscall.cs
@@ -1045,7 +1045,8 @@ namespace Mono.Unix {
//
public sealed class Syscall : Stdlib
{
- private const string CRYPT = "crypt";
+ new internal const string LIBC = "libc";
+ private const string CRYPT = "crypt";
private Syscall () {}
@@ -1808,6 +1809,10 @@ namespace Mono.Unix {
EntryPoint="Mono_Posix_Syscall_lstat")]
public static extern int lstat (string file_name, out Stat buf);
+ // TODO:
+ // S_ISDIR, S_ISCHR, S_ISBLK, S_ISREG, S_ISFIFO, S_ISLNK, S_ISSOCK
+ // All take FilePermissions
+
// chmod(2)
// int chmod(const char *path, mode_t mode);
[DllImport (LIBC, SetLastError=true, EntryPoint="chmod")]
@@ -2020,7 +2025,7 @@ namespace Mono.Unix {
#region <syslog.h> Declarations
//
- // <time.h>
+ // <syslog.h>
//
[DllImport (LIBC, EntryPoint="openlog")]