Make fd tables work for files or chans
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 24 Jul 2015 12:30:18 +0000 (08:30 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 27 Jul 2015 15:53:33 +0000 (11:53 -0400)
commitc6eff88a181f7bf9defaefb9336e7549c1ea63e3
tree2b35beb0ef12bfc695efca90eccbd2f766b1128b
parentedc6364392cf0fb46ad219323c0bc0cf857743d2
Make fd tables work for files or chans

The guts of insert_file, {get,put}_file_from_fd are reworked for
fd_tables such that they can handle either files or chans.  Whether you
use files or chans will be choosen mostly by the wrapper function (e.g.
insert_file for the VFS).

The invariant is that if a bit is set in the fdset, then file XOR chan
is set.

For operations like clone and close_fdt (closes all open files), we
don't really need wrappers, since that code is called from
VFS/9ns-independent parts of the kernel.

Note that clone_fdt has the chan incref commented out, but close_fdt
does not.  Since these aren't actually used by 9ns yet, the invariant
mentioned above isn't true yet.  I'll remove that shortly.
kern/include/vfs.h
kern/src/process.c
kern/src/syscall.c
kern/src/vfs.c