New function UX_prim_check_fd_errno to to be used after a system call
authorTaylor R. Campbell <net/mumble/campbell>
Wed, 15 Apr 2009 13:00:32 +0000 (13:00 +0000)
committerTaylor R. Campbell <net/mumble/campbell>
Wed, 15 Apr 2009 13:00:32 +0000 (13:00 +0000)
commitf01e68533c4a22644a37784c11b1e5e559d204a1
tree39f4771258bd19dfecbd70aa8db9fd35d8b07ab0
parentffcaf734388ce8f1da009dbc689db4970b4724b0
New function UX_prim_check_fd_errno to to be used after a system call
that creates file descriptors fails.  If errno is EMFILE or ENFILE,
this requests a garbage collection in case any unreferenced file
descriptors can be closed.  Change OS_make_pipe to call this if
pipe(2) fails.

New macro STD_FD_SYSTEM_CALL is like STD_UINT_SYSTEM_CALL but uses
UX_prim_check_fd_errno rather than UX_prim_check_errno.  Change
OS_open_*_file and OS_open_*_socket to use STD_FD_SYSTEM_CALL to call
open(2) and socket(2).

Change STD_*_SYSTEM_CALL to use do/while rather than braces for
compound statements and to call UX_prim_check_errno rather than
copying it in-line.
v7/src/microcode/ux.c
v7/src/microcode/ux.h
v7/src/microcode/uxfile.c
v7/src/microcode/uxio.c
v7/src/microcode/uxsock.c