diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-07-30 08:50:15 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-07-30 08:50:15 +0100 |
| commit | 1c8c5cff67b20d86c442b0917d6c1fc6407140df (patch) | |
| tree | 53ebea660bef14cdc2ff5b7ebefb4049f705f997 /dev/DebuggerKit/NeKernelContract.h | |
| parent | 073811d89c98d6e1c078a032ca2eedefebf80384 (diff) | |
feat! Breaking API changes of NeCTI's LibCompiler and LibDebugger.
what:
- They've now become CompilerKit and DebuggerKit.
- Expanding XCoff for NeBoot PowerPC backend.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/DebuggerKit/NeKernelContract.h')
| -rw-r--r-- | dev/DebuggerKit/NeKernelContract.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/dev/DebuggerKit/NeKernelContract.h b/dev/DebuggerKit/NeKernelContract.h new file mode 100644 index 0000000..9797639 --- /dev/null +++ b/dev/DebuggerKit/NeKernelContract.h @@ -0,0 +1,47 @@ + +/*** + (C) 2025 Amlal El Mahrouss + */ + +#ifndef LD_NEKERNEL_CONTRACT_H +#define LD_NEKERNEL_CONTRACT_H + +#ifdef LD_NEKERNEL_DEBUGGER + +#include <DebuggerKit/DebuggerContract.h> + +namespace DebuggerKit::NeKernel { +class NeKernelContract; + +namespace Detail { + inline constexpr size_t kDebugCmdLen = 256U; + typedef char rt_debug_cmd[kDebugCmdLen]; +} // namespace Detail + +class NeKernelContract : public DebuggerContract { + public: + NeKernelContract(); + ~NeKernelContract() override; + + public: + NeKernelContract& operator=(const NeKernelContract&) = default; + NeKernelContract(const NeKernelContract&) = default; + + // Override additional methods from DebuggerContract + + public: + bool Attach(std::string path, std::string arg_v, ProcessID& pid) noexcept override; + bool BreakAt(std::string symbol) noexcept override; + bool Break() noexcept override; + bool Continue() noexcept override; + bool Detach() noexcept override; + + private: + std::string m_kernel_path; + int64_t m_socket{0}; +}; +} // namespace DebuggerKit::NeKernel + +#endif // ifdef LD_NEKERNEL_DEBUGGER + +#endif // LD_NEKERNEL_CONTRACT_H
\ No newline at end of file |
