mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:57:35 +00:00
Add basic PTY support.
For now, there are four hard-coded PTYs: /dev/pt{m,s}[0123] Use this in the Terminal to open a pty pair and spawn a shell.
This commit is contained in:
parent
ecb4ab0943
commit
2f74c2f430
21 changed files with 287 additions and 10 deletions
30
Kernel/SlavePTY.cpp
Normal file
30
Kernel/SlavePTY.cpp
Normal file
|
@ -0,0 +1,30 @@
|
|||
#include "SlavePTY.h"
|
||||
#include "MasterPTY.h"
|
||||
|
||||
SlavePTY::SlavePTY(unsigned index)
|
||||
: TTY(11, index)
|
||||
, m_index(index)
|
||||
{
|
||||
}
|
||||
|
||||
SlavePTY::~SlavePTY()
|
||||
{
|
||||
}
|
||||
|
||||
String SlavePTY::tty_name() const
|
||||
{
|
||||
char buffer[32];
|
||||
ksprintf(buffer, "/dev/pts%u", m_index);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
void SlavePTY::on_master_write(const byte* buffer, size_t size)
|
||||
{
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
emit(buffer[i]);
|
||||
}
|
||||
|
||||
void SlavePTY::on_tty_write(const byte* data, size_t size)
|
||||
{
|
||||
m_master->on_slave_write(data, size);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue