Files
UnrealEngine/Engine/Source/Runtime/TraceLog/Public/Trace/Detail/Protocols/Protocol5.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

112 lines
2.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
// HEADER_UNIT_SKIP - Not included directly
namespace UE {
namespace Trace {
#if defined(TRACE_PRIVATE_PROTOCOL_5)
inline
#endif
namespace Protocol5
{
////////////////////////////////////////////////////////////////////////////////
enum EProtocol : uint8 { Id = 5 };
////////////////////////////////////////////////////////////////////////////////
using Protocol4::EFieldType;
using Protocol4::FNewEventEvent;
using Protocol4::EEventFlags;
////////////////////////////////////////////////////////////////////////////////
struct EKnownEventUids
{
static const uint16 Flag_TwoByteUid = 1 << 0;
static const uint16 _UidShift = 1;
enum : uint16
{
NewEvent = 0,
AuxData,
_AuxData_Unused,
AuxDataTerminal,
EnterScope,
LeaveScope,
_Unused6,
_Unused7,
EnterScope_T,
_EnterScope_T_Unused0, // reserved for variable
_EnterScope_T_Unused1, // length timestamps
_EnterScope_T_Unused2,
LeaveScope_T,
_LeaveScope_T_Unused0,
_LeaveScope_T_Unused1,
_LeaveScope_T_Unused2,
_WellKnownNum,
};
static const uint16 User = _WellKnownNum;
static const uint16 Max = (1 << (16 - _UidShift)) - 1;
static const uint16 Invalid = Max;
};
////////////////////////////////////////////////////////////////////////////////
struct FEventHeader
{
uint16 Uid;
uint8 Data[];
};
static_assert(sizeof(FEventHeader) == 2, "Struct layout assumption doesn't match expectation");
////////////////////////////////////////////////////////////////////////////////
struct FImportantEventHeader
{
uint16 Uid;
uint16 Size;
uint8 Data[];
};
static_assert(sizeof(FImportantEventHeader) == 4, "Struct layout assumption doesn't match expectation");
////////////////////////////////////////////////////////////////////////////////
#pragma pack(push, 1)
struct FEventHeaderSync
{
uint16 Uid;
uint16 SerialLow; // 24-bit
uint8 SerialHigh; // serial no.
uint8 Data[];
};
#pragma pack(pop)
static_assert(sizeof(FEventHeaderSync) == 5, "Packing assumption doesn't hold");
////////////////////////////////////////////////////////////////////////////////
struct FAuxHeader
{
enum : uint32
{
FieldShift = 8,
FieldBits = 5,
FieldMask = (1 << FieldBits) - 1,
SizeShift = FieldShift + FieldBits,
SizeLimit = 1 << (32 - SizeShift),
};
union
{
struct
{
uint8 Uid;
uint8 FieldIndex_Size;
uint16 Size;
};
uint32 Pack;
};
uint8 Data[];
};
static_assert(sizeof(FAuxHeader) == 4, "Struct layout assumption doesn't match expectation");
} // namespace Protocol5
} // namespace Trace
} // namespace UE