mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:27:35 +00:00
Add a /dev/pts filesystem and make PTY allocation dynamic.
You can now open as many PTY pairs as you like. Well, it's actually capped at 8 for now, but it's just a constant and trivial to change. Unregistering a PTY pair is untested because I didn't want to start mucking with that in Terminal right now.
This commit is contained in:
parent
c30e2c8d44
commit
e9b948103d
12 changed files with 124 additions and 20 deletions
29
Kernel/DevPtsFS.h
Normal file
29
Kernel/DevPtsFS.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
#pragma once
|
||||
|
||||
#include "SlavePTY.h"
|
||||
#include <AK/Types.h>
|
||||
#include <Kernel/SyntheticFileSystem.h>
|
||||
|
||||
class Process;
|
||||
|
||||
class DevPtsFS final : public SynthFS {
|
||||
public:
|
||||
static DevPtsFS& the() PURE;
|
||||
|
||||
virtual ~DevPtsFS() override;
|
||||
static RetainPtr<DevPtsFS> create();
|
||||
|
||||
virtual bool initialize() override;
|
||||
virtual const char* class_name() const override;
|
||||
|
||||
void register_slave_pty(SlavePTY&);
|
||||
void unregister_slave_pty(SlavePTY&);
|
||||
|
||||
private:
|
||||
DevPtsFS();
|
||||
|
||||
RetainPtr<SynthFSInode> create_slave_pty_device_file(unsigned index);
|
||||
|
||||
HashTable<SlavePTY*> m_slave_ptys;
|
||||
};
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue