commit | f733c85a96c023c8eab588b58a588280e1dd106a | [log] [tgz] |
---|---|---|
author | Jeremy Kerr <jk@ozlabs.org> | Tue Feb 07 18:40:10 2017 +0800 |
committer | Jeremy Kerr <jk@ozlabs.org> | Tue Jun 27 14:55:02 2017 +0800 |
tree | 6c26857428486f81a45750f1c407d3660046a7ef | |
parent | 1b5750109ef3a365e2c60b112ad35a48f690fbee [diff] |
server: use ringbuffer for all handlers Currently, we use the a ringbuffer within the socket handler to manage bursts of data to slower clients. However, we're also seeing cases where the local tty handler becomes blocking as well. So, we want to implement a buffer within the tty handler too. This change moves the ringbuffer 'up a layer' - from the socket handler to the core console code. We remove the ->data_in callback from handlers, and work on the assumption that handlers have registered their own consumer on the console's ringbuffer (through a new helper function, console_ringbuffer_consumer_register()). Change-Id: Ie8f02d6632578c50bb5e2dfb9bee6ece86432135 Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Note: In addition to a toolchain and autoconf tools, this requires autotools-archive
to be installed.
To build this project, run the following shell commands:
./bootstrap.sh ./configure ${CONFIGURE_FLAGS} make
To fully clean the repository, run:
./bootstrap.sh clean
Running the server requires a serial port (e.g. /dev/ttyS0):
touch obmc-console.conf ./obmc-console-server --config obmc-console.conf ttyS0
To connect to the server, simply run the client:
./obmc-console-client
To disconnect the client, use the standard ~.
combination.