97 references to Interop
System.IO.FileSystem.Watcher (97)
_generated\0\LibraryImports.g.cs (15)
83internal static extern partial global::Interop.Error ConvertErrorPlatformToPal(int platformErrno); 91internal static extern partial int ConvertErrorPalToPlatform(global::Interop.Error error); 107private static partial int PathConf(string path, global::Interop.Sys.PathConfName name) 136static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.PathConfName __name_native); 270internal static unsafe extern partial global::Interop.Error Poll(global::Interop.PollEvent* pollEvents, uint eventCount, int timeout, uint* triggered); 278internal static partial int FStat(global::System.Runtime.InteropServices.SafeHandle fd, out global::Interop.Sys.FileStatus output) 291fixed (global::Interop.Sys.FileStatus* __output_native = &output) 310static extern unsafe int __PInvoke(nint __fd_native, global::Interop.Sys.FileStatus* __output_native); 319internal static partial int Stat(string path, out global::Interop.Sys.FileStatus output) 332fixed (global::Interop.Sys.FileStatus* __output_native = &output) 351static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.FileStatus* __output_native); 360internal static partial int LStat(string path, out global::Interop.Sys.FileStatus output) 373fixed (global::Interop.Sys.FileStatus* __output_native = &output) 392static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.FileStatus* __output_native);
src\runtime\src\libraries\Common\src\Interop\Unix\Interop.Errors.cs (6)
124_error = Interop.Sys.ConvertErrorPlatformToPal(errno); 141get { return _rawErrno == -1 ? (_rawErrno = Interop.Sys.ConvertErrorPalToPlatform(_error)) : _rawErrno; } 146return Interop.Sys.StrError(RawErrno); 220public static Interop.ErrorInfo Info(this Interop.Error error) 222return new Interop.ErrorInfo(error);
src\runtime\src\libraries\Common\src\Interop\Unix\Interop.IOErrors.cs (4)
16throw Interop.GetExceptionForIoErrno(errorInfo, path, isDirError); 21if (error != Interop.Error.SUCCESS) 99Exception e = Interop.GetExceptionForIoErrno(Sys.GetLastErrorInfo(), path, isDirError); 183internal static Exception GetIOException(Interop.ErrorInfo errorInfo, string? path = null)
System\IO\FileSystemWatcher.Linux.cs (72)
148SafeFileHandle handle = Interop.Sys.INotifyInit(); 152Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo(); 156case Interop.Error.EMFILE: 162case Interop.Error.ENFILE: 165throw Interop.GetExceptionForIoErrno(error); 218private WatchedDirectory? AddOrUpdateWatchedDirectory(Watcher watcher, WatchedDirectory? parent, string directoryPath, Interop.Sys.NotifyEvents watchFilters, bool ignoreMissing = true) 242Interop.Sys.NotifyEvents mask = watchFilters | 243Interop.Sys.NotifyEvents.IN_ONLYDIR | // we only allow watches on directories 244Interop.Sys.NotifyEvents.IN_EXCL_UNLINK | // we want to stop monitoring unlinked files 245(parent == null ? Interop.Sys.NotifyEvents.IN_MOVE_SELF // Detect when the root directory is moved. 246: Interop.Sys.NotifyEvents.IN_DONT_FOLLOW); // Follow links only for the root path, not the subdirs. 251mask |= Interop.Sys.NotifyEvents.IN_MASK_ADD; 256mask |= Interop.Sys.NotifyEvents.IN_MOVED_TO | Interop.Sys.NotifyEvents.IN_MOVED_FROM; 259int wd = Interop.Sys.INotifyAddWatch(_inotifyHandle, directoryPath, (uint)mask); 264Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo(); 267if (ignoreMissing && (error.Error == Interop.Error.ENOENT || error.Error == Interop.Error.ENOTDIR)) 273if (error.Error == Interop.Error.ENOSPC) 283exc = Interop.GetExceptionForIoErrno(error, directoryPath); 407Interop.Sys.INotifyRemoveWatch(_inotifyHandle, watch.WatchDescriptor); 520const Interop.Sys.NotifyEvents FileDirEvents = 521Interop.Sys.NotifyEvents.IN_CREATE | 522Interop.Sys.NotifyEvents.IN_DELETE | 523Interop.Sys.NotifyEvents.IN_MOVED_FROM | 524Interop.Sys.NotifyEvents.IN_MOVED_TO; 526const Interop.Sys.NotifyEvents EventMask = 528Interop.Sys.NotifyEvents.IN_ACCESS | 529Interop.Sys.NotifyEvents.IN_MODIFY | 530Interop.Sys.NotifyEvents.IN_ATTRIB; 533Interop.Sys.NotifyEvents mask = (Interop.Sys.NotifyEvents)nextEvent.mask; 536if ((mask & Interop.Sys.NotifyEvents.IN_Q_OVERFLOW) != 0) 568bool isMatchingMovedTo = (mask & Interop.Sys.NotifyEvents.IN_MOVED_TO) != 0 && movedFromCookie == nextEvent.cookie; 584if (!IsIgnoredEvent(watcher, Interop.Sys.NotifyEvents.IN_DELETE, movedFromIsDir)) 600bool isDir = (mask & (Interop.Sys.NotifyEvents.IN_ISDIR | Interop.Sys.NotifyEvents.IN_IGNORED)) != 0; 605if ((mask & Interop.Sys.NotifyEvents.IN_MOVED_FROM) != 0) 619Interop.PollEvents events; 620Interop.Sys.Poll(_inotifyHandle, Interop.PollEvents.POLLIN, MillisecondsTimeout, out events); 622eventAvailable = events != Interop.PollEvents.POLLNONE; 643if ((mask & (Interop.Sys.NotifyEvents.IN_CREATE | Interop.Sys.NotifyEvents.IN_MOVED_TO)) != 0) 655else if ((mask & Interop.Sys.NotifyEvents.IN_MOVED_FROM) != 0) 662if (((mask & Interop.Sys.NotifyEvents.IN_IGNORED) != 0) 663|| (((mask & Interop.Sys.NotifyEvents.IN_MOVE_SELF) != 0) && dir.IsRootDir)) 665int ignoredFd = (mask & Interop.Sys.NotifyEvents.IN_IGNORED) != 0 ? nextEvent.wd : -1; 688case Interop.Sys.NotifyEvents.IN_CREATE: 691case Interop.Sys.NotifyEvents.IN_DELETE: 694case Interop.Sys.NotifyEvents.IN_ACCESS: 695case Interop.Sys.NotifyEvents.IN_MODIFY: 696case Interop.Sys.NotifyEvents.IN_ATTRIB: 699case Interop.Sys.NotifyEvents.IN_MOVED_FROM: 702case Interop.Sys.NotifyEvents.IN_MOVED_TO: 715=> matchingFromFound ??= (mask & Interop.Sys.NotifyEvents.IN_MOVED_TO) != 0 ? FindMatchingWatchedDirectory(dirs, watcher) : null; 775static bool IsIgnoredEvent(Watcher watcher, Interop.Sys.NotifyEvents mask, bool isDir) 864_bufferAvailable = Interop.CheckIo(Interop.Sys.Read(_inotifyHandle, buf, this._buffer.Length)); 1009public Interop.Sys.NotifyEvents WatchFilters { get; } 1207catch (IOException ex) when (ex.HResult == Interop.Error.ENOTDIR.Info().RawErrno) 1254private static Interop.Sys.NotifyEvents TranslateFilters(NotifyFilters filters) 1256Interop.Sys.NotifyEvents result = 0; 1262Interop.Sys.NotifyEvents.IN_CREATE | 1263Interop.Sys.NotifyEvents.IN_DELETE; 1283result |= Interop.Sys.NotifyEvents.IN_ACCESS; 1287result |= Interop.Sys.NotifyEvents.IN_MODIFY; 1291result |= Interop.Sys.NotifyEvents.IN_ATTRIB; 1302Interop.Sys.NotifyEvents.IN_MOVED_FROM | 1303Interop.Sys.NotifyEvents.IN_MOVED_TO;