summaryrefslogtreecommitdiffhomepage
path: root/Private/NetworkKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-04-12 12:54:30 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-04-12 12:54:30 +0200
commitc3b3b7727b9e2e7cbddcd0997c53d96ba3bb0e82 (patch)
treedb2fbe59e73e5610a678028a3214041773f134bc /Private/NetworkKit
parent3fca74d9544fc4cf0218b6e8154b53625bd3df66 (diff)
kernel: update IPC protocol header, framebuffer header.
servers/display: Add display server. private: rename LinkerScripts to just Linker. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/NetworkKit')
-rw-r--r--Private/NetworkKit/IPCEP.hxx33
1 files changed, 19 insertions, 14 deletions
diff --git a/Private/NetworkKit/IPCEP.hxx b/Private/NetworkKit/IPCEP.hxx
index b3b8a759..cd7345e4 100644
--- a/Private/NetworkKit/IPCEP.hxx
+++ b/Private/NetworkKit/IPCEP.hxx
@@ -1,6 +1,8 @@
/* -------------------------------------------
- Copyright Mahrouss Logic
+ Copyright Mahrouss Logic.
+
+ File: IPCEP.hxx, Purpose: Common IPC protocol.
------------------------------------------- */
@@ -10,36 +12,39 @@
#include <NewKit/Defines.hpp>
#include <NewKit/String.hpp>
-/// @brief IPC Endpoint Protocol (IPCEP) definition.
+/// @brief Common IPC Endpoint Protocol (Common IPC for short).
/// IA separator.
#define kRemoteSeparator "."
-/// Interchange address, consists of domain+namespace.
-#define kRemoteInvalid "00.00.00.00:0"
-#define kRemoteMaxLen 21
+/// Interchange address, consists of domain:namespace.
+#define kRemoteInvalid "00.00.00.00:0000"
+#define kRemoteBitWidth 96 /* 96-bit address space. */
-#define kRemoteHeaderMagic 0xFFEEAACCEE
+#define kRemoteHeaderMagic 0xFEEDFACE
namespace NewOS {
/// @brief 96-bit number to represent the domain and namespace
-struct PACKED IPCEPNumber final {
+struct PACKED IPCEPAddress {
UInt32 RemoteAddress;
UInt64 RemoteNamespace;
};
-typedef struct IPCEPNumber IPCEPNumberType;
+typedef struct IPCEPAddress IPCEPAddressType;
+
+enum { kIPCEPLittleEndian = 0, kIPCEPBigEndian = 1 };
/// @brief IPCEP connection header
-typedef struct IPCEPConnectionHeader final {
- UInt64 IpcHeader; // 0xFFEEAACCEE
+typedef struct IPCEPConnectionHeader {
+ UInt32 IpcHeader; // kRemoteHeaderMagic
UInt8 IpcEndianess; // 0 : LE, 1 : BE
SizeT IpcPacketSize;
- IPCEPNumberType IpcFrom;
- IPCEPNumberType IpcTo;
+ IPCEPAddressType IpcFrom;
+ IPCEPAddressType IpcTo;
UInt32 IpcCRC32;
- Char IpcPad[8];
+ SizeT IpcDataSize;
+ Char IpcData[];
} PACKED IPCEPConnectionHeader;
} // namespace NewOS
-#endif // _INC_IPC_ENDPOINT_HXX_ \ No newline at end of file
+#endif // _INC_IPC_ENDPOINT_HXX_