public delegate void SignalHandler (int signal);
- [StructLayout (LayoutKind.Sequential)]
public sealed class FilePosition : IDisposable {
- [DllImport ("MonoPosixHelper",
- EntryPoint="Mono_Posix_Stdlib_CreateFilePosition")]
- private static extern IntPtr CreateFilePosition ();
-
private HandleRef pos;
public FilePosition ()
{
- IntPtr p = CreateFilePosition ();
+ IntPtr p = Stdlib.CreateFilePosition ();
if (p == IntPtr.Zero)
throw new OutOfMemoryException ("Unable to malloc fpos_t!");
pos = new HandleRef (this, p);
this.handler = handler;
}
- private const string MPH = "MonoPosixHelper";
-
- [DllImport (MPH, EntryPoint="Mono_Posix_Syscall_InvokeSignalHandler")]
- private static extern void InvokeSignalHandler (int signum, IntPtr handler);
-
public void InvokeSignalHandler (int signum)
{
- InvokeSignalHandler (signum, handler);
+ Stdlib.InvokeSignalHandler (signum, handler);
}
}
//
public class Stdlib
{
- private const string LIBC = "libc";
- private const string MPH = "MonoPosixHelper";
+ internal const string LIBC = "libc";
+ internal const string MPH = "MonoPosixHelper";
internal Stdlib () {}
//
// <signal.h>
//
+ [DllImport (MPH, EntryPoint="Mono_Posix_Syscall_InvokeSignalHandler")]
+ internal static extern void InvokeSignalHandler (int signum, IntPtr handler);
+
[DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_SIG_DFL")]
private static extern IntPtr GetDefaultSignal ();
[DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_BUFSIZ")]
private static extern int GetBufferSize ();
+ [DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_CreateFilePosition")]
+ internal static extern IntPtr CreateFilePosition ();
+
[DllImport (MPH, EntryPoint="Mono_Posix_Stdlib_L_tmpnam")]
private static extern int GetTmpnamLength ();
// Jonathan Pryor (jonpryor@vt.edu)
//
// (C) 2003 Novell, Inc.
-// (C) 2004 Jonathan Pryor
+// (C) 2004-2005 Jonathan Pryor
//
// This file implements the low-level syscall interface to the POSIX
// subsystem.
//
public sealed class Syscall : Stdlib
{
- private const string LIBC = "libc";
- private const string MPH = "MonoPosixHelper";
private const string CRYPT = "crypt";
private Syscall () {}