diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-08-18 21:39:29 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-08-18 21:39:29 +0200 |
| commit | da70596895d8135e08f8caac6978117697b4c021 (patch) | |
| tree | 2516785b5434df8453687f05dc8dd877438901ab /dev/Kernel/KernelKit/DebugOutput.hxx | |
| parent | 005de79004c9d30e64bdee6e14e06f9d47d1f2ab (diff) | |
[REFACTOR]
Improved project structure.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/KernelKit/DebugOutput.hxx')
| -rw-r--r-- | dev/Kernel/KernelKit/DebugOutput.hxx | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/dev/Kernel/KernelKit/DebugOutput.hxx b/dev/Kernel/KernelKit/DebugOutput.hxx deleted file mode 100644 index 2205acfe..00000000 --- a/dev/Kernel/KernelKit/DebugOutput.hxx +++ /dev/null @@ -1,190 +0,0 @@ -/* ------------------------------------------- - - Copyright ZKA Technologies. - -------------------------------------------- */ - -#pragma once - -#include <KernelKit/DeviceManager.hxx> -#include <CompilerKit/CompilerKit.hxx> -#include <NewKit/OwnPtr.hxx> -#include <NewKit/Stream.hxx> - -#define kDebugMaxPorts 16 - -#define kDebugUnboundPort 0x0FEED - -#define kDebugMag0 'N' -#define kDebugMag1 'D' -#define kDebugMag2 'B' -#define kDebugMag3 'G' - -#define kDebugSourceFile 0 -#define kDebugLine 33 -#define kDebugTeam 43 -#define kDebugEOP 49 - -namespace Kernel -{ - class TerminalDevice; - - inline TerminalDevice end_line(); - inline TerminalDevice number(const Long& x); - inline TerminalDevice hex_number(const Long& x); - - // @brief Emulates a VT100 terminal. - class TerminalDevice final : public DeviceInterface<const Char*> - { - public: - TerminalDevice(void (*print)(const Char*), void (*get)(const Char*)) - : DeviceInterface<const Char*>(print, get) - { - } - - virtual ~TerminalDevice() = default; - - /// @brief returns device name (terminal name) - /// @return string type (const char*) - virtual const char* Name() const override - { - return ("TerminalDevice"); - } - - NEWOS_COPY_DEFAULT(TerminalDevice); - - STATIC TerminalDevice The() noexcept; - }; - - inline TerminalDevice end_line() - { - TerminalDevice selfTerm = TerminalDevice::The(); - selfTerm << "\r"; - return selfTerm; - } - - inline TerminalDevice carriage_return() - { - TerminalDevice selfTerm = TerminalDevice::The(); - selfTerm << "\r"; - return selfTerm; - } - - inline TerminalDevice tabulate() - { - TerminalDevice selfTerm = TerminalDevice::The(); - selfTerm << "\t"; - return selfTerm; - } - - /// @brief emulate a terminal bell, like the VT100 does. - inline TerminalDevice bell() - { - TerminalDevice selfTerm = TerminalDevice::The(); - selfTerm << "\a"; - return selfTerm; - } - - namespace Detail - { - inline TerminalDevice _write_number(const Long& x, TerminalDevice& term) - { - UInt64 y = (x > 0 ? x : -x) / 10; - UInt64 h = (x > 0 ? x : -x) % 10; - - if (y) - _write_number(y, term); - - /* fail if the number is not base-10 */ - if (h > 10) - { - _write_number('?', term); - return term; - } - - if (y < 0) - y = -y; - - const char cNumbers[11] = "0123456789"; - - Char buf[2]; - buf[0] = cNumbers[h]; - buf[1] = 0; - - term << buf; - return term; - } - - inline TerminalDevice _write_number_hex(const Long& x, TerminalDevice& term) - { - UInt64 y = (x > 0 ? x : -x) / 16; - UInt64 h = (x > 0 ? x : -x) % 16; - - if (y) - _write_number_hex(y, term); - - /* fail if the hex number is not base-16 */ - if (h > 15) - { - _write_number_hex('?', term); - return term; - } - - if (y < 0) - y = -y; - - const char cNumbers[17] = "0123456789ABCDEF"; - - Char buf[2]; - buf[0] = cNumbers[h]; - buf[1] = 0; - - term << buf; - return term; - } - } // namespace Detail - - inline TerminalDevice hex_number(const Long& x) - { - TerminalDevice selfTerm = TerminalDevice::The(); - - selfTerm << "0x"; - Detail::_write_number_hex(x, selfTerm); - - return selfTerm; - } - - inline TerminalDevice number(const Long& x) - { - TerminalDevice selfTerm = TerminalDevice::The(); - - Detail::_write_number(x, selfTerm); - - return selfTerm; - } - - inline TerminalDevice get_console_in(Char* buf) - { - TerminalDevice selfTerm = TerminalDevice::The(); - - selfTerm >> buf; - - return selfTerm; - } - - typedef Char rt_debug_type[255]; - - class DebuggerPortHeader final - { - public: - Int16 fPort[kDebugMaxPorts]; - Int16 fBoundCnt; - }; -} // namespace Kernel - -#ifdef kcout -#undef kcout -#endif // ifdef kcout - -#define kcout TerminalDevice::The() -#define endl kcout << Kernel::end_line() |
