genode/os/src/server/terminal_crosslink
Norman Feske 6d837c9e26 Attach affinity information to session requests
This patch extends the 'Parent::session()' and 'Root::session()'
functions with an additional 'affinity' parameter, which is inteded to
express the preferred affinity of the new session. For CPU sessions
provided by core, the values will be used to select the set of CPUs
assigned to the CPU session. For other services, the session affinity
information can be utilized to optimize the locality of the server
thread with the client. For example, to enable the IRQ session to route
an IRQ to the CPU core on which the corresponding device driver (the IRQ
client) is running.
2013-08-13 17:08:25 +02:00
..
README README file for 'terminal_crosslink' 2012-07-02 14:14:00 +02:00
main.cc Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
target.mk Merge base libraries into a single library 2013-02-19 14:45:55 +01:00
terminal_root.h Attach affinity information to session requests 2013-08-13 17:08:25 +02:00
terminal_session_component.cc Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
terminal_session_component.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00

README

The 'terminal_crosslink' server allows exactly two clients to communicate with
each other using the 'Terminal' interface. Data sent to the server gets stored
in a buffer of 4096 bytes (one buffer per client). As long as the data to be
written fits into the buffer, the 'write()' call returns immediately. If no
more data fits into the buffer, the 'write()' call blocks until the other
client has consumed some of the data from the buffer via the 'read()' call. The
'read()' call never blocks. A signal receiver can be used to block until new
data is ready for reading.

Example
-------

An example run script 'terminal_crosslink.run' can be found in the 'os/run'
directory.