diff options
| author | Amlal <amlal@nekernel.org> | 2025-04-29 08:54:34 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-04-29 08:54:34 +0200 |
| commit | aa50b4980a84128fed32139758a00e215ee54a78 (patch) | |
| tree | c199b57917210d66669e5771cd1ce67202ea225a /dev/kernel/KernelKit | |
| parent | a435ad97c1dac5282e148e6dac2d82aabcb553e5 (diff) | |
kernel: Figuring out the EPM header bug; where it gets duplicated when writing an IND. (HeFS)
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/KernelKit')
| -rw-r--r-- | dev/kernel/KernelKit/DebugOutput.h | 43 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/DriveMgr.h | 8 |
2 files changed, 49 insertions, 2 deletions
diff --git a/dev/kernel/KernelKit/DebugOutput.h b/dev/kernel/KernelKit/DebugOutput.h index 7110a941..f6cfa027 100644 --- a/dev/kernel/KernelKit/DebugOutput.h +++ b/dev/kernel/KernelKit/DebugOutput.h @@ -10,6 +10,7 @@ #include <KernelKit/DeviceMgr.h> #include <NewKit/OwnPtr.h> #include <NewKit/Stream.h> +#include <NewKit/Utils.h> #define kDebugUnboundPort 0x0FEED @@ -26,6 +27,8 @@ namespace Kernel { class TerminalDevice; class DTraceDevice; +class DebugDevice; +class Utf8TerminalDevice; inline TerminalDevice end_line(); inline TerminalDevice number(const Long& x); @@ -49,6 +52,23 @@ class TerminalDevice final NE_DEVICE<const Char*> { STATIC TerminalDevice The() noexcept; }; +class Utf8TerminalDevice final NE_DEVICE<const Utf8Char*> { + public: + Utf8TerminalDevice(void (*print)(IDeviceObject*, const Utf8Char*), + void (*gets)(IDeviceObject*, const Utf8Char*)) + : IDeviceObject<const Utf8Char*>(print, gets) {} + + ~Utf8TerminalDevice() override; + + /// @brief returns device name (terminal name) + /// @return string type (const Char*) + const Char* Name() const override { return ("Utf8TerminalDevice"); } + + NE_COPY_DEFAULT(Utf8TerminalDevice) + + STATIC Utf8TerminalDevice The() noexcept; +}; + inline TerminalDevice end_line() { TerminalDevice self = TerminalDevice::The(); @@ -56,6 +76,13 @@ inline TerminalDevice end_line() { return self; } +inline Utf8TerminalDevice utf_end_line() { + Utf8TerminalDevice self = Utf8TerminalDevice::The(); + + self.operator<<(u8"\r"); + return self; +} + inline TerminalDevice carriage_return() { TerminalDevice self = TerminalDevice::The(); @@ -175,4 +202,20 @@ inline TerminalDevice& operator<<(TerminalDevice& src, const Long& num) { #define kout TerminalDevice::The() +#ifdef kendl +#undef kendl +#endif // ifdef kendl + #define kendl end_line() + +#ifdef kout8 +#undef kout8 +#endif // ifdef kout8 + +#define kout8 Utf8TerminalDevice::The() + +#ifdef kendl8 +#undef kendl8 +#endif // ifdef kendl8 + +#define kendl8 utf_end_line() diff --git a/dev/kernel/KernelKit/DriveMgr.h b/dev/kernel/KernelKit/DriveMgr.h index b40cf0ad..d287a345 100644 --- a/dev/kernel/KernelKit/DriveMgr.h +++ b/dev/kernel/KernelKit/DriveMgr.h @@ -156,14 +156,18 @@ namespace Detect { Void io_detect_drive(DriveTrait& trait); } -/// @brief Read from newfs disk. +Void io_drv_input(DriveTrait::DrivePacket pckt); + +Void io_drv_output(DriveTrait::DrivePacket pckt); + +/// @brief Read from IFS disk. /// @param Mnt mounted interface. /// @param DrvTrait drive info /// @param DrvIndex drive index. /// @return Int32 fs_ifs_read(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex); -/// @brief Write to ifs disk. +/// @brief Write to IFS disk. /// @param Mnt mounted interface. /// @param DrvTrait drive info /// @param DrvIndex drive index. |
