2 * This file was automatically generated by make-map from Mono.Posix.dll.
9 using System.Runtime.InteropServices;
14 public sealed /* static */ class UnixConvert
16 private UnixConvert () {}
18 private const string LIB = "MonoPosixHelper";
20 private static void ThrowArgumentException (object value)
22 throw new ArgumentOutOfRangeException ("value", value,
23 Locale.GetText ("Current platform doesn't support this value."));
26 [DllImport (LIB, EntryPoint="Mono_Posix_FromError")]
27 private static extern int FromError (Error value, out Int32 rval);
29 public static bool TryFromError (Error value, out Int32 rval)
31 return FromError (value, out rval) == 0;
34 public static Int32 FromError (Error value)
37 if (FromError (value, out rval) == -1)
38 ThrowArgumentException (value);
42 [DllImport (LIB, EntryPoint="Mono_Posix_ToError")]
43 private static extern int ToError (Int32 value, out Error rval);
45 public static bool TryToError (Int32 value, out Error rval)
47 return ToError (value, out rval) == 0;
50 public static Error ToError (Int32 value)
53 if (ToError (value, out rval) == -1)
54 ThrowArgumentException (value);
58 [DllImport (LIB, EntryPoint="Mono_Posix_FromSyslogOptions")]
59 private static extern int FromSyslogOptions (SyslogOptions value, out Int32 rval);
61 public static bool TryFromSyslogOptions (SyslogOptions value, out Int32 rval)
63 return FromSyslogOptions (value, out rval) == 0;
66 public static Int32 FromSyslogOptions (SyslogOptions value)
69 if (FromSyslogOptions (value, out rval) == -1)
70 ThrowArgumentException (value);
74 [DllImport (LIB, EntryPoint="Mono_Posix_ToSyslogOptions")]
75 private static extern int ToSyslogOptions (Int32 value, out SyslogOptions rval);
77 public static bool TryToSyslogOptions (Int32 value, out SyslogOptions rval)
79 return ToSyslogOptions (value, out rval) == 0;
82 public static SyslogOptions ToSyslogOptions (Int32 value)
85 if (ToSyslogOptions (value, out rval) == -1)
86 ThrowArgumentException (value);
90 [DllImport (LIB, EntryPoint="Mono_Posix_FromSyslogFacility")]
91 private static extern int FromSyslogFacility (SyslogFacility value, out Int32 rval);
93 public static bool TryFromSyslogFacility (SyslogFacility value, out Int32 rval)
95 return FromSyslogFacility (value, out rval) == 0;
98 public static Int32 FromSyslogFacility (SyslogFacility value)
101 if (FromSyslogFacility (value, out rval) == -1)
102 ThrowArgumentException (value);
106 [DllImport (LIB, EntryPoint="Mono_Posix_ToSyslogFacility")]
107 private static extern int ToSyslogFacility (Int32 value, out SyslogFacility rval);
109 public static bool TryToSyslogFacility (Int32 value, out SyslogFacility rval)
111 return ToSyslogFacility (value, out rval) == 0;
114 public static SyslogFacility ToSyslogFacility (Int32 value)
117 if (ToSyslogFacility (value, out rval) == -1)
118 ThrowArgumentException (value);
122 [DllImport (LIB, EntryPoint="Mono_Posix_FromSyslogLevel")]
123 private static extern int FromSyslogLevel (SyslogLevel value, out Int32 rval);
125 public static bool TryFromSyslogLevel (SyslogLevel value, out Int32 rval)
127 return FromSyslogLevel (value, out rval) == 0;
130 public static Int32 FromSyslogLevel (SyslogLevel value)
133 if (FromSyslogLevel (value, out rval) == -1)
134 ThrowArgumentException (value);
138 [DllImport (LIB, EntryPoint="Mono_Posix_ToSyslogLevel")]
139 private static extern int ToSyslogLevel (Int32 value, out SyslogLevel rval);
141 public static bool TryToSyslogLevel (Int32 value, out SyslogLevel rval)
143 return ToSyslogLevel (value, out rval) == 0;
146 public static SyslogLevel ToSyslogLevel (Int32 value)
149 if (ToSyslogLevel (value, out rval) == -1)
150 ThrowArgumentException (value);
154 [DllImport (LIB, EntryPoint="Mono_Posix_FromOpenFlags")]
155 private static extern int FromOpenFlags (OpenFlags value, out Int32 rval);
157 public static bool TryFromOpenFlags (OpenFlags value, out Int32 rval)
159 return FromOpenFlags (value, out rval) == 0;
162 public static Int32 FromOpenFlags (OpenFlags value)
165 if (FromOpenFlags (value, out rval) == -1)
166 ThrowArgumentException (value);
170 [DllImport (LIB, EntryPoint="Mono_Posix_ToOpenFlags")]
171 private static extern int ToOpenFlags (Int32 value, out OpenFlags rval);
173 public static bool TryToOpenFlags (Int32 value, out OpenFlags rval)
175 return ToOpenFlags (value, out rval) == 0;
178 public static OpenFlags ToOpenFlags (Int32 value)
181 if (ToOpenFlags (value, out rval) == -1)
182 ThrowArgumentException (value);
186 [DllImport (LIB, EntryPoint="Mono_Posix_FromFilePermissions")]
187 private static extern int FromFilePermissions (FilePermissions value, out UInt32 rval);
189 public static bool TryFromFilePermissions (FilePermissions value, out UInt32 rval)
191 return FromFilePermissions (value, out rval) == 0;
194 public static UInt32 FromFilePermissions (FilePermissions value)
197 if (FromFilePermissions (value, out rval) == -1)
198 ThrowArgumentException (value);
202 [DllImport (LIB, EntryPoint="Mono_Posix_ToFilePermissions")]
203 private static extern int ToFilePermissions (UInt32 value, out FilePermissions rval);
205 public static bool TryToFilePermissions (UInt32 value, out FilePermissions rval)
207 return ToFilePermissions (value, out rval) == 0;
210 public static FilePermissions ToFilePermissions (UInt32 value)
212 FilePermissions rval;
213 if (ToFilePermissions (value, out rval) == -1)
214 ThrowArgumentException (value);
218 [DllImport (LIB, EntryPoint="Mono_Posix_FromFcntlCommand")]
219 private static extern int FromFcntlCommand (FcntlCommand value, out Int32 rval);
221 public static bool TryFromFcntlCommand (FcntlCommand value, out Int32 rval)
223 return FromFcntlCommand (value, out rval) == 0;
226 public static Int32 FromFcntlCommand (FcntlCommand value)
229 if (FromFcntlCommand (value, out rval) == -1)
230 ThrowArgumentException (value);
234 [DllImport (LIB, EntryPoint="Mono_Posix_ToFcntlCommand")]
235 private static extern int ToFcntlCommand (Int32 value, out FcntlCommand rval);
237 public static bool TryToFcntlCommand (Int32 value, out FcntlCommand rval)
239 return ToFcntlCommand (value, out rval) == 0;
242 public static FcntlCommand ToFcntlCommand (Int32 value)
245 if (ToFcntlCommand (value, out rval) == -1)
246 ThrowArgumentException (value);
250 [DllImport (LIB, EntryPoint="Mono_Posix_FromLockType")]
251 private static extern int FromLockType (LockType value, out Int16 rval);
253 public static bool TryFromLockType (LockType value, out Int16 rval)
255 return FromLockType (value, out rval) == 0;
258 public static Int16 FromLockType (LockType value)
261 if (FromLockType (value, out rval) == -1)
262 ThrowArgumentException (value);
266 [DllImport (LIB, EntryPoint="Mono_Posix_ToLockType")]
267 private static extern int ToLockType (Int16 value, out LockType rval);
269 public static bool TryToLockType (Int16 value, out LockType rval)
271 return ToLockType (value, out rval) == 0;
274 public static LockType ToLockType (Int16 value)
277 if (ToLockType (value, out rval) == -1)
278 ThrowArgumentException (value);
282 [DllImport (LIB, EntryPoint="Mono_Posix_FromSeekFlags")]
283 private static extern int FromSeekFlags (SeekFlags value, out Int16 rval);
285 public static bool TryFromSeekFlags (SeekFlags value, out Int16 rval)
287 return FromSeekFlags (value, out rval) == 0;
290 public static Int16 FromSeekFlags (SeekFlags value)
293 if (FromSeekFlags (value, out rval) == -1)
294 ThrowArgumentException (value);
298 [DllImport (LIB, EntryPoint="Mono_Posix_ToSeekFlags")]
299 private static extern int ToSeekFlags (Int16 value, out SeekFlags rval);
301 public static bool TryToSeekFlags (Int16 value, out SeekFlags rval)
303 return ToSeekFlags (value, out rval) == 0;
306 public static SeekFlags ToSeekFlags (Int16 value)
309 if (ToSeekFlags (value, out rval) == -1)
310 ThrowArgumentException (value);
314 [DllImport (LIB, EntryPoint="Mono_Posix_FromDirectoryNotifyFlags")]
315 private static extern int FromDirectoryNotifyFlags (DirectoryNotifyFlags value, out Int32 rval);
317 public static bool TryFromDirectoryNotifyFlags (DirectoryNotifyFlags value, out Int32 rval)
319 return FromDirectoryNotifyFlags (value, out rval) == 0;
322 public static Int32 FromDirectoryNotifyFlags (DirectoryNotifyFlags value)
325 if (FromDirectoryNotifyFlags (value, out rval) == -1)
326 ThrowArgumentException (value);
330 [DllImport (LIB, EntryPoint="Mono_Posix_ToDirectoryNotifyFlags")]
331 private static extern int ToDirectoryNotifyFlags (Int32 value, out DirectoryNotifyFlags rval);
333 public static bool TryToDirectoryNotifyFlags (Int32 value, out DirectoryNotifyFlags rval)
335 return ToDirectoryNotifyFlags (value, out rval) == 0;
338 public static DirectoryNotifyFlags ToDirectoryNotifyFlags (Int32 value)
340 DirectoryNotifyFlags rval;
341 if (ToDirectoryNotifyFlags (value, out rval) == -1)
342 ThrowArgumentException (value);
346 [DllImport (LIB, EntryPoint="Mono_Posix_FromPosixFadviseAdvice")]
347 private static extern int FromPosixFadviseAdvice (PosixFadviseAdvice value, out Int32 rval);
349 public static bool TryFromPosixFadviseAdvice (PosixFadviseAdvice value, out Int32 rval)
351 return FromPosixFadviseAdvice (value, out rval) == 0;
354 public static Int32 FromPosixFadviseAdvice (PosixFadviseAdvice value)
357 if (FromPosixFadviseAdvice (value, out rval) == -1)
358 ThrowArgumentException (value);
362 [DllImport (LIB, EntryPoint="Mono_Posix_ToPosixFadviseAdvice")]
363 private static extern int ToPosixFadviseAdvice (Int32 value, out PosixFadviseAdvice rval);
365 public static bool TryToPosixFadviseAdvice (Int32 value, out PosixFadviseAdvice rval)
367 return ToPosixFadviseAdvice (value, out rval) == 0;
370 public static PosixFadviseAdvice ToPosixFadviseAdvice (Int32 value)
372 PosixFadviseAdvice rval;
373 if (ToPosixFadviseAdvice (value, out rval) == -1)
374 ThrowArgumentException (value);
378 [DllImport (LIB, EntryPoint="Mono_Posix_FromPosixMadviseAdvice")]
379 private static extern int FromPosixMadviseAdvice (PosixMadviseAdvice value, out Int32 rval);
381 public static bool TryFromPosixMadviseAdvice (PosixMadviseAdvice value, out Int32 rval)
383 return FromPosixMadviseAdvice (value, out rval) == 0;
386 public static Int32 FromPosixMadviseAdvice (PosixMadviseAdvice value)
389 if (FromPosixMadviseAdvice (value, out rval) == -1)
390 ThrowArgumentException (value);
394 [DllImport (LIB, EntryPoint="Mono_Posix_ToPosixMadviseAdvice")]
395 private static extern int ToPosixMadviseAdvice (Int32 value, out PosixMadviseAdvice rval);
397 public static bool TryToPosixMadviseAdvice (Int32 value, out PosixMadviseAdvice rval)
399 return ToPosixMadviseAdvice (value, out rval) == 0;
402 public static PosixMadviseAdvice ToPosixMadviseAdvice (Int32 value)
404 PosixMadviseAdvice rval;
405 if (ToPosixMadviseAdvice (value, out rval) == -1)
406 ThrowArgumentException (value);
410 [DllImport (LIB, EntryPoint="Mono_Posix_FromSignum")]
411 private static extern int FromSignum (Signum value, out Int32 rval);
413 public static bool TryFromSignum (Signum value, out Int32 rval)
415 return FromSignum (value, out rval) == 0;
418 public static Int32 FromSignum (Signum value)
421 if (FromSignum (value, out rval) == -1)
422 ThrowArgumentException (value);
426 [DllImport (LIB, EntryPoint="Mono_Posix_ToSignum")]
427 private static extern int ToSignum (Int32 value, out Signum rval);
429 public static bool TryToSignum (Int32 value, out Signum rval)
431 return ToSignum (value, out rval) == 0;
434 public static Signum ToSignum (Int32 value)
437 if (ToSignum (value, out rval) == -1)
438 ThrowArgumentException (value);
442 [DllImport (LIB, EntryPoint="Mono_Posix_FromWaitOptions")]
443 private static extern int FromWaitOptions (WaitOptions value, out Int32 rval);
445 public static bool TryFromWaitOptions (WaitOptions value, out Int32 rval)
447 return FromWaitOptions (value, out rval) == 0;
450 public static Int32 FromWaitOptions (WaitOptions value)
453 if (FromWaitOptions (value, out rval) == -1)
454 ThrowArgumentException (value);
458 [DllImport (LIB, EntryPoint="Mono_Posix_ToWaitOptions")]
459 private static extern int ToWaitOptions (Int32 value, out WaitOptions rval);
461 public static bool TryToWaitOptions (Int32 value, out WaitOptions rval)
463 return ToWaitOptions (value, out rval) == 0;
466 public static WaitOptions ToWaitOptions (Int32 value)
469 if (ToWaitOptions (value, out rval) == -1)
470 ThrowArgumentException (value);
474 [DllImport (LIB, EntryPoint="Mono_Posix_FromAccessMode")]
475 private static extern int FromAccessMode (AccessMode value, out Int32 rval);
477 public static bool TryFromAccessMode (AccessMode value, out Int32 rval)
479 return FromAccessMode (value, out rval) == 0;
482 public static Int32 FromAccessMode (AccessMode value)
485 if (FromAccessMode (value, out rval) == -1)
486 ThrowArgumentException (value);
490 [DllImport (LIB, EntryPoint="Mono_Posix_ToAccessMode")]
491 private static extern int ToAccessMode (Int32 value, out AccessMode rval);
493 public static bool TryToAccessMode (Int32 value, out AccessMode rval)
495 return ToAccessMode (value, out rval) == 0;
498 public static AccessMode ToAccessMode (Int32 value)
501 if (ToAccessMode (value, out rval) == -1)
502 ThrowArgumentException (value);
506 [DllImport (LIB, EntryPoint="Mono_Posix_FromPathConf")]
507 private static extern int FromPathConf (PathConf value, out Int32 rval);
509 public static bool TryFromPathConf (PathConf value, out Int32 rval)
511 return FromPathConf (value, out rval) == 0;
514 public static Int32 FromPathConf (PathConf value)
517 if (FromPathConf (value, out rval) == -1)
518 ThrowArgumentException (value);
522 [DllImport (LIB, EntryPoint="Mono_Posix_ToPathConf")]
523 private static extern int ToPathConf (Int32 value, out PathConf rval);
525 public static bool TryToPathConf (Int32 value, out PathConf rval)
527 return ToPathConf (value, out rval) == 0;
530 public static PathConf ToPathConf (Int32 value)
533 if (ToPathConf (value, out rval) == -1)
534 ThrowArgumentException (value);
538 [DllImport (LIB, EntryPoint="Mono_Posix_FromSysConf")]
539 private static extern int FromSysConf (SysConf value, out Int32 rval);
541 public static bool TryFromSysConf (SysConf value, out Int32 rval)
543 return FromSysConf (value, out rval) == 0;
546 public static Int32 FromSysConf (SysConf value)
549 if (FromSysConf (value, out rval) == -1)
550 ThrowArgumentException (value);
554 [DllImport (LIB, EntryPoint="Mono_Posix_ToSysConf")]
555 private static extern int ToSysConf (Int32 value, out SysConf rval);
557 public static bool TryToSysConf (Int32 value, out SysConf rval)
559 return ToSysConf (value, out rval) == 0;
562 public static SysConf ToSysConf (Int32 value)
565 if (ToSysConf (value, out rval) == -1)
566 ThrowArgumentException (value);
570 [DllImport (LIB, EntryPoint="Mono_Posix_FromConfStr")]
571 private static extern int FromConfStr (ConfStr value, out Int32 rval);
573 public static bool TryFromConfStr (ConfStr value, out Int32 rval)
575 return FromConfStr (value, out rval) == 0;
578 public static Int32 FromConfStr (ConfStr value)
581 if (FromConfStr (value, out rval) == -1)
582 ThrowArgumentException (value);
586 [DllImport (LIB, EntryPoint="Mono_Posix_ToConfStr")]
587 private static extern int ToConfStr (Int32 value, out ConfStr rval);
589 public static bool TryToConfStr (Int32 value, out ConfStr rval)
591 return ToConfStr (value, out rval) == 0;
594 public static ConfStr ToConfStr (Int32 value)
597 if (ToConfStr (value, out rval) == -1)
598 ThrowArgumentException (value);
602 [DllImport (LIB, EntryPoint="Mono_Posix_FromLockFlags")]
603 private static extern int FromLockFlags (LockFlags value, out Int32 rval);
605 public static bool TryFromLockFlags (LockFlags value, out Int32 rval)
607 return FromLockFlags (value, out rval) == 0;
610 public static Int32 FromLockFlags (LockFlags value)
613 if (FromLockFlags (value, out rval) == -1)
614 ThrowArgumentException (value);
618 [DllImport (LIB, EntryPoint="Mono_Posix_ToLockFlags")]
619 private static extern int ToLockFlags (Int32 value, out LockFlags rval);
621 public static bool TryToLockFlags (Int32 value, out LockFlags rval)
623 return ToLockFlags (value, out rval) == 0;
626 public static LockFlags ToLockFlags (Int32 value)
629 if (ToLockFlags (value, out rval) == -1)
630 ThrowArgumentException (value);
634 [DllImport (LIB, EntryPoint="Mono_Posix_FromPollEvents")]
635 private static extern int FromPollEvents (PollEvents value, out Int16 rval);
637 public static bool TryFromPollEvents (PollEvents value, out Int16 rval)
639 return FromPollEvents (value, out rval) == 0;
642 public static Int16 FromPollEvents (PollEvents value)
645 if (FromPollEvents (value, out rval) == -1)
646 ThrowArgumentException (value);
650 [DllImport (LIB, EntryPoint="Mono_Posix_ToPollEvents")]
651 private static extern int ToPollEvents (Int16 value, out PollEvents rval);
653 public static bool TryToPollEvents (Int16 value, out PollEvents rval)
655 return ToPollEvents (value, out rval) == 0;
658 public static PollEvents ToPollEvents (Int16 value)
661 if (ToPollEvents (value, out rval) == -1)
662 ThrowArgumentException (value);
667 // Non-generated exports
670 // convert from octal representation.
671 public static FilePermissions ToFilePermissions (string value)
673 uint n = Convert.ToUInt32 (value, 8);
674 return ToFilePermissions (n);
677 public static readonly DateTime LocalUnixEpoch =
678 new DateTime (1970, 1, 1).ToLocalTime();
679 public static readonly long UtcOffset =
680 (long) (DateTime.Now.Subtract (DateTime.UtcNow).TotalSeconds);
682 public static DateTime ToDateTime (long time)
684 return FromTimeT (time);
687 public static long FromDateTime (DateTime time)
689 return ToTimeT (time);
692 public static DateTime FromTimeT (long time)
694 // Console.WriteLine ("** LocalUnixEpoch={0}; UtcOffset={1}; time={2}", LocalUnixEpoch, UtcOffset, time);
696 DateTime r = LocalUnixEpoch.AddSeconds (time + UtcOffset);
697 // Console.WriteLine ("** result={0}", r);
701 public static long ToTimeT (DateTime time)
703 return (long) time.Subtract (LocalUnixEpoch).TotalSeconds;
706 public static OpenFlags ToOpenFlags (FileMode mode, FileAccess access)
710 case FileMode.CreateNew:
711 flags = OpenFlags.O_CREAT | OpenFlags.O_EXCL;
713 case FileMode.Create:
714 flags = OpenFlags.O_CREAT | OpenFlags.O_TRUNC;
719 case FileMode.OpenOrCreate:
720 flags = OpenFlags.O_CREAT;
722 case FileMode.Truncate:
723 flags = OpenFlags.O_TRUNC;
725 case FileMode.Append:
726 flags = OpenFlags.O_APPEND;
729 throw new ArgumentException (Locale.GetText ("Unsupported mode value"), "mode");
732 // Is O_LARGEFILE supported?
734 if (TryFromOpenFlags (OpenFlags.O_LARGEFILE, out _v))
735 flags |= OpenFlags.O_LARGEFILE;
738 case FileAccess.Read:
739 flags |= OpenFlags.O_RDONLY;
741 case FileAccess.Write:
742 flags |= OpenFlags.O_WRONLY;
744 case FileAccess.ReadWrite:
745 flags |= OpenFlags.O_RDWR;
748 throw new ArgumentException (Locale.GetText ("Unsupported access value"), "access");