1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:57:44 +00:00

Kernel: Rename Console => ConsoleDevice

This change will help to distinguish between the console
device and the Console abstraction layer in the Graphics
subsystem later.
This commit is contained in:
Liav A 2021-04-24 17:50:35 +03:00 committed by Andreas Kling
parent 0669dd82e2
commit 8f2ddde4cb
7 changed files with 28 additions and 24 deletions

44
Kernel/ConsoleDevice.h Normal file
View file

@ -0,0 +1,44 @@
/*
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/CircularQueue.h>
#include <AK/Vector.h>
#include <Kernel/Devices/CharacterDevice.h>
namespace Kernel {
class ConsoleDevice final : public CharacterDevice {
AK_MAKE_ETERNAL
public:
static ConsoleDevice& the();
static void initialize();
static bool is_initialized();
ConsoleDevice();
virtual ~ConsoleDevice() override;
// ^CharacterDevice
virtual bool can_read(const Kernel::FileDescription&, size_t) const override;
virtual bool can_write(const Kernel::FileDescription&, size_t) const override { return true; }
virtual Kernel::KResultOr<size_t> read(FileDescription&, u64, Kernel::UserOrKernelBuffer&, size_t) override;
virtual Kernel::KResultOr<size_t> write(FileDescription&, u64, const Kernel::UserOrKernelBuffer&, size_t) override;
virtual const char* class_name() const override { return "Console"; }
void put_char(char);
const CircularQueue<char, 16384>& logbuffer() const { return m_logbuffer; }
// ^Device
virtual mode_t required_mode() const override { return 0666; }
virtual String device_name() const override { return "console"; }
private:
CircularQueue<char, 16384> m_logbuffer;
};
}