summaryrefslogtreecommitdiffhomepage
path: root/dev/DebuggerKit/NeKernelContract.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-07-30 08:50:15 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-07-30 08:50:15 +0100
commit1c8c5cff67b20d86c442b0917d6c1fc6407140df (patch)
tree53ebea660bef14cdc2ff5b7ebefb4049f705f997 /dev/DebuggerKit/NeKernelContract.h
parent073811d89c98d6e1c078a032ca2eedefebf80384 (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.h47
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