Switch to compiler-tester
[mono.git] / mcs / class / Mono.Posix / Mono.Unix / ChangeLog
1 2005-06-09  Jonathan Pryor <jonpryor@vt.edu>
2
3         * make-map.cs: Look for [Obsolete] members, and mark the UnixConvert
4           conversion functions with the same [Obsolete] message.  This should permit
5           more graceful deprecation of enumerations in the future (rather than just
6           API breaks).
7
8 2005-06-08  Jonathan Pryor <jonpryor@vt.edu>
9
10         * Syscall.cs: Add execvp(2).  (This should have been added with the other
11           exec(2) additions...).
12
13 2005-06-08  Jonathan Pryor <jonpryor@vt.edu>
14
15         * Syscall.cs: Update comment with correct exception type.
16         * UnixConvert.cs: Rename ToFilePermissions(string) to
17           FromOctalPermissionString; Add ToOctalPermissionString,
18           FromUnixPermissionString, ToUnixPermissionString.
19         * UnixMarshal.cs: Remove ErrorMarshal.HaveStrerror_r and
20           UnixMarshal.IsErrorDescriptionThreadSafe.  strerror(3) is now thread-safe
21           (from managed code, at least).  Update comment.
22
23 2005-06-07  Jonathan Pryor <jonpryor@vt.edu>
24
25         * UnixFileSystemInfo.cs: Don't use lstat(2), use stat(2).  This fits with
26           expectations better -- if you create a UnixFileInfo() on a symlink, you
27           want to get the target's information, not the symlink's info.  Add
28           GetFileStatus so UnixSymbolicLinkInfo can override this behavior.
29         * UnixSymbolicLinkInfo.cs: Implement GetFileStatus() (which calls lstat(2)).
30
31 2005-06-07  Jonathan Pryor <jonpryor@vt.edu>
32
33         * Syscall.cs: Document naming conventions.
34
35 2005-06-05  Jonathan Pryor <jonpryor@vt.edu>
36
37         * make-map.cs: Change automatic "ifdef HAVE_<header>" support prefix to
38           "ah:" from ">".  I hadn't known about ">", and "ah:" is (somewhat) more
39           obvious.
40         * Syscall.cs: Change IncludeAttribute to put all headers/defines one/line.
41           It's easier to read this way.  Add "ah:sys/xattr.h" to the headers.
42
43 2005-06-03  Jonathan Pryor <jonpryor@vt.edu>
44
45         * Stdlib.cs: Add sanity checking to snprintf(3) to avoid buffer overflows.
46
47 2005-06-02  Jonathan Pryor <jonpryor@vt.edu>
48
49         * StdioFileStream.cs: Remove FilePosition property & replace with
50           SaveFilePosition/RestoreFilePosition methods.  Since FilePosition has a
51           finalizer, it's not right to have implicitly created instances.
52         * Stdlib.cs: 
53           - FilePosition: GC.SuppressFinalize() should be last in Dispose() 
54             (following .NET guidelines).
55           - Syscall: Add locking around functions most likely to be thread unsafe.
56             This should provide some level of thread-safety to managed code.
57         * Syscall.cs: Add locking around functions most likely to be thread unsafe;
58           add mkstemp(3) export.
59         * UnixEnvironment.cs: GetUserShells should be atomic (from managed code).
60         * UnixGroup.cs: GetLocalGroups should be atomic (from managed code).
61         * UnixGroupInfo.cs: Add ToGroup() method to retrieve underlying Group info.
62         * UnixUser.cs: GetLocalUsers should be atomic (from managed code).
63         * UnixUserInfo.cs: Add ToPasswd () method to retrieve underlying Passwd info.
64         * UnixDriveInfo.cs: GetDrives should be atomic (from managed code).
65
66 2005-05-31  Jonathan Pryor <jonpryor@vt.edu>
67
68         * Stdlib.cs: Add comment for atexit(3) so I don't try to add it.
69         * Syscall.cs: Add fcntl(2) overload which takes DirectoryNotifyFlags (so
70           that *something* accepts a DirectoryNotifyFlags); Fix IncludeAttribute
71                 header files (">sys/poll.h" doesn't exist); 
72           Add additional <sys/mman.h> functions mmap, munmap, msync, mlock, munlock,
73           mlockall, munlockall, mremap, mincore, remap_file_pages.
74         * UnixConvert.cs: Add conversion functions for MmapFlags, MmapProt, MsyncFlags,
75           MlockallFlags, MremapFlags.
76
77 2005-05-31  Jonathan Pryor <jonpryor@vt.edu>
78
79         * Syscall.cs, UnixConvert.cs: Rename LockFlags to LockfCommand.  This is a more 
80           consistent naming, and it's more correct (they weren't flags in the first place).
81
82 2005-05-18  Jonathan Pryor <jonpryor@vt.edu>
83
84         * Stdlib.cs: Correct Mono_Posix_Stdlib_InvokeSignalHandler export.
85
86 2005-05-18  Jonathan Pryor <jonpryor@vt.edu>
87
88         * make-map.cs: Process the Mono.Posix namespace as well as Mono.Unix; add
89           mapping for Boolean => int for native type conversion.
90
91 2005-05-18  Jonathan Pryor <jonpryor@vt.edu>
92
93         * make-map.cs: Add a MphPrototypeFileGenerator, which looks for DllImport
94           methods across all types and generates a C header file declaration for
95           those methods.  This allows us to ensure consistency between
96           Mono.Posix.dll and MonoPosixHelper.so.  Rename WrapperFileGenerator to
97                 ConvertFileGenerator (it generates UnixConvert).
98         * MapAttribute.cs, IncludeAttribute.cs: Make these internal -- there's no
99           reason for external users to even know these exist.
100         * StdioFileStream.cs: Move GC.SuppressFinalize call to be last Dispose()
101           call.  This follows current design guidelines, and allows an exception to
102           be thrown from Dispose() without un-registering the finalizer.
103         * Syscall.cs: Change method declarations to match MonoPosixHelper, etc.
104            - posix_fallocate(P) takes a size_t
105            - mis-spelled settimeofday(2), sethostname(2)
106            - exec(2) can be public; it's safe to call
107            - change lseek(2) so int's are passed to MonoPosixHelper.so, not shorts
108            - We can't allow two incompatible prototypes to exist (since C allows
109              only one prototype, and we're cross-checking prototypes now).  Change
110              utime(2) so only one prototype is needed.
111         * UnixMarshal.cs: ErrorMarshal.ErrorTranslator and ErrorMarshal.Translate
112           shouldn't be public; make them internal.
113         * UnixStream.cs: Remove `unsafe` code block when a "safe" alternative works;
114           Close() should also call GC.SuppressFinalize.
115
116 2005-05-12  Jonathan Pryor <jonpryor@vt.edu>
117
118         * Syscall.cs: The Statvfs structure should contain a MountFlags enumeration,
119           not a ulong (we can "safely" do this since POSIX defines some values for
120           f_flag, so we should be kind and expose them).
121         * UnixConvert.cs: Add MountFlags conversion functions.
122
123 2005-05-02  Joe Shaw  <joeshaw@novell.com>
124
125         * UnixListener.cs (Init): Remove the call to Cleanup() and the
126         method itself, which was not supposed to be here.  We try to
127         connect to the socket if it exists instead of deleting it
128         undconditionally.
129
130 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
131
132         * Stdlib.cs: Comment out usage of `UnmanagedFunctionPointer'. It
133         isn't supported in the runtime -- it throws an assert -- so better
134         not to use it at all for now.
135
136 2005-04-29  Jonathan Pryor <jonpryor@vt.edu>
137
138         * UnixConvert.cs: Fix time_t -> DateTime conversions.  time_t should be
139           assumed to be in the local time zone, so don't mess with UTC shifts.
140           This allows Mono.Unix to produce sane output (e.g. identical to ls(1) or
141           stat(1), instead of several hours different).
142
143 2005-04-29  Jonathan Pryor <jonpryor@vt.edu>
144
145         * Stdlib.cs: Make FilePosition slightly more useful by providing a
146           ToString() override which dumps the fpos_t structure contents into a 
147           hex string.  Add Equals(), GetHashCode(), operator==, and operator!=
148           so FilePosition behaves like a value type.
149
150 2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
151
152         * UnixClient.cs:
153         * UnixListener.cs: TcpListener/TcpClient clones from Jow Shaw.
154
155 2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
156
157         * Mono.Posix.dll.sources: added UnixListener and UnixClient from Joe
158         Shaw.
159
160 2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
161
162         * UnixEndPoint.cs: fix from Mono.Posix.
163
164 2005-04-20  Jonathan Pryor <jonpryor@vt.edu>
165
166         * Syscall.cs: Make all fork(2) and exec(2) functions `private`.  It
167           currently isn't safe to call these under *any* circumstances.  See also
168           68141, and this pertinent quote from Butenhof's 
169           "Programming with POSIX Threads", p197, s6.1:
170           
171               "When a threaded process calls fork to create a child process,
172               Pthreads specifies that only the thread calling fork exists in the
173               child. ... Pthreads does not 'terminate' the other threads in a forked
174               process...They simply cease to exist.  ... This is not a problem if
175               the child process is about to call exec to run a new program, but if
176               you use fork to clone a threaded program, beware that you may lose
177               access to memory, especially heap memory stored only as
178               thread-specific data values."
179           
180           Since P/Invoke currently requires using thread local storage, once you
181           fork(2) you won't be able to invoke exec(2) from managed code (since that
182           would require a P/Invoke transition to call exec(2), which would require
183           TLS, which doesn't exist in the new process).
184          
185           This can only be fixed by removing the TLS dependency on P/Invoke, which
186           isn't a priority (and may not be possible).
187          
188           The workaround is to create a C function which does your fork(2)/exec(2)
189           (and any other functions such as daemon(3)) on your behalf, and P/Invoke
190           to call this C function.
191
192 2005-04-18  Jonathan Pryor <jonpryor@vt.edu>
193
194         * Syscall.cs: Update comment specifying which functions belong in Syscall.
195         * UnixConvert.cs: Add XattrFlags conversion functions.
196         * UnixMarshal.cs: Remove warning about self-assignment.
197
198 2005-04-16  Daniel Drake <dsd@gentoo.org>
199
200         * Syscall.cs: Add bindings for extended attribute manipulation
201
202 2005-04-05  Miguel de Icaza  <miguel@novell.com>
203
204         * Syscall.cs: Set entry point for sys_syslog to be syslog.
205         Include the syslog.h header in the generated map so that we
206         actually do the mapping.
207
208 2005-03-28  Jonathan Pryor <jonpryor@vt.edu>
209
210         * UnixConvert.cs: Add ToFopenMode() methods, which convert FileMode/FileAccess
211           into an fopen(3) mode string.  ToOpenFlags() should throw
212           ArgumentOutOfRangeException for argument violations.
213         * StdioFileStream.cs: Add constructor overloads accepting filename and
214           FileMode/FileAccess overloads; Compatibility fixes with regression tests;
215           remove IDisposable implementation since System.IO.Stream already
216           implements it (which calls Close() for us).
217
218 2005-03-17  Jonathan Pryor <jonpryor@vt.edu>
219
220         * Stdlib.cs: Move Errno-related functionality into Stdlib from Syscall,
221           since (1) errno is part of C89, and (2) StdioFileStream will need it, and
222           StdioFileStream shouldn't use Syscall.  Add [UnmanagedFunctionPointer]
223                 attribute to SignalHandler for .NET 2.0 (since signal handlers use C
224                 calling convention, not Stdcall).
225         * Syscall.cs: Move Errno-related functionality into Stdlib.
226         * UnixMarshal.cs: Use ERANGE not EPERM when figuring out appropriate
227           translator, since ERANGE is part of C99 and EPERM isn't.  Use Stdlib
228           instead of Syscall for Errno-related functionality.
229
230 2005-02-02  Jonathan Pryor <jonpryor@vt.edu>
231
232         * UnixFile.cs: Cope with changes in UnixStream.
233         * UnixStream.cs: Change FileDescriptor property to Handle for consistency.
234         * StdioFileStream.cs: Change FileStream property to Handle for consistency.
235
236 2005-02-02  Jonathan Pryor <jonpryor@vt.edu>
237
238         * Syscall.cs: Remove public sys_ methods.  Some were public by mistake, and
239           others so that users could manually marshal strings if desired.  Manually
240           marshaling strings shouldn't be necessary, though, so remove them too.
241
242 2005-02-02  Jonathan Pryor <jonpryor@vt.edu>
243
244         * StdioFileStream.cs: Fix Length property to actually return the size of the
245           file, not the # of bytes from the current position to EOF.  Oops.
246
247 2005-01-31  Jonathan Pryor <jonpryor@vt.edu>
248
249         * Stdlib.cs: Import "msvcrt", not "libc".  These members are part of the
250           ANSI C standard, and thus should be present on Windows via msvcrt.dll
251           (except snprintf, until they catch up to C99).  Change the calling
252           convention of all functions to Cdecl, as the .NET default is Stdcall.
253           Changing the calling convention isn't needed in Syscall, as it can only be
254           run on Unix platforms anyway, where the default is Cdecl.
255         * Syscall.cs: Add LIBC member that points to the real "libc"; we can't use
256           the imported definition from Stdlib as "msvcrt" doesn't exist on Unix.
257
258 2005-01-29  Jonathan Pryor <jonpryor@vt.edu>
259
260         * Stdlib.cs: sys_* functions shouldn't be public.
261
262 2005-01-13  Jonathan Pryor <jonpryor@vt.edu>
263
264         * make-map.cs: libMonoPosixHelper exports Mono_Posix prefixes, not Mono_Unix
265           prefixes, so change the type and namespace to generate compatible code.
266         * Syscall.cs: Change OpenFlags values so they match the Linux values.
267
268 2005-01-13  Jonathan Pryor <jonpryor@vt.edu>
269
270         * Stdlib.cs: Use Stdlib.LIBC instead of "libc".
271         * StdioFileStream.cs: Add FilePosition property (not that I expect anyone to
272           use it) and Rewind() method.
273
274 2005-01-05  Jonathan Pryor <jonpryor@vt.edu>
275
276         * StdioFileStream.cs: Added; System.IO.Stream wrapper for C FILE struct.
277         * Stdlib.cs: Correct visibility of ftell().
278
279 2005-01-05  Jonathan Pryor <jonpryor@vt.edu>
280
281         * Stdlib.cs: Re-order declarations to match the order used in the 
282           C99 Standard Annex B; Complete <stdio.h> exports (except for those not
283           worth supporting); Add non-"unsafe" versions of fread(3), fwrite(3) and
284           add some rudimentary buffer-overflow checking; Add <stdlib.h> exports such
285           as getenv(3), exit(3), rand(3), EXIT_SUCCESS, RAND_MAX, etc.
286
287 2005-01-03  Jonathan Pryor <jonpryor@vt.edu>
288
289         * Syscall.cs: Update endfsent() and setfsent() declarations, as these must
290           now be implemented in MonoPosixHelper.
291
292 2005-01-01  Jonathan Pryor <jonpryor@vt.edu>
293
294         * Stdlib.cs, Syscall.cs: Minimize duplicate declarations of
295           "MonoPosixHelper" for use in DllImport statements.
296
297 2005-01-01  Jonathan Pryor <jonpryor@vt.edu>
298
299         * Stdlib.cs: Don't use C# v2 features; fixes build under CSC.EXE.
300
301 2004-12-30  Jonathan Pryor <jonpryor@vt.edu>
302
303         * Stdlib.cs: On miguel's suggestion, rename Sighandler_t to SignalHandler.
304
305 2004-12-30  Jonathan Pryor <jonpryor@vt.edu>
306
307         * Stdlib.cs: Implement all C89 <stdio.h> functions except for the scanf(3)
308           family.  These are too dangerous to expose.
309
310 2004-12-30  Jonathan Pryor <jonpryor@vt.edu>
311
312         * CdeclFunctions.cs: Remove warning about unused variable.
313         * Stdlib.cs: Make signal(2) sane and (hopefully) complete.
314         * Syscall.cs: Fix cuserid Obsolete message to reference correct class name.
315         * UnixProcess.cs: Remove warning about unused variable.
316         * UnixMarshal.cs: Remove warnings about unused variables.
317
318 2004-12-29  Jonathan Pryor <jonpryor@vt.edu>
319
320         * UnixPath.cs: Add ReadSymbolicLink(), which takes an intelligent approach
321           to reading symlinks (since their contents may be any size, we grow the
322           buffer dynamically to fit them all, instead of assuming a maximum size).
323         * UnixSymbolicLinkInfo.cs: Remove MaxContentsSize.
324
325 2004-12-29  Jonathan Pryor <jonpryor@vt.edu>
326
327         * UnixPath.cs: Add check for when symlink points to a full path name.
328
329 2004-12-29  Jonathan Pryor <jonpryor@vt.edu>
330
331         * Syscall.cs: Fix Object.Equals implementations.
332         * UnixPath.cs: New & improved, with Testing!  GetRealPath() is changed so
333           that it doesn't walk the entire path looking for symlinks, it just reads 
334           the leaf.  GetCompletRealPath() walks the entire path resolving symlinks.
335           GetCanonicalPath() added, which "cleans up" a path (removing extraneous
336           "." and ".." entries).
337         * UnixSymbolicLinkInfo.cs: Rename ContentsLength -> MaxContentsSize.
338
339 2004-12-28  Jonathan Pryor <jonpryor@vt.edu>
340
341         * UnixFileSystemInfo.cs: Add a link(2) wrapper, CreateLink().  Strictly
342           speaking it's only "safe" to do this on files, but an exception will be 
343           returned if the user tries to hard link directories (because of EPERM), 
344           unless the user is root, in which case it should be allowed anyway...
345
346 2004-12-28  Jonathan Pryor <jonpryor@vt.edu>
347
348         * CdeclFunctions.cs: Correct the comments for AMD64
349         * UnixDirectoryInfo.cs: override Name; add Parent & Root properties; 
350           Correct Path usage (s/Path/FullPath/g).
351         * UnixDriveInfo.cs: Added.  Based on .NET 2.0 System.IO.DriveInfo docs,
352           provides statvfs(2) and getfsfile(3) information about a mounted volume.
353           GetDrives() wraps getfsent(3), thus parsing /etc/fstab.
354         * UnixFile.cs: Use UnixConver.ToOpenFlags, deleting the local version.
355         * UnixFileInfo.cs: Use UnixConver.ToOpenFlags, deleting the local version;
356           override Name; add DirectoryName and Directory properties; 
357         * UnixFileSystemInfo.cs: Make more .NET-like, using FullPath and
358           OriginalPath protected members, abstract Name property; Add
359           CreateSymbolicLink; Remove ReadLink (it's now 
360           UnixSymbolicLinkInfo.Contents); Use lstat(2) for Create(string), so we
361           properly detect Symbolic Links.
362         * UnixPath.cs: Added; Path manipulation utility functions.
363         * UnixSymbolicLinkInfo.cs: 
364           - Seal the class; 
365           - override new abstract member Name; 
366           - rename ReadLink to ContentsPath (and Contents) properties 
367             (why "Contents"?  Because readlink(2) says "readlink places the 
368             contents of the symbolic link in the buffer...")
369           - Add CreateSymbolicLinkTo(), which creates a symlink to the specified
370             "normal" file
371
372 2004-12-28  Jonathan Pryor <jonpryor@vt.edu>
373
374         * Stdlib.cs: Add syslog(3) to XPrintfFunctions; Add additional printf(3) 
375           and fprintf(3) overload which properly escape the format string 
376           (by using "%s" as the format for the user-supplied message).
377         * Syscall.cs: Add #regions for enummerations, structures, classes; Wrap
378           syslog(3) and related enumerations; fix operator!= on Dirent, Group; 
379           wrap {f}statvfs(2); wrap <fstab.h> entries (getfsent(3), etc.).
380         * UnixConvert.cs: Add Syslog-releated enumeration translation functions;
381           Move ToOpenFlags here from UnixFile and UnixFileInfo.
382         * UnixMarshal.cs: Missing P/Invoke methods throw
383           EntryPointNotFoundException, not MissingMethodException; add
384           EscapeFormatString, which escapes printf-style format strings so that they
385           can be safely handed off to native code (avoiding stack overflow, etc);
386           make CreateExceptionForError internal.
387
388 2004-12-15  Jonathan Pryor <jonpryor@vt.edu>
389
390         * Stdlib.cs: Add more <stdio.h> wrappers, such as fread(3) and fwrite(3).
391           These will be useful in implementing System.IO.Stream subclass for
392           reading/writing to a FILE*.  Fix a typo in the realloc(3) DllImport.
393         * Syscall.cs: Fix the sys_kill and sys_crypt declarations.
394         * CdeclFunction.cs: Document calling convention problems on AMD64.
395
396 2004-11-18  Jonathan Pryor <jonpryor@vt.edu>
397
398         * CdeclFunction.cs: Added.
399         * Stdlib.cs: Re-add printf(3) and fprintf(3).  They may not be portable (the
400           jury is still out on that; the AMD64 SysV ABI looks like it should be
401           portable to AMD64 to my eyes), but they will work on *some* platforms, so
402           we should permit it.  The new implementation takes a page out of
403           cocoa-sharp: use System.Reflection.Emit to generate a P/Invoke method at
404           runtime to invoke printf(3) or fprintf(3).  This way, we can export a
405           params signature to C# code, permitting natural usage such as:
406               Stdlib.printf ("Hello, %s world! (%i)\n", "silly", 42);
407         * Syscall.cs: Mark which headers are complete, which functions still need
408           wrapping (for headers which have anything done to them), add #region
409           blocks for each header;
410           export mkfifo(3), fexecve(), getppid(2), setlogin(); fix sleep(3) export.
411         * UnixEnvironment.cs: Export a friendly getppid(2) wrapper.
412           GetParentProcessId isn't in UnixProcess as there's no way (that I know of)
413           to get the Parent's Parent, so it can't be a class member, and exposing it
414           as a static member of UnixProcess doesn't make sense to me, as it isn't
415           general.  Added GetUserShells().
416         * UnixProcess.cs: Change constructor to internal, so it can be used from
417           UnixEnvironment.
418
419 2004-11-16  Jonathan Pryor <jonpryor@vt.edu>
420
421         * Stdlib.cs: Remove printf(3) and fprintf(3).  These are vararg/CDECL 
422           functions, and it's not portable to call them in this manner.
423           (It's not portable because some architectures, such as AMD64, use a
424           "cookie" as part of the vararg calling sequence to help reduce buffer
425           overflow exploits.  Trying to call vararg functions as if they were an
426           overloaded function will not properly set this hardware cookie, resulting
427           in a hardware exception.  Talk to lupus for more information.)
428
429 2004-11-16  Jonathan Pryor <jonpryor@vt.edu>
430
431         * Syscall.cs, UnixConvert.cs: Remove mount- and umount-related
432           functionality.  Mount/umount is inherently non-portable (see the C code
433           for mount/umount), and trying to provide a consistent interface is
434           impossible.  If you need mount/umount support, use the command-line
435           programs mount(1) and umount(1).
436
437 2004-11-16  Jonathan Pryor <jonpryor@vt.edu>
438
439         + Lots o' Renames, as the namespace changed.
440         * PosixConvert.cs: Moved to UnixConvert.cs:
441         * PosixDirectory.cs: Moved to UnixDirectory.cs:
442         * PosixEnvironment.cs: Moved to UnixEnvironment.cs:
443         * PosixDirectoryInfo.cs: Moved to UnixDirectoryInfo.cs:
444         * PosixFile.cs: Moved to UnixFile.cs:
445         * PosixFileInfo.cs: Moved to UnixFileInfo.cs:
446         * PosixFileSystemInfo.cs: Moved to UnixFileSystemInfo.cs:
447         * PosixGroup.cs: Moved to UnixGroup.cs:
448         * PosixGroupInfo.cs: Moved to UnixGroupInfo.cs:
449         * PosixIOException.cs: Moved to UnixIOException.cs:
450         * PosixMarshal.cs: Moved to UnixMarshal.cs:
451         * PosixProcess.cs: Moved to UnixProcess.cs:
452         * PosixStream.cs: Moved to UnixStream.cs:
453         * PosixSymbolicLinkInfo.cs: Moved to UnixSymbolicLinkInfo.cs:
454         * PosixUser.cs: Moved to UnixUser.cs:
455         * PosixUserInfo.cs: Moved to UnixUserInfo.cs:
456         * Catalog.cs, IncludeAttribute.cs, MapAttribute.cs, PeerCred.cs, Stdlib.cs,
457           Syscall.cs, UnixConvert.cs, UnixDirectory.cs, UnixDirectoryInfo.cs,
458           UnixEndPoint.cs, UnixEnvironment.cs, UnixFile.cs, UnixFileInfo.cs,
459           UnixFileSystemInfo.cs, UnixGroup.cs, UnixGroupInfo.cs, UnixIOException.cs,
460           UnixMarshal.cs, UnixProcess.cs, UnixStream.cs, UnixSymbolicLinkInfo.cs,
461           UnixUser.cs, UnixUserInfo.cs: Deal with renamed classes/members.
462
463 2004-11-15  Jonathan Pryor <jonpryor@vt.edu>
464
465         * PosixUserInfo.cs: Make the PosixUserInfo(Passwd) constructor public;
466           override Object.GetHashCode and Object.Equals.
467         * PosixGroupInfo.cs: Make the PosixGroupInfo(Group) constructor public;
468           override Object.GetHashCode and Object.Equals.
469         * PosixIOException.cs: Use PosixMarshal.GetErrorDescription instead of
470           calling Syscall.strerror_r directly
471         * PosixMarshal.cs: Add GetErrorDescription.  Strerror_r() isn't portable, so
472           GetErrorDescription() first tries strerror_r(), and if it fails falls back
473           to strerror(3).
474         * Syscall.cs: 
475           - Seal the Dirent class.  It has no virtual members, so there's no point 
476       in it being non-sealed.  Override Object.GetHashCode and Object.Equals.
477           - Seal the Group class.  It has no virtual members, so there's no point 
478       in it being non-sealed.  Override Object.GetHashCode and Object.Equals.
479             Provide operator== and operator!=.
480           - Seal the Passwd class.  It has no virtual members, so there's no point 
481       in it being non-sealed.  Override Object.GetHashCode and Object.Equals.
482             Provide operator== and operator!=.
483           - Remove strerror_r() convenience overload.  This is now
484             PosixMarshal.GetErrorDescription().
485
486 2004-11-12  Jonathan Pryor <jonpryor@vt.edu>
487
488         * Syscall.cs: Export time-related functions (gettimeofday, settimeofday,
489           utime, utimes), mknod.
490
491 2004-11-07  Atsushi Enomoto  <atsushi@ximian.com>
492
493         * PosixEnvironment.cs : csc build fix. see bug #69195.
494         * PosixStream.cs : csc build fix. see bug #69196.
495
496 2004-11-05  Jonathan Pryor  <jonpryor@vt.edu>
497
498         * PosixConvert.cs: New file; conversion functions for Mono.Posix types.
499         * PosixDirectory.cs: New file; Friendly wrapper over directory information.
500         * PosixDirectoryInfo.cs: New file; Friendly wrapper over directory information.
501         * PosixEnvironment.cs: New file; Friendly wrapper over environment information.
502         * PosixFile.cs: New file; Friendly wrapper over file information.
503         * PosixFileInfo.cs: New file; Friendly wrapper over file information.
504         * PosixFileSystemInfo.cs: New file; Friendly wrapper over `stat'.
505         * PosixGroup.cs: New file; User Group-related functionality
506         * PosixGroupInfo.cs: New file; User Group-related functionality
507         * PosixIOException.cs: New file; Exception for POSIX-generated exceptions.
508         * PosixMarshal.cs: New file; utility functions for marshaling, etc.
509         * PosixProcess.cs: New file; Friendly wrapper over process information.
510         * PosixStream.cs: New file; Friendly wrapper over file descriptors.
511         * PosixSymbolicLinkInfo.cs: New file; Friendly wrapper over symbolic links.
512         * PosixUser.cs: New file; Friendly wrapper over user information.
513         * PosixUserInfo.cs: New file; Friendly wrapper over user information.
514         * Stdlib.cs: New file; C standard library exports.
515         * Syscall.cs: Effective re-write.  
516           - Organize exports by header file
517           - add additional enumerations (Error for the E* error values, etc.)
518           - always explicitly specify enumeration underlying type
519           - Use a new wrapping infrastructure so that ABI-stable types are exported
520                 - For example, size_t is exported as ulong, not IntPtr.
521           - Wrap more functions, and wrap them better (such as getpwnam).
522           - This release is NOT backward compatible.  Many names are the same, and
523             hopefully they're still compatible, but no effort was made to maintain
524             compatibility.  For example, FileMode was removed and replaced with
525             FilePermissions, to avoid a name conflict with System.IO.FileMode.
526                 - Change umount() to use MonoPosixHelper: portability fix for Mac OS X.
527         * make-map.cs: Another effective re-write, to clean up the code, produce
528           better output, and produce more output.  For example, most of
529           PosixConvert can be auto-generated, so it is (modulo version delays and
530           bootstrap issues).  `map.c' is now conditional on all macros, and has
531           error checking for invalid/unsupported values.
532
533 2004-09-18  Jackson Harper  <jackson@ximian.com>
534
535         * Syscall.cs: Add support for poll ().
536
537 2004-09-18  Jackson Harper  <jackson@ximian.com>
538
539         * make-map.cs: Use field value not name for #defines.
540                 
541 2004-09-14  Loren Bandiera <lorenb@mmgsecurity.com>
542
543         * Syscall.cs: Added method for getpwnam which uses Passwd
544         struct.
545         * macros.c: Helper function for getpwnam
546         (In committing, Josh Tauberer also added getpwuid.)
547
548 2004-07-09  Dick Porter  <dick@ximian.com>
549
550         * PeerCred.cs: Get the unix socket peer credentials.
551
552 2004-05-26  Miguel de Icaza  <miguel@ximian.com>
553
554         * Syscall.cs: Do not let the runtime handle strings, as we do not
555         own those strings, we must transform the char * into a string
556         ourselves. 
557
558 2004-05-03  Miguel de Icaza  <miguel@ximian.com>
559
560         * Syscall.cs: Add symlink
561
562 2004-04-19  Miguel de Icaza  <miguel@ximian.com>
563
564         * Syscall.cs: Use hex values for FileMode, since C# does not have
565         an octal integer mode.
566
567 2004-03-30  Joshua Tauberer <tauberer@for.net>
568
569         * Added readlink, strerror, opendir, readdir, closedir
570         * Added Mono.Posix.Stat.UnixToDateTime(long unixtime) --> DateTime
571
572 2004-03-11  Joshua Tauberer <tauberer@for.net>
573
574         * Syscall.cs: Removed argument to getgid that shouldn't be there.
575                 Added getusername, getgroupname which wrap getpwuid, getgrgid
576                 without dealing with pointers to structures.
577                 Removed duplicate FileMode enum nested in Syscall class.
578                 Added stat and lstat, which use StatMode enumeration
579                 (like FileMode but nicer and complete) and Stat struct.
580         * macros.c: Helper functions for getpwuid, getgrgid, stat, lstat.
581
582 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
583
584         * Syscall.cs: moved the assembly attribute to a proper place
585         and added 'signal.h'
586         * make-map.cs: use reflection to invoke the properties, as it
587         fails under MS runtime.
588         
589
590 2004-01-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
591
592         * Syscall.cs: moved assembly attribute and added unsafe block to fix
593         the build on windows.
594
595 2003-11-11  Wojciech Polak <polak@gnu.org
596
597         * Syscall.cs: Applied patch from Wojciech Polak <polak@gnu.org> to
598         support IsAtty.
599
600 2003-05-16  Dick Porter  <dick@ximian.com>
601
602         * UnixEndPoint.cs: New property to get and set the filename, like
603         the IPEndPoint has for the IP address.  Also implement ToString().
604
605 Tue Apr 29 16:53:56 CEST 2003 Paolo Molaro <lupus@ximian.com>
606
607         * Syscall.cs: remove the unsafe mess.
608
609 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
610
611         * Check in.
612         * UnixEndPoint.cs: first file.
613