diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-02 19:38:33 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-02 19:38:33 +0200 |
| commit | 87979899ce833ca477bb563b84e3698224119dab (patch) | |
| tree | df67a0724de4c76ce594222747220c233c3bc7f5 /dev/LibDebugger/NeKernelContract.h | |
| parent | 3afc481dc64a07fe7fcaff9ce7a12a492c3ec8e7 (diff) | |
| parent | fb12b9730d78052f5cafbd84fbc9a830a22cec17 (diff) | |
Merge pull request #4 from nekernel-org/dev
0.0.1
Diffstat (limited to 'dev/LibDebugger/NeKernelContract.h')
| -rw-r--r-- | dev/LibDebugger/NeKernelContract.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/dev/LibDebugger/NeKernelContract.h b/dev/LibDebugger/NeKernelContract.h new file mode 100644 index 0000000..8e54ab2 --- /dev/null +++ b/dev/LibDebugger/NeKernelContract.h @@ -0,0 +1,63 @@ + +/*** + (C) 2025 Amlal El Mahrouss + */ + +#ifndef LD_NEKERNEL_CONTRACT_H +#define LD_NEKERNEL_CONTRACT_H + +#include <LibDebugger/DebuggerContract.h> + +#include <sys/socket.h> +#include <sys/types.h> +#include <sys/un.h> +#include <unistd.h> + +#define kDebugUnboundPort 0x0FEED + +#define kDebugMag0 'K' +#define kDebugMag1 'D' +#define kDebugMag2 'B' +#define kDebugMag3 'G' + +#define kDebugSourceFile 23 +#define kDebugLine 33 +#define kDebugTeam 43 +#define kDebugEOP 49 + +namespace LibDebugger::NeKernel { +class NeKernelContract; + +namespace Detail { + class NeKernelPortHeader; + + inline constexpr size_t kDebugTypeLen = 256U; + + typedef char rt_debug_type[kDebugTypeLen]; + + class NeKernelPortHeader final { + public: + int16_t fPort; + int16_t fPortBsy; + }; +} // namespace Detail + +class NeKernelContract : public DebuggerContract { + public: + NeKernelContract(); + virtual ~NeKernelContract(); + + // Override additional methods from DebuggerContract + virtual bool Attach(std::string path, std::string argv, ProcessID& pid) noexcept override; + virtual bool Breakpoint(std::string symbol) noexcept override; + virtual bool Break() noexcept override; + virtual bool Continue() noexcept override; + virtual bool Detach() noexcept override; + + private: + std::string m_ip_address; + std::string m_port; +}; +} // namespace LibDebugger::NeKernel + +#endif // LD_NEKERNEL_CONTRACT_H
\ No newline at end of file |
