NeKernel dev
Loading...
Searching...
No Matches
GUIDWrapper.h
Go to the documentation of this file.
1/* ========================================
2
3 Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5======================================== */
6
7#pragma once
8
9#include <NeKit/Config.h>
10#include <NeKit/Ref.h>
11#include <NeKit/Stream.h>
12
13/* GUID for C++ classes. */
14
15#define kXRNNil "@{........-....-M...-N...-............}"
16
18namespace Kernel::CF::XRN {
19union GUIDSequence final {
20 alignas(8) UShort fU8[16];
21 alignas(8) UShort fU16[8];
22 alignas(8) UInt fU32[4];
23 alignas(8) ULong fU64[2];
24
31};
32
33class GUID final {
34 public:
35 explicit GUID() = default;
36 ~GUID() = default;
37
38 public:
40
41 public:
43 GUIDSequence& Leak() { return fUUID; }
44
45 private:
47};
48} // namespace Kernel::CF::XRN
#define NE_COPY_DEFAULT(KLASS)
Definition Detail.h:17
GUIDSequence & operator->()
Definition GUIDWrapper.h:42
GUIDSequence fUUID
Definition GUIDWrapper.h:46
GUIDSequence & Leak()
Definition GUIDWrapper.h:43
eXtended Resource Namespace
Definition GUIDWizard.h:18
__UINT8_TYPE__ UChar
Definition Config.h:54
__UINT64_TYPE__ ULong
Definition Config.h:47
__UINT16_TYPE__ UShort
Definition Config.h:39
__UINT32_TYPE__ UInt
Definition Config.h:43
Definition GUIDWrapper.h:25
UInt fMs1
Definition GUIDWrapper.h:26
UChar fMs4[8]
Definition GUIDWrapper.h:29
UShort fMs2
Definition GUIDWrapper.h:27
UShort fMs3
Definition GUIDWrapper.h:28
Definition GUIDWrapper.h:19
ULong fU64[2]
Definition GUIDWrapper.h:23
UShort fU8[16]
Definition GUIDWrapper.h:20
UShort fU16[8]
Definition GUIDWrapper.h:21
struct Kernel::CF::XRN::GUIDSequence::GUID fUuid
UInt fU32[4]
Definition GUIDWrapper.h:22