UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UnixPlatformMisc.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4/*=============================================================================================
5 UnixPlatformMisc.h: Unix platform misc functions
6==============================================================================================*/
7
8#pragma once
9
10#include "CoreTypes.h"
12#include "Misc/Build.h"
13
14#define UE_DEBUG_BREAK_IMPL() FUnixPlatformMisc::UngrabAllInput(); PLATFORM_BREAK()
15
16class Error;
18
23{
24 static CORE_API void PlatformPreInit();
25 static CORE_API void PlatformInit();
26 static CORE_API void PlatformTearDown();
30
31 UE_DEPRECATED(4.21, "void FPlatformMisc::GetEnvironmentVariable(Name, Result, Length) is deprecated. Use FString FPlatformMisc::GetEnvironmentVariable(Name) instead.")
33
34 static CORE_API FString GetEnvironmentVariable(const TCHAR* VariableName);
35 static CORE_API void SetEnvironmentVar(const TCHAR* VariableName, const TCHAR* Value);
38
39#if !UE_BUILD_SHIPPING
40 static CORE_API bool IsDebuggerPresent();
41#endif // !UE_BUILD_SHIPPING
42
43 static CORE_API void LowLevelOutputDebugString(const TCHAR *Message);
44
45 static CORE_API void RequestExit(bool Force, const TCHAR* CallSite = nullptr);
46 static CORE_API void RequestExitWithStatus(bool Force, uint8 ReturnCode, const TCHAR* CallSite = nullptr);
49
50 static CORE_API void NormalizePath(FString& InPath);
52
53 static const TCHAR* GetPathVarDelimiter()
54 {
55 return TEXT(":");
56 }
57
59
64
67 static CORE_API FString GetOperatingSystemId();
72
79
80 static CORE_API bool HasCPUIDInstruction();
81 static CORE_API FString GetCPUVendor();
82 static CORE_API FString GetCPUBrand();
85
100 static CORE_API uint32 GetCPUInfo();
101
102 static CORE_API FString GetPrimaryGPUBrand();
103
106
110 static CORE_API void UngrabAllInput();
111
115 static CORE_API bool HasBeenStartedRemotely();
116
117#if ENABLE_PGO_PROFILE
118 static bool StartNewPGOCollection(const FString& AbsoluteFileName);
119 static bool IsPGIActive();
120 static bool StopPGOCollectionAndCloseFile();
121#endif
122
131 static CORE_API void GetOSVersions(FString& out_OSVersionLabel, FString& out_OSSubVersionLabel);
132 static CORE_API FString GetOSVersion();
133 static CORE_API FString GetLoginId();
134
135 static CORE_API void CreateGuid(FGuid& Result);
136
138
139 static CORE_API bool SetStoredValues(const FString& InStoreId, const FString& InSectionName, const TMap<FString, FString>& InKeyValues);
140
142
143 /* Explicitly call this function to setup syscall filters based on a file passed in from the command line
144 * -allowsyscallfilterfile=PATH_TO_FILE
145 */
146 static CORE_API bool SetupSyscallFilters();
147};
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EContextSwitchFlags
Definition GenericPlatformMisc.h:547
EInputOutputFlags
Definition GenericPlatformMisc.h:482
EPageFaultFlags
Definition GenericPlatformMisc.h:443
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GenericPlatformChunkInstall.h:129
Definition Array.h:670
Definition UnrealString.h.inl:34
Type
Definition GenericPlatformMisc.h:306
Type
Definition GenericPlatformMisc.h:325
Definition GenericPlatformMisc.h:532
Definition GenericPlatformCrashContext.h:395
Definition GenericPlatformMisc.h:561
static bool StopPGOCollectionAndCloseFile()
Definition GenericPlatformMisc.h:1967
static bool StartNewPGOCollection(const FString &AbsoluteFileName)
Definition GenericPlatformMisc.h:1950
static CORE_API bool IsPGIActive()
Definition GenericPlatformMisc.cpp:2124
Definition Guid.h:109
Definition GenericPlatformMisc.h:428
Definition GenericPlatformMisc.h:458
Definition UnixPlatformMisc.h:23
static CORE_API void SetGracefulTerminationHandler()
Definition UnixPlatformCrashContext.cpp:1052
static CORE_API bool GetContextSwitchStats(FContextSwitchStats &OutStats, EContextSwitchFlags Flags=EContextSwitchFlags::All)
Definition UnixPlatformTime.cpp:417
static CORE_API void UngrabAllInput()
Definition UnixPlatformMisc.cpp:1769
static CORE_API int32 NumberOfCores()
Definition UnixPlatformMisc.cpp:628
static CORE_API bool SetupSyscallFilters()
Definition UnixPlatformMisc.cpp:1969
static UE_FORCEINLINE_HINT void MemoryBarrier()
Definition UnixPlatformMisc.h:60
static CORE_API int32 GetMaxPathLength()
Definition UnixPlatformMisc.cpp:284
static CORE_API FString GetOperatingSystemId()
Definition UnixPlatformMisc.cpp:1526
static const TCHAR * GetPathVarDelimiter()
Definition UnixPlatformMisc.h:53
static CORE_API bool HasOverriddenReturnCode(uint8 *OverriddenReturnCodeToUsePtr)
Definition UnixPlatformMisc.cpp:423
static CORE_API EAppReturnType::Type MessageBoxExt(EAppMsgType::Type MsgType, const TCHAR *Text, const TCHAR *Caption)
Definition UnixPlatformMisc.cpp:616
static CORE_API void PlatformPreInit()
Definition UnixPlatformMisc.cpp:173
static CORE_API uint32 GetLastError()
Definition UnixPlatformMisc.cpp:609
static CORE_API void GetOSVersions(FString &out_OSVersionLabel, FString &out_OSSubVersionLabel)
Definition UnixPlatformMisc.cpp:509
static CORE_API FString GetLoginId()
Definition UnixPlatformMisc.cpp:1777
static CORE_API const TCHAR * GetSystemErrorMessage(TCHAR *OutBuffer, int32 BufferCount, int32 Error)
Definition UnixPlatformMisc.cpp:595
static CORE_API void PlatformInit()
Definition UnixPlatformMisc.cpp:180
static CORE_API const TCHAR * GetNullRHIShaderFormat()
Definition UnixPlatformMisc.cpp:770
static CORE_API bool HasNonoptionalCPUFeatures()
Definition UnixPlatformMisc.cpp:1432
static CORE_API void RequestExit(bool Force, const TCHAR *CallSite=nullptr)
Definition UnixPlatformMisc.cpp:343
static CORE_API bool SetStoredValues(const FString &InStoreId, const FString &InSectionName, const TMap< FString, FString > &InKeyValues)
Definition UnixPlatformMisc.cpp:1816
static CORE_API FString GetEnvironmentVariable(const TCHAR *VariableName)
Definition UnixPlatformMisc.cpp:289
static CORE_API FString GetCPUBrand()
Definition UnixPlatformMisc.cpp:1234
static CORE_API bool GetBlockingIOStats(FProcessIOStats &OutStats, EInputOutputFlags Flags=EInputOutputFlags::All)
Definition UnixPlatformTime.cpp:402
static CORE_API FString GetCPUVendor()
Definition UnixPlatformMisc.cpp:1181
static CORE_API void NormalizePath(FString &InPath)
Definition UnixPlatformMisc.cpp:92
static CORE_API int32 NumberOfCoresIncludingHyperthreads()
Definition UnixPlatformMisc.cpp:741
static CORE_API void SetEnvironmentVar(const TCHAR *VariableName, const TCHAR *Value)
Definition UnixPlatformMisc.cpp:319
static CORE_API uint32 GetCPUModelID()
Definition UnixPlatformMisc.cpp:1272
static CORE_API bool HasCPUIDInstruction()
Definition UnixPlatformMisc.cpp:1172
UE_DEPRECATED(4.21, "void FPlatformMisc::GetEnvironmentVariable(Name, Result, Length) is deprecated. Use FString FPlatformMisc::GetEnvironmentVariable(Name) instead.") static CORE_API void GetEnvironmentVariable(const TCHAR *VariableName
static CORE_API bool IsRunningOnBattery()
Definition UnixPlatformMisc.cpp:1628
static CORE_API bool HasBeenStartedRemotely()
Definition UnixPlatformMisc.cpp:1511
static CORE_API void SetCrashHandler(void(*CrashHandler)(const FGenericCrashContext &Context))
Definition UnixPlatformCrashContext.cpp:1122
TCHAR int32 ResultLength
Definition UnixPlatformMisc.h:32
static CORE_API void LowLevelOutputDebugString(const TCHAR *Message)
Definition UnixPlatformMisc.cpp:333
static CORE_API void RequestExitWithStatus(bool Force, uint8 ReturnCode, const TCHAR *CallSite=nullptr)
Definition UnixPlatformMisc.cpp:401
static CORE_API TArray< uint8 > GetMacAddress()
Definition UnixPlatformMisc.cpp:1576
static CORE_API FString GetPrimaryGPUBrand()
Definition UnixPlatformMisc.cpp:1374
static CORE_API FString GetOSVersion()
Definition UnixPlatformMisc.cpp:555
static CORE_API IPlatformChunkInstall * GetPlatformChunkInstall()
Definition UnixPlatformMisc.cpp:1782
static CORE_API bool NeedsNonoptionalCPUFeaturesCheck()
Definition UnixPlatformMisc.cpp:1454
static CORE_API bool GetPageFaultStats(FPageFaultStats &OutStats, EPageFaultFlags Flags=EPageFaultFlags::All)
Definition UnixPlatformTime.cpp:392
static CORE_API bool GetDiskTotalAndFreeSpace(const FString &InPath, uint64 &TotalNumberOfBytes, uint64 &NumberOfFreeBytes)
Definition UnixPlatformMisc.cpp:1557
static CORE_API uint32 GetCPUMicrocodeRevision()
Definition UnixPlatformMisc.cpp:1277
static CORE_API bool IsDebuggerPresent()
Definition UnixPlatformMisc.cpp:1465
TCHAR * Result
Definition UnixPlatformMisc.h:32
static CORE_API void PlatformTearDown()
Definition UnixPlatformMisc.cpp:264
static CORE_API uint32 GetCPUInfo()
Definition UnixPlatformMisc.cpp:1216
static CORE_API void CreateGuid(FGuid &Result)
Definition UnixPlatformMisc.cpp:1750
static CORE_API int32 NumberOfWorkerThreadsToSpawn()
Definition UnixPlatformMisc.cpp:1837