summaryrefslogtreecommitdiffhomepage
path: root/Private/NetworkKit
diff options
context:
space:
mode:
Diffstat (limited to 'Private/NetworkKit')
-rw-r--r--Private/NetworkKit/IPCEP.hxx45
1 files changed, 45 insertions, 0 deletions
diff --git a/Private/NetworkKit/IPCEP.hxx b/Private/NetworkKit/IPCEP.hxx
new file mode 100644
index 00000000..b3b8a759
--- /dev/null
+++ b/Private/NetworkKit/IPCEP.hxx
@@ -0,0 +1,45 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+#ifndef _INC_IPC_ENDPOINT_HXX_
+#define _INC_IPC_ENDPOINT_HXX_
+
+#include <NewKit/Defines.hpp>
+#include <NewKit/String.hpp>
+
+/// @brief IPC Endpoint Protocol (IPCEP) definition.
+
+/// IA separator.
+#define kRemoteSeparator "."
+
+/// Interchange address, consists of domain+namespace.
+#define kRemoteInvalid "00.00.00.00:0"
+#define kRemoteMaxLen 21
+
+#define kRemoteHeaderMagic 0xFFEEAACCEE
+
+namespace NewOS {
+/// @brief 96-bit number to represent the domain and namespace
+struct PACKED IPCEPNumber final {
+ UInt32 RemoteAddress;
+ UInt64 RemoteNamespace;
+};
+
+typedef struct IPCEPNumber IPCEPNumberType;
+
+/// @brief IPCEP connection header
+typedef struct IPCEPConnectionHeader final {
+ UInt64 IpcHeader; // 0xFFEEAACCEE
+ UInt8 IpcEndianess; // 0 : LE, 1 : BE
+ SizeT IpcPacketSize;
+ IPCEPNumberType IpcFrom;
+ IPCEPNumberType IpcTo;
+ UInt32 IpcCRC32;
+ Char IpcPad[8];
+} PACKED IPCEPConnectionHeader;
+} // namespace NewOS
+
+#endif // _INC_IPC_ENDPOINT_HXX_ \ No newline at end of file