Change Chan flags to match open() file flags
authorBarret Rhoden <brho@cs.berkeley.edu>
Sun, 19 Jul 2015 13:35:19 +0000 (09:35 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 24 Jul 2015 07:05:13 +0000 (03:05 -0400)
commite4c2c572d993dd9ff298130d4d5167235ca41af3
tree3a11a83a531f44b43c48e44f6418270f88df5a08
parent9c17c65b7371031286115f1061434c7470a06fdd
Change Chan flags to match open() file flags

Like with many parts of the VFS and 9ns, certain flags hold different
sets of flags.  omode has the mode (O_RDWR) as well as file/chan flags.
c->flag has some internal flags, such as COPEN, as well as some
file/chan flags that came in from open().

Now, the chan flags are explicitly split between these groups, such that
the internal and external flags are separate.  Further, the external
flags use the same values with 9ns as are used in the kernel interface.
This way, we can more easily set and get the flags.

Note that this also fixes a slight bug in setfl where we were not
clearing O_APPEND, in case someone was trying to toggle it off.

9ns CLOEXEC still needs some work.  I don't know think the device needs
to know about it, but I could be wrong.
kern/include/ns.h
kern/src/ns/chan.c
kern/src/ns/sysfile.c