terminal: improve internal structure

This patch reorganizes the terminal's source code to become easier to
extend. It also enables the strict warning level.
This commit is contained in:
Norman Feske
2018-02-06 21:32:02 +01:00
parent 12c8e51071
commit 96a068f90a
16 changed files with 834 additions and 682 deletions

View File

@ -30,54 +30,14 @@ class Terminal::Read_buffer : public Genode::Ring_buffer<unsigned char, READ_BUF
{
private:
Genode::Signal_context_capability _sigh_cap;
Genode::Signal_context_capability _sigh_cap { };
public:
/**
* Register signal handler for read-avail signals
*/
void sigh(Genode::Signal_context_capability cap)
{
_sigh_cap = cap;
}
/**
* Add element into read buffer and emit signal
*/
void add(unsigned char c)
{
Genode::Ring_buffer<unsigned char, READ_BUFFER_SIZE>::add(c);
if (_sigh_cap.valid())
Genode::Signal_transmitter(_sigh_cap).submit();
}
void add(char const *str)
{
while (*str)
add(*str++);
}
};
enum { READ_BUFFER_SIZE = 4096 };
class Read_buffer : public Genode::Ring_buffer<unsigned char, READ_BUFFER_SIZE>
{
private:
Genode::Signal_context_capability _sigh_cap;
public:
/**
* Register signal handler for read-avail signals
*/
void sigh(Genode::Signal_context_capability cap)
{
_sigh_cap = cap;
}
void sigh(Genode::Signal_context_capability cap) { _sigh_cap = cap; }
/**
* Add element into read buffer and emit signal