private NamedSemaphore(string name, Native.OpenFlags openFlags) { semaphoreHandle = Native.SemaphoreOpen( name, openFlags, Native.ModeFlags.S_IRUSR | Native.ModeFlags.S_IWUSR, 0); }
public UnixStream Open(Native.OpenFlags flags, Native.FilePermissions mode) { int fd = Native.Syscall.open(FullPath, flags, mode); if (fd < 0) { UnixMarshal.ThrowExceptionForLastError(); } return(new UnixStream(fd)); }
public UnixStream Open(FileMode mode, FileAccess access, Native.FilePermissions perms) { Native.OpenFlags flags = Native.NativeConvert.ToOpenFlags(mode, access); int fd = Native.Syscall.open(FullPath, flags, perms); if (fd < 0) { UnixMarshal.ThrowExceptionForLastError(); } return(new UnixStream(fd)); }
private NamedSemaphore(string name, Native.OpenFlags openFlags) { semaphoreHandle = Native.SemaphoreOpen( name, openFlags, Native.ModeFlags.S_IRUSR | Native.ModeFlags.S_IWUSR, 0); if (semaphoreHandle.IsInvalid) { throw new IOException( $"Failed to create a NamedSemaphore {name}", innerException: new Win32Exception(Marshal.GetLastWin32Error())); } semaphoreName = name; }
public UnixStream Open(Native.OpenFlags flags) { if ((flags & Native.OpenFlags.O_CREAT) != 0) { throw new ArgumentException( "Cannot specify OpenFlags.O_CREAT without providing " + "FilePermissions. Use the Open(OpenFlags, FilePermissions) " + "method instead"); } int fd = Native.Syscall.open(FullPath, flags); if (fd < 0) { UnixMarshal.ThrowExceptionForLastError(); } return(new UnixStream(fd)); }
private SharedMemoryMapView(string sharedMemoryMapName, ulong sharedMemorySize, Native.OpenFlags openFlags) { this.sharedMemoryMapName = sharedMemoryMapName; // Create shared memory view. // sharedMemoryHandle = Native.SharedMemoryOpen( sharedMemoryMapName, openFlags, Native.ModeFlags.S_IRUSR | Native.ModeFlags.S_IWUSR); if (sharedMemoryHandle.IsInvalid) { int errno = Marshal.GetLastWin32Error(); throw new FileNotFoundException( $"Failed to shm_open {sharedMemoryMapName}", innerException: new Win32Exception(errno)); } CreateMemoryMap(sharedMemorySize); }
public UnixStream Open(FileMode mode, FileAccess access) { Native.OpenFlags flags = Native.NativeConvert.ToOpenFlags(mode, access); return(Open(flags)); }
private SharedMemoryMapView(string sharedMemoryMapName, ulong sharedMemorySize, Native.OpenFlags openFlags) { this.sharedMemoryMapName = sharedMemoryMapName; // Create shared memory view. // sharedMemoryHandle = Native.SharedMemoryOpen( sharedMemoryMapName, openFlags, Native.ModeFlags.S_IRUSR | Native.ModeFlags.S_IWUSR); if (sharedMemoryHandle.IsInvalid) { int errno = Marshal.GetLastWin32Error(); throw new FileNotFoundException( $"Failed to shm_open {sharedMemoryMapName}", innerException: new Win32Exception(errno)); } if (Native.FileTruncate(sharedMemoryHandle, (long)sharedMemorySize) == -1) { int errno = Marshal.GetLastWin32Error(); throw new FileNotFoundException( $"Failed to ftruncate {sharedMemoryMapName} {sharedMemoryHandle}", innerException: new Win32Exception(errno)); } Buffer = Native.MapMemory( address: IntPtr.Zero, length: sharedMemorySize, protFlags: Native.ProtFlags.PROT_READ | Native.ProtFlags.PROT_WRITE, mapFlags: Native.MapFlags.MAP_SHARED, handle: sharedMemoryHandle, offset: 0); if (Buffer == Native.InvalidPointer) { int errno = Marshal.GetLastWin32Error(); throw new InvalidOperationException( $"Failed to mmap {sharedMemoryMapName} {sharedMemoryHandle}", innerException: new Win32Exception(errno)); } MemSize = sharedMemorySize; }