Provide a lookup for a socket's listen FD (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 3 Sep 2015 18:08:26 +0000 (14:08 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 28 Sep 2015 19:14:00 +0000 (15:14 -0400)
commitaeb85b7269886878858060a3a114dec94012ed1e
tree79ed02996c17c6c1dac09896065f5fa49d9536cb
parente045710c9eea2a703da1a1cf704a784c5d9c1811
Provide a lookup for a socket's listen FD (XCC)

Due to the nature of Rocks, in that they basically multiplex the entire
conversation directory into one FD, we need a way to get certain parts
of the Rock from libraries/apps (e.g. epoll).

The listen fd is one of those things we need.  However, unlike with the
ctl file, we actually want the FD for Qlisten.  These functions will
create and return a listen FD on demand (the "get" function) and lookup
previously created FDs.  It is the job of the caller to close the FD
when it's done.

Ideally, I'd just have close() call out to the Rock code to close a
potential Rock.  Then we just store the FD in there, and don't really
worry about it.  However, close.c cannot link against the plan9_sockets,
due to the "multiple libcs" problem endemic to glibc.

Rebuild glibc.
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/Versions
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/listen.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/plan9_sockets.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/plan9_sockets.h