94 references to Interop
System.IO.FileSystem.Watcher (94)
LibraryImports.g.cs (15)
7
internal static extern partial global::
Interop
.Error ConvertErrorPlatformToPal(int platformErrno);
15
internal static extern partial int ConvertErrorPalToPlatform(global::
Interop
.Error error);
31
internal static unsafe extern partial global::
Interop
.Error GetSocketAddressSizes(int* ipv4SocketAddressSize, int* ipv6SocketAddressSize, int* udsSocketAddressSize, int* maxSocketAddressSize);
39
internal static unsafe extern partial global::
Interop
.Error GetAddressFamily(byte* socketAddress, int socketAddressLen, int* addressFamily);
47
internal static unsafe extern partial global::
Interop
.Error SetAddressFamily(byte* socketAddress, int socketAddressLen, int addressFamily);
55
internal static unsafe extern partial global::
Interop
.Error GetPort(byte* socketAddress, int socketAddressLen, ushort* port);
63
internal static unsafe extern partial global::
Interop
.Error SetPort(byte* socketAddress, int socketAddressLen, ushort port);
71
internal static unsafe extern partial global::
Interop
.Error GetIPv4Address(byte* socketAddress, int socketAddressLen, uint* address);
79
internal static unsafe extern partial global::
Interop
.Error SetIPv4Address(byte* socketAddress, int socketAddressLen, uint address);
87
internal static unsafe extern partial global::
Interop
.Error GetIPv6Address(byte* socketAddress, int socketAddressLen, byte* address, int addressLen, uint* scopeId);
95
internal static unsafe extern partial global::
Interop
.Error SetIPv6Address(byte* socketAddress, int socketAddressLen, byte* address, int addressLen, uint scopeId);
134
internal static unsafe extern partial int GetNameInfo(byte* address, uint addressLength, byte isIpv6, byte* host, uint hostLength, byte* service, uint serviceLength, global::
Interop
.Sys.GetNameInfoFlags flags);
142
internal static unsafe partial int GetHostEntryForName(string address, global::System.Net.Sockets.AddressFamily family, global::
Interop
.Sys.HostEntry* entry)
167
static extern unsafe int __PInvoke(byte* __address_native, global::System.Net.Sockets.AddressFamily __family_native, global::
Interop
.Sys.HostEntry* __entry_native);
176
internal static unsafe extern partial void FreeHostEntry(global::
Interop
.Sys.HostEntry* entry);
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\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);
179
internal static Exception GetIOException(
Interop
.ErrorInfo errorInfo, string? path = null)
System\IO\FileSystemWatcher.Linux.cs (69)
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 ? 0 :
Interop
.Sys.NotifyEvents.IN_DONT_FOLLOW); // Follow links only for the root path, not the subdirs.
250
mask |=
Interop
.Sys.NotifyEvents.IN_MASK_ADD;
255
mask |=
Interop
.Sys.NotifyEvents.IN_MOVED_TO |
Interop
.Sys.NotifyEvents.IN_MOVED_FROM;
258
int wd =
Interop
.Sys.INotifyAddWatch(_inotifyHandle, directoryPath, (uint)mask);
263
Interop
.ErrorInfo error =
Interop
.Sys.GetLastErrorInfo();
266
if (ignoreMissing && (error.Error ==
Interop
.Error.ENOENT || error.Error ==
Interop
.Error.ENOTDIR))
272
if (error.Error ==
Interop
.Error.ENOSPC)
282
exc =
Interop
.GetExceptionForIoErrno(error, directoryPath);
406
Interop
.Sys.INotifyRemoveWatch(_inotifyHandle, watch.WatchDescriptor);
519
const
Interop
.Sys.NotifyEvents FileDirEvents =
520
Interop
.Sys.NotifyEvents.IN_CREATE |
521
Interop
.Sys.NotifyEvents.IN_DELETE |
522
Interop
.Sys.NotifyEvents.IN_MOVED_FROM |
523
Interop
.Sys.NotifyEvents.IN_MOVED_TO;
525
const
Interop
.Sys.NotifyEvents EventMask =
527
Interop
.Sys.NotifyEvents.IN_ACCESS |
528
Interop
.Sys.NotifyEvents.IN_MODIFY |
529
Interop
.Sys.NotifyEvents.IN_ATTRIB;
532
Interop
.Sys.NotifyEvents mask = (
Interop
.Sys.NotifyEvents)nextEvent.mask;
535
if ((mask &
Interop
.Sys.NotifyEvents.IN_Q_OVERFLOW) != 0)
567
bool isMatchingMovedTo = (mask &
Interop
.Sys.NotifyEvents.IN_MOVED_TO) != 0 && movedFromCookie == nextEvent.cookie;
583
if (!IsIgnoredEvent(watcher,
Interop
.Sys.NotifyEvents.IN_DELETE, movedFromIsDir))
599
bool isDir = (mask & (
Interop
.Sys.NotifyEvents.IN_ISDIR |
Interop
.Sys.NotifyEvents.IN_IGNORED)) != 0;
604
if ((mask &
Interop
.Sys.NotifyEvents.IN_MOVED_FROM) != 0)
618
Interop
.PollEvents events;
619
Interop
.Sys.Poll(_inotifyHandle,
Interop
.PollEvents.POLLIN, MillisecondsTimeout, out events);
621
eventAvailable = events !=
Interop
.PollEvents.POLLNONE;
642
if ((mask & (
Interop
.Sys.NotifyEvents.IN_CREATE |
Interop
.Sys.NotifyEvents.IN_MOVED_TO)) != 0)
654
else if ((mask &
Interop
.Sys.NotifyEvents.IN_MOVED_FROM) != 0)
660
if ((mask &
Interop
.Sys.NotifyEvents.IN_IGNORED) != 0)
679
case
Interop
.Sys.NotifyEvents.IN_CREATE:
682
case
Interop
.Sys.NotifyEvents.IN_DELETE:
685
case
Interop
.Sys.NotifyEvents.IN_ACCESS:
686
case
Interop
.Sys.NotifyEvents.IN_MODIFY:
687
case
Interop
.Sys.NotifyEvents.IN_ATTRIB:
690
case
Interop
.Sys.NotifyEvents.IN_MOVED_FROM:
693
case
Interop
.Sys.NotifyEvents.IN_MOVED_TO:
706
=> matchingFromFound ??= (mask &
Interop
.Sys.NotifyEvents.IN_MOVED_TO) != 0 ? FindMatchingWatchedDirectory(dirs, watcher) : null;
766
static bool IsIgnoredEvent(Watcher watcher,
Interop
.Sys.NotifyEvents mask, bool isDir)
855
_bufferAvailable =
Interop
.CheckIo(
Interop
.Sys.Read(_inotifyHandle, buf, this._buffer.Length));
1000
public
Interop
.Sys.NotifyEvents WatchFilters { get; }
1198
catch (IOException ex) when (ex.HResult ==
Interop
.Error.ENOTDIR.Info().RawErrno)
1245
private static
Interop
.Sys.NotifyEvents TranslateFilters(NotifyFilters filters)
1247
Interop
.Sys.NotifyEvents result = 0;
1256
Interop
.Sys.NotifyEvents.IN_CREATE |
1257
Interop
.Sys.NotifyEvents.IN_DELETE;
1277
result |=
Interop
.Sys.NotifyEvents.IN_ACCESS;
1281
result |=
Interop
.Sys.NotifyEvents.IN_MODIFY;
1285
result |=
Interop
.Sys.NotifyEvents.IN_ATTRIB;
1296
Interop
.Sys.NotifyEvents.IN_MOVED_FROM |
1297
Interop
.Sys.NotifyEvents.IN_MOVED_TO;