bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

term & user space console


From: Marcus Brinkmann
Subject: term & user space console
Date: Tue, 18 Dec 2001 00:21:15 +0100
User-agent: Mutt/1.3.24i

Hi,

term has currently two bottom handlers, one for Mach terminal devices, and
one for ptyios.  I could make good use of elaborations on some of the
involved issues when going to a user space console.

The mach terminal device interface is also used for the console device,
although it of course does not implement any of the status calls.  This is
why STOP (^S) and START (^Q) don't work.

The pty interface does also not handle START and STOP.  It stores the state in
flags, but it does not make use of it in any way.

START and STOP are just one example for stuff that concerns the bottom
handler.  There is a third type, TERM_ON_HURDIO, that is not implemented
yet.  It seems to me that this is what I need if I want to use term with a
colortext translator that supports keyboard input (I'd call it /dev/vcon or
so).  I have started hacking together support for TERM_ON_HURDIO (I coined
it fileio before I found out about the symbol), but pretty aimlessly right
now.  I'd be glad if you could share with me any ideas you had about it.

Read and write is clear enough (using io_read and io_write on the underlying
file node), but I have basically two problems: The bottom line interface is
not documented, so I have to guess my way through it, and second, I am not
yet sure what to do about all the state, like START and STOP.  Is this the
responsibility of the bottom handler, or the underlying filesystem, and if
the latter, how do we exchange the state through the i/o interface.

I am not sure how virtual consoles are going to be implemented.  It seems to
me that /dev/console is always the currently active console (at least this
it is on Linux), so this port needs to be managed by the colortext (or vcon
or however we are going to name it) translator.  However, how can it point
back to the terminal translator currently in use?  It seems that term needs
to advertise its own port to colortext before everything can work.  Is this
correct?

For reference, here is the structure that defines the bottom half.
For example, there is suspend_physical_output() which supposedly implements
STOP, and start_output(), which resumes it (but does other things as well).

/* Functions a bottom half defines */
struct bottomhalf
{
  void (*start_output) (void);
  void (*set_break) (void);
  void (*clear_break) (void);
  void (*abandon_physical_output) (void);
  void (*suspend_physical_output) (void);
  int (*pending_output_size) (void);
  void (*notice_input_flushed) (void);
  error_t (*assert_dtr) (void);
  void (*desert_dtr) (void);
  void (*set_bits) (void);
  void (*mdmctl) (int, int);
  int (*mdmstate) (void);
};

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de



reply via email to

[Prev in Thread] Current Thread [Next in Thread]