9ns: Make chan_ctl() mandatory
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 6 Apr 2018 15:55:48 +0000 (11:55 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 30 Apr 2018 18:37:05 +0000 (14:37 -0400)
commit8395010cd0eaf019a3e54ba7bb48f30f3af63a83
tree5367c3c92acf3d4f5f52503d4d064654cad4db1d
parentb0169396a360572d72ef4bd25f3680f59666e196
9ns: Make chan_ctl() mandatory

Previously, chan_ctl was optional; it was the device's opportunity to do
something, including say 'no', when we set the chan flags.  Instead,
devices must clearly say they will support it.

Part of the issue was the old chan_ctl didn't actually have multiple
operations.  The implied operation was 'set fl.'  That won't work for other
upcoming uses of chan_ctl, such as fsync.  Devices may support e.g. fsync
but not changing flags.

Note we don't have CCTL_GET_FL - the caller already has the chan and its
flags.  The device has nothing to do with it.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/drivers/dev/pipe.c
kern/include/ns.h
kern/src/net/devip.c
kern/src/ns/sysfile.c