Message-Id: <3.0.1.32.19971015163111.0069d4d4@yacker.xiotech.com> Date: Wed, 15 Oct 1997 16:31:11 -0500 To: djgpp-workers AT delorie DOT com From: Randy Maas Subject: 971009: FileSysExt's Rev D. p1 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====================_876969071==_" Precedence: bulk --=====================_876969071==_ Content-Type: text/plain; charset="us-ascii" I've finished checking all the file system extension changes I made against the 971009 libc version. Here's is a quick summary of what is different from the last versions I posted: 1. pipe exists and works. 2. dup2 is a file system extension. I think it may be better through fcntl, in turn through the fse, but this didn't seem very standard. I needed dup2 to be emulated so I could set the pipe parts to stdin and stdout. 3. I reworked it so not every last emulator need be linked in. Now, for example, a call to _dup2 will add _dup2_emu to the emulator list. 4. I made some changes to the documentation to reflect the above. I may not be the best documentor, but I've tried 8-) As before, I'll upload the whole shabang as fs971009d.zip to the incoming folder. So now, here are the .h diffs. Randy Maas randym AT acm DOT org --=====================_876969071==_ Content-Type: text/plain; charset="us-ascii" Content-Disposition: attachment; filename="fsext-h.dif" diff -c2 src\libc\fsext\fsext.h fsext.h *** \local\ginsu\lib\fsext.old Mon Aug 12 23:18:10 1996 --- fsext.h Sun Oct 12 17:25:46 1997 *************** *** 25,28 __FSEXT_fcntl, __FSEXT_ioctl, } __FSEXT_Fnumber; --- 25,33 ----- __FSEXT_fcntl, __FSEXT_ioctl, + __FSEXT_lseek, + __FSEXT_link, + __FSEXT_unlink, + __FSEXT_copy, + __FSEXT_dup2 } __FSEXT_Fnumber; *************** *** 36,40 caller's functionality. */ typedef int (__FSEXT_Function)(__FSEXT_Fnumber _function_number, ! int *_rv, va_list _args); int __FSEXT_alloc_fd(__FSEXT_Function *_function); --- 41,45 ----- caller's functionality. */ typedef int (__FSEXT_Function)(__FSEXT_Fnumber _function_number, ! int *_rv, va_list _args, void* state); int __FSEXT_alloc_fd(__FSEXT_Function *_function, void* state); *************** *** 38,43 int *_rv, va_list _args); ! int __FSEXT_alloc_fd(__FSEXT_Function *_function); ! int __FSEXT_set_function(int _fd, __FSEXT_Function *_function); __FSEXT_Function *__FSEXT_get_function(int _fd); --- 43,49 ----- int *_rv, va_list _args, void* state); ! int __FSEXT_alloc_fd(__FSEXT_Function *_function, void* state); ! int __FSEXT_set_function(int _fd, __FSEXT_Function *_function, ! void* state); __FSEXT_Function *__FSEXT_get_function(int _fd); int __FSEXT_get_handler(int _fd, __FSEXT_Function** func, *************** *** 41,45 int __FSEXT_set_function(int _fd, __FSEXT_Function *_function); __FSEXT_Function *__FSEXT_get_function(int _fd); ! int __FSEXT_add_open_handler(__FSEXT_Function *_function); int __FSEXT_call_open_handlers(__FSEXT_Fnumber _function_number, --- 47,55 ----- void* state); __FSEXT_Function *__FSEXT_get_function(int _fd); ! int __FSEXT_get_handler(int _fd, __FSEXT_Function** func, ! void** state); ! int __FSEXT_Call(__FSEXT_Fnumber, int, va_list); ! void __FSEXT_Emu_add (__FSEXT_Function *_function); ! int __FSEXT_Emu (__FSEXT_Fnumber, int*, va_list, void*); int __FSEXT_add_open_handler(__FSEXT_Function *_function); int __FSEXT_call_open_handlers(__FSEXT_Fnumber _function_number, --=====================_876969071==_ Content-Type: text/plain; charset="us-ascii" --=====================_876969071==_--