ELinks 0.18.0
|
Things coming into an itrm, whether from the terminal or from the master. More...
#include <itrm.h>
Data Fields | |
int | std |
A file descriptor for the standard input. | |
int | sock |
In a slave process, a file descriptor for a socket from which it reads data sent by the master process. | |
int | ctl |
A file descriptor for controlling the standard input. | |
struct itrm_queue | queue |
Bytes that have been received from std but not yet converted to events. |
Things coming into an itrm, whether from the terminal or from the master.
int itrm_in::ctl |
A file descriptor for controlling the standard input.
This is always the terminal device itself, thus the same as std in some ports. ELinks doesn't read or write with this file descriptor; it only does things like tcsetattr().
struct itrm_queue itrm_in::queue |
Bytes that have been received from std but not yet converted to events.
itrm_queue.data is allocated for ITRM_IN_QUEUE_SIZE bytes and never resized. The itrm layer cannot parse control sequences longer than that. Anything that modifies itrm_queue.len should also call unhandle_itrm_stdin() if the queue becomes full, or handle_itrm_stdin() if the queue stops being full. Those functions are internal to kbd.c.
int itrm_in::sock |
In a slave process, a file descriptor for a socket from which it reads data sent by the master process.
The other end of the socket connection is terminal.fdout in the master process. The format of these data is almost the same as could be sent to the terminal (via itrm_out.std), but there are special commands that begin with a null byte.
In the master process, sock
is the same as itrm_out.std, but nothing actually uses it.
int itrm_in::std |
A file descriptor for the standard input.
In some ports, this is the terminal device itself; in others, this is a pipe from an input thread. In principle, the data format depends on the terminal.