1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:17:44 +00:00

Kernel: Move TTY-related code to a new subdirectory under Devices

The TTY subsystem is represented with unix devices, so it should be
under the Devices directory like the Audio, Storage, GPU and HID
subsystems.
This commit is contained in:
Liav A 2023-07-08 14:18:32 +03:00 committed by Andrew Kaster
parent c99c065a40
commit b55199c227
31 changed files with 42 additions and 42 deletions

View file

@ -0,0 +1,41 @@
/*
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Badge.h>
#include <Kernel/Devices/CharacterDevice.h>
namespace Kernel {
class MasterPTY;
class PTYMultiplexer final : public CharacterDevice {
public:
PTYMultiplexer();
virtual ~PTYMultiplexer() override;
static void initialize();
static PTYMultiplexer& the();
// ^CharacterDevice
virtual ErrorOr<NonnullRefPtr<OpenFileDescription>> open(int options) override;
virtual ErrorOr<size_t> read(OpenFileDescription&, u64, UserOrKernelBuffer&, size_t) override { return 0; }
virtual ErrorOr<size_t> write(OpenFileDescription&, u64, UserOrKernelBuffer const&, size_t) override { return 0; }
virtual bool can_read(OpenFileDescription const&, u64) const override { return true; }
virtual bool can_write(OpenFileDescription const&, u64) const override { return true; }
void notify_master_destroyed(Badge<MasterPTY>, unsigned index);
private:
// ^CharacterDevice
virtual StringView class_name() const override { return "PTYMultiplexer"sv; }
static constexpr size_t max_pty_pairs = 64;
SpinlockProtected<Vector<unsigned, max_pty_pairs>, LockRank::None> m_freelist {};
};
}