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