Index: oskit/ds_asyncio.c =================================================================== RCS file: /cvsroot/hurd/gnumach/oskit/Attic/ds_asyncio.c,v retrieving revision 1.1.2.1 diff -u -p -r1.1.2.1 ds_asyncio.c --- oskit/ds_asyncio.c 1999/11/25 23:26:46 1.1.2.1 +++ oskit/ds_asyncio.c 2001/10/18 16:35:51 @@ -377,6 +377,44 @@ ds_asyncio_write_inband (device_t dev, i return err ?: MIG_NO_REPLY; } +/* Kludge just for console. */ +#include /* TTY_* */ +#include /* direct_cons_set_flags, DC_* */ + +io_return_t +ds_asyncio_set_status(device_t dev, dev_flavor_t flavor, + dev_status_t status, mach_msg_type_number_t status_count) +{ + /* Ensure that they are asking about the console. */ + if ((void *) dev->com_device != ds_console_stream) + return D_INVALID_OPERATION; + + switch (flavor) + { + /* Flavors defined in direct_cons.h */ + case DC_RAW: + case DC_NONBLOCK: + case DC_NO_ONLCR: + direct_cons_set_flags((int) flavor); + return D_SUCCESS; + + /* All of the rest are not yet implemented, but some are called, + hence they fall-through here. */ + + /* Flavors defined in tty_status.h */ + case TTY_STATUS: + case TTY_MODEM: + case TTY_FLUSH: + case TTY_STOP: + case TTY_START: + case TTY_SET_BREAK: + case TTY_CLEAR_BREAK: + case TTY_SET_TRANSLATION: + default: + return D_INVALID_OPERATION; + } +} + /* Kludge just for kmsg. */ void ds_asyncio_close (device_t dev) @@ -389,6 +427,7 @@ const struct device_ops asyncio_device_o { write_inband: ds_asyncio_write_inband, read_inband: ds_asyncio_read_inband, + set_status: ds_asyncio_set_status, close: ds_asyncio_close };