_generated\2\LibraryImports.g.cs (102)
15internal static extern partial void RhCollect(int generation, global::System.InternalGCCollectionMode mode, global::Interop.BOOL lowMemoryP);
75internal static extern partial int RhStartNoGCRegion(long totalSize, global::Interop.BOOL hasLohSize, long lohSize, global::Interop.BOOL disallowFullBlockingGC);
227internal static partial int MProtect(nint addr, ulong len, global::Interop.Sys.MemoryMappedProtections prot)
241static extern unsafe int __PInvoke(nint __addr_native, ulong __len_native, global::Interop.Sys.MemoryMappedProtections __prot_native);
296internal static unsafe partial global::Interop.Globalization.ResultCode GetCalendarInfo(string localeName, global::System.Globalization.CalendarId calendarId, global::System.Globalization.CalendarDataType calendarDataType, char* result, int resultCapacity)
298global::Interop.Globalization.ResultCode __retVal;
308static extern unsafe global::Interop.Globalization.ResultCode __PInvoke(ushort* __localeName_native, global::System.Globalization.CalendarId __calendarId_native, global::System.Globalization.CalendarDataType __calendarDataType_native, char* __result_native, int __resultCapacity_native);
449internal static unsafe partial global::Interop.Globalization.ResultCode GetSortHandle(string localeName, out nint sortHandle)
453global::Interop.Globalization.ResultCode __retVal = default;
477static extern unsafe global::Interop.Globalization.ResultCode __PInvoke(byte* __localeName_native, nint* __sortHandle_native);
935internal static unsafe partial global::Interop.Globalization.ResultCode GetTimeZoneDisplayName(string localeName, string timeZoneId, global::Interop.Globalization.TimeZoneDisplayNameType type, char* result, int resultLength)
937global::Interop.Globalization.ResultCode __retVal;
948static extern unsafe global::Interop.Globalization.ResultCode __PInvoke(ushort* __localeName_native, ushort* __timeZoneId_native, global::Interop.Globalization.TimeZoneDisplayNameType __type_native, char* __result_native, int __resultLength_native);
1091internal static unsafe extern partial int FindStringOrdinal(uint dwFindStringOrdinalFlags, char* lpStringSource, int cchSource, char* lpStringValue, int cchValue, global::Interop.BOOL bIgnoreCase);
1121internal static unsafe extern partial global::Interop.BOOL GetUserPreferredUILanguages(uint dwFlags, uint* pulNumLanguages, char* pwszLanguagesBuffer, uint* pcchLanguagesBuffer);
1150internal static unsafe partial bool EnumSystemLocalesEx(delegate* unmanaged<char*, uint, void*, global::Interop.BOOL> lpLocaleEnumProcEx, uint dwFlags, void* lParam, nint reserved)
1163static extern unsafe int __PInvoke(delegate* unmanaged<char*, uint, void*, global::Interop.BOOL> __lpLocaleEnumProcEx_native, uint __dwFlags_native, void* __lParam_native, nint __reserved_native);
1172internal static unsafe partial bool EnumTimeFormatsEx(delegate* unmanaged<char*, void*, global::Interop.BOOL> lpTimeFmtEnumProcEx, string lpLocaleName, uint dwFlags, void* lParam)
1187static extern unsafe int __PInvoke(delegate* unmanaged<char*, void*, global::Interop.BOOL> __lpTimeFmtEnumProcEx_native, ushort* __lpLocaleName_native, uint __dwFlags_native, void* __lParam_native);
1256internal static unsafe partial bool EnumCalendarInfoExEx(delegate* unmanaged<char*, uint, nint, void*, global::Interop.BOOL> pCalInfoEnumProcExEx, string lpLocaleName, uint Calendar, string lpReserved, uint CalType, void* lParam)
1272static extern unsafe int __PInvoke(delegate* unmanaged<char*, uint, nint, void*, global::Interop.BOOL> __pCalInfoEnumProcExEx_native, ushort* __lpLocaleName_native, uint __Calendar_native, ushort* __lpReserved_native, uint __CalType_native, void* __lParam_native);
1281internal static unsafe partial bool GetNLSVersionEx(int function, string localeName, global::Interop.Kernel32.NlsVersionInfoEx* lpVersionInformation)
1296static extern unsafe int __PInvoke(int __function_native, ushort* __localeName_native, global::Interop.Kernel32.NlsVersionInfoEx* __lpVersionInformation_native);
1378internal static unsafe partial global::Interop.BOOL IsNormalizedString(global::System.Text.NormalizationForm normForm, char* source, int length)
1381global::Interop.BOOL __retVal;
1392static extern unsafe global::Interop.BOOL __PInvoke(global::System.Text.NormalizationForm __normForm_native, char* __source_native, int __length_native);
1440internal static unsafe partial nint CreateProvider(string providerName, delegate* unmanaged<byte*, int, byte, long, long, global::Interop.Advapi32.EVENT_FILTER_DESCRIPTOR*, void*, void> callbackFunc, void* callbackContext)
1452static extern unsafe nint __PInvoke(ushort* __providerName_native, delegate* unmanaged<byte*, int, byte, long, long, global::Interop.Advapi32.EVENT_FILTER_DESCRIPTOR*, void*, void> __callbackFunc_native, void* __callbackContext_native);
1775internal static extern partial global::Interop.Error ConvertErrorPlatformToPal(int platformErrno);
1783internal static extern partial int ConvertErrorPalToPlatform(global::Interop.Error error);
1799internal static partial int Access(string path, global::Interop.Sys.AccessMode mode)
1828static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.AccessMode __mode_native);
2369internal static partial bool FileSystemSupportsLocking(global::Microsoft.Win32.SafeHandles.SafeFileHandle fd, global::Interop.Sys.LockOperations lockOperation, bool accessWrite)
2400static extern unsafe int __PInvoke(nint __fd_native, global::Interop.Sys.LockOperations __lockOperation_native, int __accessWrite_native);
2409internal static partial int FLock(global::Microsoft.Win32.SafeHandles.SafeFileHandle fd, global::Interop.Sys.LockOperations operation)
2438static extern unsafe int __PInvoke(nint __fd_native, global::Interop.Sys.LockOperations __operation_native);
2447internal static partial int FLock(nint fd, global::Interop.Sys.LockOperations operation)
2461static extern unsafe int __PInvoke(nint __fd_native, global::Interop.Sys.LockOperations __operation_native);
2584internal static partial double GetCpuUtilization(ref global::Interop.Sys.ProcessCpuInformation previousCpuInfo)
2588fixed (global::Interop.Sys.ProcessCpuInformation* __previousCpuInfo_native = &previousCpuInfo)
2596static extern unsafe double __PInvoke(global::Interop.Sys.ProcessCpuInformation* __previousCpuInfo_native);
2605internal static unsafe partial int Pipe(int* pipefd, global::Interop.Sys.PipeFlags flags)
2619static extern unsafe int __PInvoke(int* __pipefd_native, global::Interop.Sys.PipeFlags __flags_native);
3013internal static partial int LockFileRegion(global::System.Runtime.InteropServices.SafeHandle fd, long offset, long length, global::Interop.Sys.LockType lockType)
3042static extern unsafe int __PInvoke(nint __fd_native, long __offset_native, long __length_native, global::Interop.Sys.LockType __lockType_native);
3137internal static partial long LSeek(global::Microsoft.Win32.SafeHandles.SafeFileHandle fd, long offset, global::Interop.Sys.SeekWhence whence)
3166static extern unsafe long __PInvoke(nint __fd_native, long __offset_native, global::Interop.Sys.SeekWhence __whence_native);
3315internal static partial nint MMap(nint addr, ulong len, global::Interop.Sys.MemoryMappedProtections prot, global::Interop.Sys.MemoryMappedFlags flags, global::Microsoft.Win32.SafeHandles.SafeFileHandle fd, long offset)
3344static extern unsafe nint __PInvoke(nint __addr_native, ulong __len_native, global::Interop.Sys.MemoryMappedProtections __prot_native, global::Interop.Sys.MemoryMappedFlags __flags_native, nint __fd_native, long __offset_native);
3353internal static partial nint MMap(nint addr, ulong len, global::Interop.Sys.MemoryMappedProtections prot, global::Interop.Sys.MemoryMappedFlags flags, nint fd, long offset)
3367static extern unsafe nint __PInvoke(nint __addr_native, ulong __len_native, global::Interop.Sys.MemoryMappedProtections __prot_native, global::Interop.Sys.MemoryMappedFlags __flags_native, nint __fd_native, long __offset_native);
3407internal static partial global::Microsoft.Win32.SafeHandles.SafeFileHandle Open(string filename, global::Interop.Sys.OpenFlags flags, int mode)
3451static extern unsafe nint __PInvoke(byte* __filename_native, global::Interop.Sys.OpenFlags __flags_native, int __mode_native);
3460private static partial int PathConf(string path, global::Interop.Sys.PathConfName name)
3489static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.PathConfName __name_native);
3498internal static partial int PosixFAdvise(global::Microsoft.Win32.SafeHandles.SafeFileHandle fd, long offset, long length, global::Interop.Sys.FileAdvice advice)
3523static extern unsafe int __PInvoke(nint __fd_native, long __offset_native, long __length_native, global::Interop.Sys.FileAdvice __advice_native);
3608internal static unsafe partial long ReadV(global::System.Runtime.InteropServices.SafeHandle fd, global::Interop.Sys.IOVector* vectors, int vectorCount)
3637static extern unsafe long __PInvoke(nint __fd_native, global::Interop.Sys.IOVector* __vectors_native, int __vectorCount_native);
3646internal static unsafe partial long PReadV(global::System.Runtime.InteropServices.SafeHandle fd, global::Interop.Sys.IOVector* vectors, int vectorCount, long fileOffset)
3675static extern unsafe long __PInvoke(nint __fd_native, global::Interop.Sys.IOVector* __vectors_native, int __vectorCount_native, long __fileOffset_native);
3722internal static unsafe partial long PWriteV(global::System.Runtime.InteropServices.SafeHandle fd, global::Interop.Sys.IOVector* vectors, int vectorCount, long fileOffset)
3751static extern unsafe long __PInvoke(nint __fd_native, global::Interop.Sys.IOVector* __vectors_native, int __vectorCount_native, long __fileOffset_native);
3836internal static unsafe partial long WriteV(global::System.Runtime.InteropServices.SafeHandle fd, global::Interop.Sys.IOVector* vectors, int vectorCount)
3865static extern unsafe long __PInvoke(nint __fd_native, global::Interop.Sys.IOVector* __vectors_native, int __vectorCount_native);
3912internal static unsafe extern partial int ReadDir(nint dir, global::Interop.Sys.DirectoryEntry* outputEntry);
4072internal static partial int FStat(global::System.Runtime.InteropServices.SafeHandle fd, out global::Interop.Sys.FileStatus output)
4085fixed (global::Interop.Sys.FileStatus* __output_native = &output)
4104static extern unsafe int __PInvoke(nint __fd_native, global::Interop.Sys.FileStatus* __output_native);
4113internal static partial int Stat(string path, out global::Interop.Sys.FileStatus output)
4126fixed (global::Interop.Sys.FileStatus* __output_native = &output)
4145static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.FileStatus* __output_native);
4154internal static partial int LStat(string path, out global::Interop.Sys.FileStatus output)
4167fixed (global::Interop.Sys.FileStatus* __output_native = &output)
4186static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.FileStatus* __output_native);
4195internal static partial int Stat(global::System.ReadOnlySpan<char> path, out global::Interop.Sys.FileStatus output)
4208fixed (global::Interop.Sys.FileStatus* __output_native = &output)
4227static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.FileStatus* __output_native);
4236internal static partial int LStat(global::System.ReadOnlySpan<char> path, out global::Interop.Sys.FileStatus output)
4249fixed (global::Interop.Sys.FileStatus* __output_native = &output)
4268static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.FileStatus* __output_native);
4320internal static partial long SysConf(global::Interop.Sys.SysConfName name)
4334static extern unsafe long __PInvoke(global::Interop.Sys.SysConfName __name_native);
4343internal static partial void SysLog(global::Interop.Sys.SysLogPriority priority, string message, string arg1)
4371static extern unsafe void __PInvoke(global::Interop.Sys.SysLogPriority __priority_native, byte* __message_native, byte* __arg1_native);
4448internal static unsafe partial int UTimensat(string path, global::Interop.Sys.TimeSpec* times)
4477static extern unsafe int __PInvoke(byte* __path_native, global::Interop.Sys.TimeSpec* __times_native);
4486internal static unsafe partial int FUTimens(global::System.Runtime.InteropServices.SafeHandle fd, global::Interop.Sys.TimeSpec* times)
4515static extern unsafe int __PInvoke(nint __fd_native, global::Interop.Sys.TimeSpec* __times_native);
4662internal static unsafe partial int GetPwUidR(uint uid, out global::Interop.Sys.Passwd pwd, byte* buf, int bufLen)
4667fixed (global::Interop.Sys.Passwd* __pwd_native = &pwd)
4675static extern unsafe int __PInvoke(uint __uid_native, global::Interop.Sys.Passwd* __pwd_native, byte* __buf_native, int __bufLen_native);
4684internal static unsafe partial int GetPwNamR(string name, out global::Interop.Sys.Passwd pwd, byte* buf, int bufLen)
4696fixed (global::Interop.Sys.Passwd* __pwd_native = &pwd)
4712static extern unsafe int __PInvoke(byte* __name_native, global::Interop.Sys.Passwd* __pwd_native, byte* __buf_native, int __bufLen_native);
src\runtime\src\libraries\System.Private.CoreLib\src\Microsoft\Win32\SafeHandles\SafeFileHandle.Unix.cs (116)
64if (Interop.Sys.Fcntl.GetIsNonBlocking(this, out bool isNonBlocking) != 0)
66throw Interop.GetExceptionForIoErrno(Interop.Sys.GetLastErrorInfo(), Path);
110private static SafeFileHandle Open(string path, Interop.Sys.OpenFlags flags, int mode, bool failForSymlink, out bool wasSymlink,
111Func<Interop.ErrorInfo, Interop.Sys.OpenFlags, string, Exception?>? createOpenException)
115SafeFileHandle handle = Interop.Sys.Open(path, flags, mode);
120Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
123if (failForSymlink && error.Error == Interop.Error.ELOOP)
134if (error.Error == Interop.Error.EISDIR)
136error = Interop.Error.EACCES.Info();
139Interop.CheckIo(error.Error, path);
156Interop.Sys.Unlink(_path); // ignore errors; it's valid that the path may no longer exist
166Interop.Sys.FLock(handle, Interop.Sys.LockOperations.LOCK_UN); // ignore any errors
171return Interop.Sys.Close(handle) == 0;
189Interop.Sys.PipeFlags flags = Interop.Sys.PipeFlags.O_CLOEXEC;
192flags |= Interop.Sys.PipeFlags.O_NONBLOCK_READ;
197flags |= Interop.Sys.PipeFlags.O_NONBLOCK_WRITE;
204if (Interop.Sys.Pipe(fds, flags) != 0)
206Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
209throw Interop.GetExceptionForIoErrno(error);
212readFd = fds[Interop.Sys.ReadEndOfPipe];
213writeFd = fds[Interop.Sys.WriteEndOfPipe];
236Func<Interop.ErrorInfo, Interop.Sys.OpenFlags, string, Exception?>? createOpenException = null)
242Func<Interop.ErrorInfo, Interop.Sys.OpenFlags, string, Exception?>? createOpenException = null)
249Func<Interop.ErrorInfo, Interop.Sys.OpenFlags, string, Exception?>? createOpenException = null)
252Interop.Sys.OpenFlags openFlags = PreOpenConfigurationFromOptions(mode, access, share, options, failForSymlink);
295private static Interop.Sys.OpenFlags PreOpenConfigurationFromOptions(FileMode mode, FileAccess access, FileShare share, FileOptions options, bool failForSymlink)
298Interop.Sys.OpenFlags flags = default;
301flags |= Interop.Sys.OpenFlags.O_NOFOLLOW;
313flags |= Interop.Sys.OpenFlags.O_TRUNC;
319flags |= Interop.Sys.OpenFlags.O_CREAT;
323flags |= Interop.Sys.OpenFlags.O_CREAT;
326flags |= Interop.Sys.OpenFlags.O_TRUNC;
331flags |= (Interop.Sys.OpenFlags.O_CREAT | Interop.Sys.OpenFlags.O_EXCL);
339flags |= Interop.Sys.OpenFlags.O_RDONLY;
343flags |= Interop.Sys.OpenFlags.O_RDWR;
347flags |= Interop.Sys.OpenFlags.O_WRONLY;
354flags |= Interop.Sys.OpenFlags.O_CLOEXEC;
366flags |= Interop.Sys.OpenFlags.O_SYNC;
375Interop.Sys.FileStatus status = default;
387if ((status.Mode & Interop.Sys.FileTypes.S_IFMT) == Interop.Sys.FileTypes.S_IFDIR)
389throw Interop.GetExceptionForIoErrno(Interop.Error.EACCES.Info(), path);
392if ((status.Mode & Interop.Sys.FileTypes.S_IFMT) == Interop.Sys.FileTypes.S_IFREG)
401Debug.Assert(status.Size == 0 || Interop.Sys.LSeek(this, 0, Interop.Sys.SeekWhence.SEEK_CUR) >= 0);
416Interop.Sys.LockOperations lockOperation = (share == FileShare.None) ? Interop.Sys.LockOperations.LOCK_EX : Interop.Sys.LockOperations.LOCK_SH;
417if (CanLockTheFile(lockOperation, access) && !(_isLocked = Interop.Sys.FLock(this, lockOperation | Interop.Sys.LockOperations.LOCK_NB) >= 0))
423Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
424if (errorInfo.Error == Interop.Error.EWOULDBLOCK)
426throw Interop.GetExceptionForIoErrno(errorInfo, path);
443Interop.Sys.FileStatus pathStatus;
444if (Interop.Sys.Stat(path, out pathStatus) < 0)
449Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
451if (error.Error == Interop.Error.ENOENT)
456throw Interop.GetExceptionForIoErrno(error, path);
471Interop.Sys.FileAdvice fadv =
472(options & FileOptions.RandomAccess) != 0 ? Interop.Sys.FileAdvice.POSIX_FADV_RANDOM :
473(options & FileOptions.SequentialScan) != 0 ? Interop.Sys.FileAdvice.POSIX_FADV_SEQUENTIAL :
477FileStreamHelpers.CheckFileCall(Interop.Sys.PosixFAdvise(this, 0, 0, fadv), path,
485if (Interop.Sys.FTruncate(this, 0) < 0)
487Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
488if (errorInfo.Error != Interop.Error.EBADF && errorInfo.Error != Interop.Error.EINVAL)
493throw Interop.GetExceptionForIoErrno(errorInfo, path);
498if (preallocationSize > 0 && Interop.Sys.FAllocate(this, 0, preallocationSize) < 0)
500Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
503if (errorInfo.Error == Interop.Error.EFBIG ||
504errorInfo.Error == Interop.Error.ENOSPC)
510Interop.Sys.Unlink(path);
512throw new IOException(SR.Format(errorInfo.Error == Interop.Error.EFBIG
522private bool CanLockTheFile(Interop.Sys.LockOperations lockOperation, FileAccess access)
524Debug.Assert(lockOperation == Interop.Sys.LockOperations.LOCK_EX || lockOperation == Interop.Sys.LockOperations.LOCK_SH);
531return Interop.Sys.FileSystemSupportsLocking(this, lockOperation, accessWrite: (access & FileAccess.Write) != 0);
534private void FStatCheckIO(string path, ref Interop.Sys.FileStatus status, ref bool statusHasValue)
538if (Interop.Sys.FStat(this, out status) != 0)
540Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
541throw Interop.GetExceptionForIoErrno(error, path);
556_canSeek = canSeek = Interop.Sys.LSeek(this, 0, Interop.Sys.SeekWhence.SEEK_CUR) >= 0 ? NullableBool.True : NullableBool.False;
564int result = Interop.Sys.FStat(this, out Interop.Sys.FileStatus status);
567Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
568throw Interop.GetExceptionForIoErrno(error, Path);
574private static FileHandleType MapUnixFileTypeToFileType(Interop.Sys.FileStatus status)
575=> (status.Mode & Interop.Sys.FileTypes.S_IFMT) switch
577Interop.Sys.FileTypes.S_IFREG => FileHandleType.RegularFile,
578Interop.Sys.FileTypes.S_IFDIR => FileHandleType.Directory,
579Interop.Sys.FileTypes.S_IFLNK => FileHandleType.SymbolicLink,
580Interop.Sys.FileTypes.S_IFIFO => FileHandleType.Pipe,
581Interop.Sys.FileTypes.S_IFSOCK => FileHandleType.Socket,
582Interop.Sys.FileTypes.S_IFCHR => FileHandleType.CharacterDevice,
583Interop.Sys.FileTypes.S_IFBLK => FileHandleType.BlockDevice,
589int result = Interop.Sys.FStat(this, out Interop.Sys.FileStatus status);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\CalendarData.Icu.cs (4)
102count = Interop.Globalization.GetCalendars(localeName, calendars, calendars.Length);
127return Interop.CallStringMethod(
132return Interop.Globalization.GetCalendarInfo(locale, id, type, bufferPtr, buffer.Length);
436return Interop.Globalization.EnumCalendarInfo(&EnumCalendarInfoCallback, localeName, calendarId, dataType, (IntPtr)callbackContext);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\CalendarData.Nls.cs (8)
30return Interop.Kernel32.GetCalendarInfoEx(localeName, (uint)calendar, IntPtr.Zero, calType | CAL_RETURN_NUMBER, IntPtr.Zero, 0, out data) != 0;
40int ret = Interop.Kernel32.GetCalendarInfoEx(localeName, (uint)calendar, IntPtr.Zero, calType, (IntPtr)buffer, BUFFER_LENGTH, IntPtr.Zero);
63private static unsafe Interop.BOOL EnumCalendarInfoCallback(char* lpCalendarInfoString, uint calendar, IntPtr pReserved, void* lParam)
77return Interop.BOOL.TRUE;
81return Interop.BOOL.FALSE;
95private static unsafe Interop.BOOL EnumCalendarsCallback(char* lpCalendarInfoString, uint calendar, IntPtr reserved, void* lParam)
104return Interop.BOOL.TRUE;
108return Interop.BOOL.FALSE;
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\CompareInfo.Icu.cs (25)
63return Interop.Globalization.CompareString(_sortHandle, pString1, string1.Length, pString2, string2.Length, options);
92return Interop.Globalization.IndexOf(_sortHandle, pTarget, target.Length, pSource, source.Length, options, matchLengthPtr);
94return Interop.Globalization.LastIndexOf(_sortHandle, pTarget, target.Length, pSource, source.Length, options, matchLengthPtr);
213return Interop.Globalization.IndexOf(_sortHandle, b, target.Length, a, source.Length, options, matchLengthPtr);
215return Interop.Globalization.LastIndexOf(_sortHandle, b, target.Length, a, source.Length, options, matchLengthPtr);
307return Interop.Globalization.IndexOf(_sortHandle, b, target.Length, a, source.Length, options, matchLengthPtr);
309return Interop.Globalization.LastIndexOf(_sortHandle, b, target.Length, a, source.Length, options, matchLengthPtr);
338return Interop.Globalization.StartsWith(_sortHandle, pPrefix, prefix.Length, pSource, source.Length, options, matchLengthPtr);
421return Interop.Globalization.StartsWith(_sortHandle, bp, prefix.Length, ap, source.Length, options, matchLengthPtr);
493return Interop.Globalization.StartsWith(_sortHandle, bp, prefix.Length, ap, source.Length, options, matchLengthPtr);
522return Interop.Globalization.EndsWith(_sortHandle, pSuffix, suffix.Length, pSource, source.Length, options, matchLengthPtr);
606return Interop.Globalization.EndsWith(_sortHandle, bp, suffix.Length, ap, source.Length, options, matchLengthPtr);
678return Interop.Globalization.EndsWith(_sortHandle, bp, suffix.Length, ap, source.Length, options, matchLengthPtr);
713sortKeyLength = Interop.Globalization.GetSortKey(_sortHandle, pSource, source.Length, null, 0, options);
730if (Interop.Globalization.GetSortKey(_sortHandle, pSource, source.Length, pSortKey, sortKeyLength, options) != sortKeyLength)
769actualSortKeyLength = Interop.Globalization.GetSortKey(_sortHandle, pSource, source.Length, pDest, destination.Length, options);
815return Interop.Globalization.GetSortKey(_sortHandle, pSource, source.Length, null, 0, options);
882sortKeyLength = Interop.Globalization.GetSortKey(_sortHandle, pSource, source.Length, pSortKey, sortKey.Length, options);
905sortKeyLength = Interop.Globalization.GetSortKey(_sortHandle, pSource, source.Length, pSortKey, sortKey.Length, options);
949int sortVersion = Interop.Globalization.GetSortVersion(_sortHandle);
969Interop.Globalization.ResultCode resultCode = Interop.Globalization.GetSortHandle(sortName, out result);
971if (resultCode == Interop.Globalization.ResultCode.OutOfMemory)
973else if (resultCode != Interop.Globalization.ResultCode.Success)
982Interop.Globalization.CloseSortHandle(result);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\CompareInfo.Nls.cs (25)
27int ret = Interop.Kernel32.LCMapStringEx(cultureName, Interop.Kernel32.LCMAP_SORTHANDLE, null, 0, &handle, IntPtr.Size, null, null, IntPtr.Zero);
35ret = Interop.Kernel32.LCMapStringEx(null, Interop.Kernel32.LCMAP_HASH, &a, 1, &hashValue, sizeof(int), null, null, handle);
61int ret = Interop.Kernel32.FindStringOrdinal(
67bIgnoreCase ? Interop.BOOL.TRUE : Interop.BOOL.FALSE);
72Debug.Assert(ret >= 0 || Marshal.GetLastPInvokeError() == Interop.Errors.ERROR_SUCCESS);
128int sortKeyLength = Interop.Kernel32.LCMapStringEx(_sortHandle != IntPtr.Zero ? null : _sortName,
150if (Interop.Kernel32.LCMapStringEx(_sortHandle != IntPtr.Zero ? null : _sortName,
187int result = Interop.Kernel32.CompareStringOrdinal(char1, count1, char2, count2, bIgnoreCase: true);
225int result = Interop.Kernel32.CompareStringEx(
276int result = Interop.Kernel32.FindNLSStringEx(
291Debug.Assert(result >= 0 || Marshal.GetLastPInvokeError() == Interop.Errors.ERROR_SUCCESS);
383int sortKeyLength = Interop.Kernel32.LCMapStringEx(_sortHandle != IntPtr.Zero ? null : _sortName,
397if (Interop.Kernel32.LCMapStringEx(_sortHandle != IntPtr.Zero ? null : _sortName,
445actualSortKeyLength = Interop.Kernel32.LCMapStringEx(_sortHandle != IntPtr.Zero ? null : _sortName,
460if (Marshal.GetLastPInvokeError() == Interop.Errors.ERROR_INSUFFICIENT_BUFFER)
497sortKeyLength = Interop.Kernel32.LCMapStringEx(_sortHandle != IntPtr.Zero ? null : _sortName,
525return Interop.Kernel32.IsNLSDefinedString(Interop.Kernel32.COMPARE_STRING, 0, IntPtr.Zero, pText, text.Length);
575Interop.Kernel32.NlsVersionInfoEx nlsVersion = default;
576nlsVersion.dwNLSVersionInfoSize = sizeof(Interop.Kernel32.NlsVersionInfoEx);
577Interop.Kernel32.GetNLSVersionEx(Interop.Kernel32.COMPARE_STRING, _sortName, &nlsVersion);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\CultureData.Icu.cs (9)
176if (!Interop.Globalization.GetLocaleName(localeName, buffer, ICU_ULOC_FULLNAME_CAPACITY))
200if (!Interop.Globalization.GetDefaultLocaleName(buffer, ICU_ULOC_FULLNAME_CAPACITY))
242bool result = Interop.Globalization.GetLocaleInfoString(localeName, (uint)type, buffer, ICU_ULOC_KEYWORD_AND_VALUES_CAPACITY, uiCultureName);
267bool result = Interop.Globalization.GetLocaleInfoInt(_sWindowsName, (uint)type, ref value);
284bool result = Interop.Globalization.GetLocaleInfoGroupingSizes(_sWindowsName, (uint)type, ref primaryGroupingSize, ref secondaryGroupingSize);
321bool result = Interop.Globalization.GetLocaleTimeFormat(_sWindowsName, shortFormat, buffer, ICU_ULOC_KEYWORD_AND_VALUES_CAPACITY);
361return Interop.Globalization.IsPredefinedLocale(name);
537bufferLength = Interop.Globalization.GetLocales(null, 0);
555bufferLength = Interop.Globalization.GetLocales(chars, bufferLength);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\CultureData.Nls.cs (37)
34field |= Interop.Kernel32.LOCALE_RETURN_NUMBER;
44return Interop.Kernel32.GetLocaleInfoEx(lpLocaleName, lcType, lpLCData, cchData);
72lctype |= Interop.Kernel32.LOCALE_NOUSEROVERRIDE;
91return GetLocaleInfoExInt(name, Interop.Kernel32.LOCALE_ICONSTRUCTEDLOCALE) != 1;
98return ReescapeWin32String(GetLocaleInfoFromLCType(_sRealName, Interop.Kernel32.LOCALE_STIMEFORMAT, _bUseOverrides));
106int result = GetLocaleInfoExInt(_sRealName, Interop.Kernel32.LOCALE_IFIRSTDAYOFWEEK | (!_bUseOverrides ? Interop.Kernel32.LOCALE_NOUSEROVERRIDE : 0));
126Interop.Kernel32.EnumSystemLocalesEx(&EnumSystemLocalesProc, Interop.Kernel32.LOCALE_SPECIFICDATA | Interop.Kernel32.LOCALE_SUPPLEMENTAL, &context, IntPtr.Zero);
181lctype |= Interop.Kernel32.LOCALE_NOUSEROVERRIDE;
348private static unsafe Interop.BOOL EnumSystemLocalesProc(char* lpLocaleString, uint flags, void* contextHandle)
354string? regionName = GetLocaleInfoEx(cultureName, Interop.Kernel32.LOCALE_SISO3166CTRYNAME);
358return Interop.BOOL.FALSE; // we found a match, then stop the enumeration
361return Interop.BOOL.TRUE;
365return Interop.BOOL.FALSE;
371private static unsafe Interop.BOOL EnumAllSystemLocalesProc(char* lpLocaleString, uint flags, void* contextHandle)
376return Interop.BOOL.TRUE;
380return Interop.BOOL.FALSE;
392private static unsafe Interop.BOOL EnumTimeCallback(char* lpTimeFormatString, void* lParam)
397return Interop.BOOL.TRUE;
401return Interop.BOOL.FALSE;
411Interop.Kernel32.EnumTimeFormatsEx(&EnumTimeCallback, localeName, dwFlags, &data);
426uint lcType = (dwFlags == Interop.Kernel32.TIME_NOSECONDS) ? Interop.Kernel32.LOCALE_SSHORTTIME : Interop.Kernel32.LOCALE_STIMEFORMAT;
449return Interop.Kernel32.LocaleNameToLCID(cultureName, Interop.Kernel32.LOCALE_ALLOW_NEUTRAL_NAMES);
468flags |= Interop.Kernel32.LOCALE_NEUTRALDATA | Interop.Kernel32.LOCALE_SPECIFICDATA;
474flags |= Interop.Kernel32.LOCALE_NEUTRALDATA;
479flags |= Interop.Kernel32.LOCALE_SPECIFICDATA;
484flags |= Interop.Kernel32.LOCALE_SUPPLEMENTAL;
489flags |= Interop.Kernel32.LOCALE_SUPPLEMENTAL;
497Interop.Kernel32.EnumSystemLocalesEx(&EnumAllSystemLocalesProc, flags, &context, IntPtr.Zero);
525Interop.Kernel32.EnumSystemLocalesEx(&EnumAllSystemLocalesProc, Interop.Kernel32.LOCALE_REPLACEMENT, &context, IntPtr.Zero);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\IdnMapping.Icu.cs (9)
27actualLength = Interop.Globalization.ToAscii(flags, unicode, count, outputStack, estimatedLength);
35actualLength = Interop.Globalization.ToAscii(flags, unicode, count, Span<char>.Empty, 0);
43actualLength = Interop.Globalization.ToAscii(flags, unicode, count, outputHeap, actualLength);
60int actualLength = Interop.Globalization.ToAscii(flags, unicode, unicode.Length, destination, destination.Length);
104int realLen = Interop.Globalization.ToUnicode(flags, ascii, ascii.Length, output, output.Length);
131int actualLength = Interop.Globalization.ToUnicode(flags, ascii, ascii.Length, destination, destination.Length);
153(AllowUnassigned ? Interop.Globalization.AllowUnassigned : 0) |
154(UseStd3AsciiRules ? Interop.Globalization.UseStd3AsciiRules : 0);
168if ((flags & Interop.Globalization.UseStd3AsciiRules) == 0)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\IdnMapping.Nls.cs (11)
21int length = Interop.Normaliz.IdnToAscii(flags, unicode, count, Span<char>.Empty, 0);
46int length = Interop.Normaliz.IdnToAscii(flags, unicode, unicode.Length, output, output.Length);
63int length = Interop.Normaliz.IdnToAscii(flags, unicode, unicode.Length, Span<char>.Empty, 0);
76int actualLength = Interop.Normaliz.IdnToAscii(flags, unicode, unicode.Length, destination, destination.Length);
95int length = Interop.Normaliz.IdnToUnicode(flags, ascii, count, Span<char>.Empty, 0);
120int length = Interop.Normaliz.IdnToUnicode(flags, ascii, ascii.Length, output, output.Length);
137int length = Interop.Normaliz.IdnToUnicode(flags, ascii, ascii.Length, Span<char>.Empty, 0);
150int actualLength = Interop.Normaliz.IdnToUnicode(flags, ascii, ascii.Length, destination, destination.Length);
165(AllowUnassigned ? Interop.Normaliz.IDN_ALLOW_UNASSIGNED : 0) |
166(UseStd3AsciiRules ? Interop.Normaliz.IDN_USE_STD3_ASCII_RULES : 0);
177lastError == Interop.Errors.ERROR_INVALID_NAME ? SR.Argument_IdnIllegalName :
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\Normalization.Icu.cs (4)
35ret = Interop.Globalization.IsNormalized(normalizationForm, pInput, source.Length);
78realLen = Interop.Globalization.NormalizeString(normalizationForm, pInput, strInput.Length, pDest, buffer.Length);
149realLen = Interop.Globalization.NormalizeString(normalizationForm, pInput, source.Length, pDest, destination.Length);
188realLen = Interop.Globalization.NormalizeString(normalizationForm, pInput, source.Length, null, 0);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\Normalization.Nls.cs (24)
21Interop.BOOL result;
24result = Interop.Normaliz.IsNormalizedString(normalizationForm, pInput, source.Length);
32return result != Interop.BOOL.FALSE;
65realLength = Interop.Normaliz.NormalizeString(normalizationForm, pInput, strInput.Length, pDest, buffer.Length);
71case Interop.Errors.ERROR_SUCCESS:
78case Interop.Errors.ERROR_INSUFFICIENT_BUFFER:
92case Interop.Errors.ERROR_INVALID_PARAMETER:
93case Interop.Errors.ERROR_NO_UNICODE_TRANSLATION:
97case Interop.Errors.ERROR_NOT_ENOUGH_MEMORY:
136realLength = Interop.Normaliz.NormalizeString(normalizationForm, pInput, source.Length, pDest, destination.Length);
142case Interop.Errors.ERROR_SUCCESS:
147case Interop.Errors.ERROR_INSUFFICIENT_BUFFER:
151case Interop.Errors.ERROR_INVALID_PARAMETER:
152case Interop.Errors.ERROR_NO_UNICODE_TRANSLATION:
156case Interop.Errors.ERROR_NOT_ENOUGH_MEMORY:
179realLength = Interop.Normaliz.NormalizeString(normalizationForm, pInput, source.Length, null, 0);
185case Interop.Errors.ERROR_SUCCESS:
188case Interop.Errors.ERROR_INVALID_PARAMETER:
189case Interop.Errors.ERROR_NO_UNICODE_TRANSLATION:
193case Interop.Errors.ERROR_NOT_ENOUGH_MEMORY:
208case Interop.Errors.ERROR_SUCCESS:
211case Interop.Errors.ERROR_INVALID_PARAMETER:
212case Interop.Errors.ERROR_NO_UNICODE_TRANSLATION:
215case Interop.Errors.ERROR_NOT_ENOUGH_MEMORY:
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\TextInfo.Icu.cs (3)
27Interop.Globalization.ChangeCaseInvariant(src, srcLen, dstBuffer, dstBufferCapacity, bToUpper);
37Interop.Globalization.ChangeCaseTurkish(src, srcLen, dstBuffer, dstBufferCapacity, bToUpper);
41Interop.Globalization.ChangeCase(src, srcLen, dstBuffer, dstBufferCapacity, bToUpper);
src\runtime\src\libraries\System.Private.CoreLib\src\System\IO\FileStatus.Unix.cs (52)
29private Interop.Sys.FileStatus _fileCache;
44return EntryExists && (_fileCache.UserFlags & (uint)Interop.Sys.UserFlags.UF_HIDDEN) == (uint)Interop.Sys.UserFlags.UF_HIDDEN;
106if (_fileCache.Uid == Interop.Sys.GetEUid())
118if (Interop.Sys.IsMemberOfGroup(_fileCache.Gid))
138return EntryExists && (_fileCache.Mode & Interop.Sys.FileTypes.S_IFMT) == Interop.Sys.FileTypes.S_IFLNK;
162if (!Interop.Sys.SupportsHiddenFlag)
246if (Interop.Sys.CanSetHiddenFlag)
251uint flags = hidden ? _fileCache.UserFlags | (uint)Interop.Sys.UserFlags.UF_HIDDEN :
252_fileCache.UserFlags & ~(uint)Interop.Sys.UserFlags.UF_HIDDEN;
253int rv = handle is not null ? Interop.Sys.FChflags(handle, flags) :
254Interop.Sys.LChflags(path!, flags);
255Interop.CheckIo(rv, path, asDirectory);
277int rv = handle is not null ? Interop.Sys.FChMod(handle, newMode) :
278Interop.Sys.ChMod(path!, newMode);
279Interop.CheckIo(rv, path, asDirectory);
304if ((_fileCache.Flags & Interop.Sys.FileStatusFlags.HasBirthTime) != 0)
392Interop.Sys.TimeSpec* buf = stackalloc Interop.Sys.TimeSpec[2];
419? Interop.Sys.FUTimens(handle, buf)
420: Interop.Sys.UTimensat(path!, buf);
421Interop.CheckIo(rv, path, asDirectory);
431bool updateCreationTime = checkCreationTime && (_fileCache.Flags & Interop.Sys.FileStatusFlags.HasBirthTime) != 0 &&
438Interop.Error error = SetCreationTimeCore(handle, path, _fileCache.BirthTime, _fileCache.BirthTimeNsec);
439if (error != Interop.Error.SUCCESS && error != Interop.Error.ENOTSUP)
441Interop.CheckIo(error, path, asDirectory);
486int rv = handle is not null ? Interop.Sys.FChMod(handle, (int)mode)
487: Interop.Sys.ChMod(path!, (int)mode);
488Interop.CheckIo(rv, path);
506Interop.Sys.FStat(handle, out _fileCache) :
507Interop.Sys.LStat(Path.TrimEndingDirectorySeparator(path), out _fileCache);
511Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
515case Interop.Error.ENOENT:
518case Interop.Error.ENOTDIR:
531int fileType = _fileCache.Mode & Interop.Sys.FileTypes.S_IFMT;
532bool isDirectory = fileType == Interop.Sys.FileTypes.S_IFDIR;
534if (fileType == Interop.Sys.FileTypes.S_IFLNK)
536if (Interop.Sys.Stat(path, out Interop.Sys.FileStatus target) == 0)
538isDirectory = (target.Mode & Interop.Sys.FileTypes.S_IFMT) == Interop.Sys.FileTypes.S_IFDIR;
541_fileCache.Mode = Interop.Sys.FileTypes.S_IFLNK | (target.Mode & (int)FileSystem.ValidUnixFileModes);
579throw Interop.GetExceptionForIoErrno(new Interop.ErrorInfo(errno), new string(path));
590Interop.Error error = _state == InitializedNotExistsNotADir ? Interop.Error.ENOTDIR : Interop.Error.ENOENT;
591throw Interop.GetExceptionForIoErrno(new Interop.ErrorInfo(error), path);
src\runtime\src\libraries\System.Private.CoreLib\src\System\IO\FileSystem.Unix.cs (122)
51Interop.CheckIo(Interop.Sys.CopyFile(src, dst, fileLength));
54private static Exception? CreateOpenExceptionForCopyFile(Interop.ErrorInfo error, Interop.Sys.OpenFlags flags, string path)
57if (error.Error == Interop.Error.EEXIST && DirectoryExists(path))
77if (Interop.Sys.Link(sourceFullPath, destFullPath) >= 0)
87Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
88if (errorInfo.Error == Interop.Error.EXDEV || // rename fails across devices / mount points
89errorInfo.Error == Interop.Error.EACCES ||
90errorInfo.Error == Interop.Error.EPERM || // permissions might not allow creating hard links even if a copy would work
91errorInfo.Error == Interop.Error.EOPNOTSUPP || // links aren't supported by the source file system
92errorInfo.Error == Interop.Error.EMLINK || // too many hard links to the source file
93errorInfo.Error == Interop.Error.ENOSYS) // the file system doesn't support link
101if (errorInfo.Error == Interop.Error.ENOENT)
105throw Interop.GetExceptionForIoErrno(errorInfo, destFullPath, isDirError: true);
109throw Interop.GetExceptionForIoErrno(errorInfo, sourceFullPath);
112else if (errorInfo.Error == Interop.Error.EEXIST)
114throw Interop.GetExceptionForIoErrno(errorInfo, destFullPath);
117throw Interop.GetExceptionForIoErrno(errorInfo);
126Interop.CheckIo(Interop.Sys.LStat(sourceFullPath, out Interop.Sys.FileStatus sourceStat), sourceFullPath);
129if ((sourceStat.Mode & Interop.Sys.FileTypes.S_IFMT) == Interop.Sys.FileTypes.S_IFDIR)
134Interop.Sys.FileStatus destStat;
135if (Interop.Sys.LStat(destFullPath, out destStat) == 0)
138if ((destStat.Mode & Interop.Sys.FileTypes.S_IFMT) == Interop.Sys.FileTypes.S_IFDIR)
154if (Interop.Sys.Unlink(destBackupFullPath) != 0)
156Interop.ErrorInfo errno = Interop.Sys.GetLastErrorInfo();
157if (errno.Error != Interop.Error.ENOENT)
159throw Interop.GetExceptionForIoErrno(errno, destBackupFullPath);
170if (Interop.Sys.Stat(destFullPath, out _) != 0)
172Interop.ErrorInfo errno = Interop.Sys.GetLastErrorInfo();
173if (errno.Error == Interop.Error.ENOENT)
175throw Interop.GetExceptionForIoErrno(errno, destBackupFullPath);
181Interop.CheckIo(Interop.Sys.Rename(sourceFullPath, destFullPath));
195if (Interop.Sys.Rename(sourceFullPath, destFullPath) < 0)
197Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
198if (errorInfo.Error == Interop.Error.EXDEV) // rename fails across devices / mount points
205throw Interop.GetExceptionForIoErrno(errorInfo, destFullPath);
224Interop.Sys.FileStatus sourceStat, destStat;
225if (Interop.Sys.LStat(sourceFullPath, out sourceStat) == 0 && // source file exists
226(Interop.Sys.LStat(destFullPath, out destStat) != 0 || // dest file does not exist
229Interop.Sys.Rename(sourceFullPath, destFullPath) == 0) // try the rename
241if (Interop.Sys.Unlink(fullPath) < 0)
243Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
246case Interop.Error.ENOENT:
252throw Interop.GetExceptionForIoErrno(errorInfo, fullPath, true);
255case Interop.Error.EROFS:
259Interop.ErrorInfo fileExistsError;
264fileExistsError.Error == Interop.Error.ENOENT)
269case Interop.Error.EISDIR:
270errorInfo = Interop.Error.EACCES.Info();
273throw Interop.GetExceptionForIoErrno(errorInfo, fullPath);
296int result = Interop.Sys.MkDir(path, (int)unixCreateMode);
302Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
303if (errorInfo.Error == Interop.Error.EEXIST && DirectoryExists(fullPath))
307else if (errorInfo.Error == Interop.Error.ENOENT) // Some parts of the path don't exist yet.
313throw Interop.GetExceptionForIoErrno(errorInfo, fullPath);
340int result = Interop.Sys.MkDir(mkdirPath, (int)DefaultUnixCreateDirectoryMode);
346Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
347if (errorInfo.Error == Interop.Error.ENOENT)
355else if (errorInfo.Error == Interop.Error.EEXIST)
363throw Interop.GetExceptionForIoErrno(errorInfo, mkdirPath.ToString());
373int result = Interop.Sys.MkDir(mkdirPath, (int)mode);
376Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
377if (errorInfo.Error == Interop.Error.EEXIST)
392throw Interop.GetExceptionForIoErrno(errorInfo, mkdirPath.ToString());
414if (!isCaseSensitiveRename && Interop.Sys.LStat(destNoDirectorySeparator, out Interop.Sys.FileStatus destFileStatus) >= 0)
419if (Interop.Sys.LStat(srcNoDirectorySeparator, out Interop.Sys.FileStatus sourceFileStatus) < 0)
438else if ((sourceFileStatus.Mode & Interop.Sys.FileTypes.S_IFMT) != Interop.Sys.FileTypes.S_IFDIR
449if (Interop.Sys.Rename(sourceFullPath, destNoDirectorySeparator) < 0)
451Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
454case Interop.Error.EACCES: // match Win32 exception
456case Interop.Error.ENOENT:
458case Interop.Error.ENOTDIR: // sourceFullPath exists and it's not a directory
461throw Interop.GetExceptionForIoErrno(errorInfo);
527if (Interop.Sys.RmDir(fullPath) < 0)
529Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
531if (errorInfo.Error == Interop.Error.ENOTEMPTY)
538else if (errorInfo.Error == Interop.Error.ENOENT)
546else if (DirectoryExists(fullPath, out Interop.ErrorInfo existErr))
549if (topLevel && errorInfo.Error == Interop.Error.ENOTDIR)
555else if (existErr.Error == Interop.Error.ENOENT)
561if (errorInfo.Error == Interop.Error.EACCES ||
562errorInfo.Error == Interop.Error.EPERM ||
563errorInfo.Error == Interop.Error.EROFS)
568throw Interop.GetExceptionForIoErrno(errorInfo, fullPath, isDirError: true);
587throw Interop.GetExceptionForIoErrno(new Interop.ErrorInfo(Interop.Error.ENOENT), fullPath);
606throw Interop.GetExceptionForIoErrno(new Interop.ErrorInfo(Interop.Error.ENOENT), fullPath);
662internal static string? GetLinkTarget(ReadOnlySpan<char> linkPath, bool isDirectory) => Interop.Sys.ReadLink(linkPath);
666Interop.CheckIo(Interop.Sys.SymLink(pathToTarget, path), path);
672Interop.CheckIo(Interop.Sys.Link(pathToTarget, path), path);
677ValueStringBuilder sb = new(stackalloc char[Interop.DefaultPathBufferSize]);
680string? linkTarget = Interop.Sys.ReadLink(linkPath);
683Interop.Error error = Interop.Sys.GetLastError();
686if (error == Interop.Error.EINVAL)
691throw Interop.GetExceptionForIoErrno(new Interop.ErrorInfo(error), linkPath, isDirectory);
713current = Interop.Sys.ReadLink(sb.AsSpan());
src\runtime\src\libraries\System.Private.CoreLib\src\System\IO\RandomAccess.Unix.cs (31)
23FileStreamHelpers.CheckFileCall(Interop.Sys.FTruncate(handle, length), handle.Path);
35result = Interop.Sys.ReadFromNonblocking(handle, bufPtr, buffer.Length);
40result = Interop.Sys.PRead(handle, bufPtr, buffer.Length, fileOffset);
42if (result == -1 && ShouldFallBackToNonOffsetSyscall(Interop.Sys.GetLastErrorInfo()))
50result = Interop.Sys.Read(handle, bufPtr, buffer.Length);
61Span<Interop.Sys.IOVector> vectors = buffers.Count <= IovStackThreshold ? stackalloc Interop.Sys.IOVector[IovStackThreshold] : new Interop.Sys.IOVector[buffers.Count];
71vectors[i] = new Interop.Sys.IOVector { Base = (byte*)memoryHandle.Pointer, Count = (UIntPtr)buffer.Length };
75fixed (Interop.Sys.IOVector* pinnedVectors = &MemoryMarshal.GetReference(vectors))
79result = Interop.Sys.PReadV(handle, pinnedVectors, buffers.Count, fileOffset);
81if (result == -1 && ShouldFallBackToNonOffsetSyscall(Interop.Sys.GetLastErrorInfo()))
89result = Interop.Sys.ReadV(handle, pinnedVectors, buffers.Count);
123bytesWritten = Interop.Sys.WriteToNonblocking(handle, bufPtr, bytesToWrite);
127bytesWritten = Interop.Sys.PWrite(handle, bufPtr, bytesToWrite, fileOffset);
129if (bytesWritten == -1 && ShouldFallBackToNonOffsetSyscall(Interop.Sys.GetLastErrorInfo()))
137bytesWritten = Interop.Sys.Write(handle, bufPtr, bytesToWrite);
177Span<Interop.Sys.IOVector> vectors = buffersCount <= IovStackThreshold ?
178stackalloc Interop.Sys.IOVector[IovStackThreshold].Slice(0, buffersCount) :
179new Interop.Sys.IOVector[buffersCount];
190vectors[i] = new Interop.Sys.IOVector { Base = (byte*)memoryHandle.Pointer, Count = (UIntPtr)buffer.Length };
198Span<Interop.Sys.IOVector> left = vectors.Slice(buffersOffset);
199fixed (Interop.Sys.IOVector* pinnedVectors = &MemoryMarshal.GetReference(left))
203bytesWritten = Interop.Sys.PWriteV(handle, pinnedVectors, left.Length, fileOffset);
205if (bytesWritten == -1 && ShouldFallBackToNonOffsetSyscall(Interop.Sys.GetLastErrorInfo()))
213bytesWritten = Interop.Sys.WriteV(handle, pinnedVectors, left.Length);
243Interop.Sys.IOVector current = vectors[buffersOffset];
244vectors[buffersOffset] = new Interop.Sys.IOVector
273private static bool ShouldFallBackToNonOffsetSyscall(Interop.ErrorInfo lastError)
274=> lastError.Error is Interop.Error.ENXIO or Interop.Error.ESPIPE;
src\runtime\src\libraries\System.Private.CoreLib\src\System\IO\SharedMemoryManager.Unix.cs (90)
24private static int SessionId { get; } = Interop.Sys.GetSid(Environment.ProcessId);
50Uid = IsUserScope ? Interop.Sys.GetEUid() : 0;
210Interop.Sys.FLock(fileHandle, Interop.Sys.LockOperations.LOCK_UN);
222if (Interop.Sys.FTruncate(fileHandle, (long)sharedDataTotalByteCount) < 0)
224Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
225throw Interop.GetExceptionForIoErrno(error, sharedMemoryFilePath);
230if (Interop.Sys.FStat(fileHandle, out Interop.Sys.FileStatus fileStatus) != 0)
232Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
233throw Interop.GetExceptionForIoErrno(error, sharedMemoryFilePath);
241if (Interop.Sys.FTruncate(fileHandle, (long)sharedDataTotalByteCount) < 0)
243Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
244throw Interop.GetExceptionForIoErrno(error, sharedMemoryFilePath);
255Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
256throw Interop.GetExceptionForIoErrno(errorInfo, sharedMemoryFilePath);
340Interop.Sys.FLock(_fileHandle, Interop.Sys.LockOperations.LOCK_UN);
355Interop.Sys.MUnmap((nint)_sharedDataHeader, _sharedDataTotalByteCount);
371Interop.Sys.Unlink(sharedMemoryFilePath);
373Interop.Sys.RmDir(sessionDirectoryPath);
422SafeFileHandle fd = Interop.Sys.Open(sharedMemoryFilePath, Interop.Sys.OpenFlags.O_RDWR | Interop.Sys.OpenFlags.O_CLOEXEC, 0);
423Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
428if (Interop.Sys.FStat(fd, out Interop.Sys.FileStatus fileStatus) != 0)
430error = Interop.Sys.GetLastErrorInfo();
432throw Interop.GetExceptionForIoErrno(error, sharedMemoryFilePath);
451if (error.Error != Interop.Error.ENOENT)
453throw Interop.GetExceptionForIoErrno(error, sharedMemoryFilePath);
468fd = Interop.Sys.Open(
470Interop.Sys.OpenFlags.O_RDWR | Interop.Sys.OpenFlags.O_CLOEXEC | Interop.Sys.OpenFlags.O_CREAT | Interop.Sys.OpenFlags.O_EXCL,
475error = Interop.Sys.GetLastErrorInfo();
476throw Interop.GetExceptionForIoErrno(error, sharedMemoryFilePath);
479int result = Interop.Sys.FChMod(fd, (int)permissionsMask);
483error = Interop.Sys.GetLastErrorInfo();
485Interop.Sys.Unlink(sharedMemoryFilePath);
486throw Interop.GetExceptionForIoErrno(error, sharedMemoryFilePath);
499int statResult = Interop.Sys.Stat(directoryPath, out Interop.Sys.FileStatus fileStatus);
501if (statResult != 0 && Interop.Sys.GetLastError() == Interop.Error.ENOENT)
540if (Interop.Sys.MkdTemp(tempPathPtr) == null)
543Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
544throw Interop.GetExceptionForIoErrno(error, tempPath);
561if (Interop.Sys.Rename(tempPath, directoryPath) == 0)
569statResult = Interop.Sys.Stat(directoryPath, out fileStatus);
573if (statResult != 0 || (fileStatus.Mode & Interop.Sys.FileTypes.S_IFDIR) == 0)
577Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
578if (error.Error != Interop.Error.ENOENT)
580throw Interop.GetExceptionForIoErrno(error, directoryPath);
627|| (createIfNotExist && Interop.Sys.ChMod(directoryPath, (int)permissionsMask) == 0))
652nint addr = Interop.Sys.MMap(
655Interop.Sys.MemoryMappedProtections.PROT_READ | Interop.Sys.MemoryMappedProtections.PROT_WRITE,
656Interop.Sys.MemoryMappedFlags.MAP_SHARED,
662Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
663throw Interop.GetExceptionForIoErrno(errorInfo, "Failed to memory map the file");
671Interop.Sys.LockOperations lockOperation = exclusive ? Interop.Sys.LockOperations.LOCK_EX : Interop.Sys.LockOperations.LOCK_SH;
674lockOperation |= Interop.Sys.LockOperations.LOCK_NB;
676int result = Interop.Sys.FLock(sharedLockFileHandle, lockOperation);
683Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
684if (errorInfo.Error == Interop.Error.EWOULDBLOCK)
689throw Interop.GetExceptionForIoErrno(errorInfo);
706Interop.Sys.MUnmap(addr, length);
728Interop.Sys.FLock(FileHandle, Interop.Sys.LockOperations.LOCK_UN);
762Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
763throw Interop.GetExceptionForIoErrno(error, SharedMemoryHelpers.SharedFilesPath);
777fd = Interop.Sys.Open(sharedMemoryDirectory, Interop.Sys.OpenFlags.O_RDONLY, 0);
780Interop.ErrorInfo error = Interop.Sys.GetLastErrorInfo();
782throw Interop.GetExceptionForIoErrno(error, sharedMemoryDirectory);
src\runtime\src\libraries\System.Private.CoreLib\src\System\IO\Strategies\FileStreamHelpers.Unix.cs (21)
23Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
24if (!(ignoreNotSupported && errorInfo.Error == Interop.Error.ENOTSUP))
26throw Interop.GetExceptionForIoErrno(errorInfo, path);
34CheckFileCall(Interop.Sys.LSeek(handle, offset, (Interop.Sys.SeekWhence)(int)origin), handle.Path); // SeekOrigin values are the same as Interop.libc.SeekWhence values
37throw Interop.GetExceptionForIoErrno(new Interop.ErrorInfo(Interop.Error.EINVAL), handle.Path);
42if (Interop.Sys.FSync(handle) < 0)
44Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
47case Interop.Error.EROFS:
48case Interop.Error.EINVAL:
49case Interop.Error.ENOTSUP:
54throw Interop.GetExceptionForIoErrno(errorInfo, handle.Path);
66CheckFileCall(Interop.Sys.LockFileRegion(handle, position, length, canWrite ? Interop.Sys.LockType.F_WRLCK : Interop.Sys.LockType.F_RDLCK), handle.Path);
76CheckFileCall(Interop.Sys.LockFileRegion(handle, position, length, Interop.Sys.LockType.F_UNLCK), handle.Path);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Threading\NamedMutex.Unix.cs (23)
269if (Interop.Sys.LowLevelCrossProcessMutex_Init(v) != 0)
271Interop.ErrorInfo errorInfo = Interop.Sys.GetLastErrorInfo();
272throw Interop.GetExceptionForIoErrno(errorInfo, SR.Arg_FailedToInitializePThreadMutex);
296public static nuint SharedDataSize { get; } = (nuint)Interop.Sys.LowLevelCrossProcessMutex_Size();
301Interop.Sys.LowLevelCrossProcessMutex_GetOwnerProcessAndThreadId(_sharedData, out uint ownerProcessId, out uint ownerThreadId);
308Interop.Sys.LowLevelCrossProcessMutex_SetOwnerProcessAndThreadId(
316get => Interop.Sys.LowLevelCrossProcessMutex_IsAbandoned(_sharedData);
317set => Interop.Sys.LowLevelCrossProcessMutex_SetAbandoned(_sharedData, value);
322Interop.Error lockResult = (Interop.Error)Interop.Sys.LowLevelCrossProcessMutex_Acquire(_sharedData, timeoutMilliseconds);
326Interop.Error.SUCCESS => MutexTryAcquireLockResult.AcquiredLock,
327Interop.Error.EBUSY => MutexTryAcquireLockResult.TimedOut,
328Interop.Error.ETIMEDOUT => MutexTryAcquireLockResult.TimedOut,
329Interop.Error.EOWNERDEAD => MutexTryAcquireLockResult.AcquiredLockButMutexWasAbandoned,
330Interop.Error.EAGAIN => throw new OutOfMemoryException(),
363Interop.Sys.LowLevelCrossProcessMutex_Release(_sharedData);
373Interop.Sys.LowLevelCrossProcessMutex_SetOwnerProcessAndThreadId(
378Interop.Sys.LowLevelCrossProcessMutex_Release(_sharedData);
388Interop.Sys.LowLevelCrossProcessMutex_Destroy(_sharedData);
453Interop.Sys.FLock(_sharedLockFileHandle, Interop.Sys.LockOperations.LOCK_UN);
src\runtime\src\libraries\System.Private.CoreLib\src\System\TimeZoneInfo.FullGlobalizationData.Unix.cs (13)
47GetDisplayName(UtcId, Interop.Globalization.TimeZoneDisplayNameType.Standard, uiCulture.Name, ref standardDisplayName);
92GetDisplayName(timeZoneId, Interop.Globalization.TimeZoneDisplayNameType.Standard, UICulture.Name, ref displayName);
97GetDisplayName(timeZoneId, Interop.Globalization.TimeZoneDisplayNameType.DaylightSavings, UICulture.Name, ref displayName);
101private static unsafe void GetDisplayName(string timeZoneId, Interop.Globalization.TimeZoneDisplayNameType nameType, string uiCulture, ref string? displayName)
109bool result = Interop.CallStringMethod(
118return Interop.Globalization.GetTimeZoneDisplayName(locale, id, type, bufferPtr, buffer.Length);
129result = Interop.CallStringMethod(
138return Interop.Globalization.GetTimeZoneDisplayName(locale, id, type, bufferPtr, buffer.Length);
177GetDisplayName(timeZoneId, Interop.Globalization.TimeZoneDisplayNameType.Generic, uiCulture.Name, ref genericName);
186GetDisplayName(timeZoneId, Interop.Globalization.TimeZoneDisplayNameType.GenericLocation, uiCulture.Name, ref genericLocationName);
193GetDisplayName(GmtId, Interop.Globalization.TimeZoneDisplayNameType.GenericLocation, uiCulture.Name, ref gmtLocationName);
203GetDisplayName(GmtId, Interop.Globalization.TimeZoneDisplayNameType.Generic, uiCulture.Name, ref gmtGenericName);
278GetDisplayName(timeZoneId, Interop.Globalization.TimeZoneDisplayNameType.ExemplarCity, uiCultureName, ref exemplarCityName);