1#ifndef SEAD_CORE_INFO_H_
2#define SEAD_CORE_INFO_H_
4#include <basis/seadAssert.h>
5#include <basis/seadTypes.h>
56 static_assert(
sizeof(
ValueType) == 4,
"sead::CoreId::ValueType size mismatch");
77 return ValueType(mValue);
93static_assert(
sizeof(
CoreId) == 4,
"sead::CoreId size mismatch");
106 mMask = getCoreMask_(mId);
111 mMask = getCoreMask_(id_1) |
117 mMask = getCoreMask_(id_1) |
163 return 1u << s32(id);
170static_assert(
sizeof(
CoreIdMask) == 8,
"sead::CoreIdMask size mismatch");
190 return sPlatformCoreId[s32(id)];
195 return getCoreIdFromPlatformCoreId(OSGetCoreId());
210 mask.set((1 << sNumCores) - 1);
217 mask.set(u32(mask) - 1);
Definition seadCoreInfo.h:96
CoreIdMask(CoreId id_1, CoreId id_2)
Definition seadCoreInfo.h:109
u32 mMask
Definition seadCoreInfo.h:167
void set(u32 mask)
Definition seadCoreInfo.h:122
u32 getCoreMask_(CoreId id) const
Definition seadCoreInfo.h:161
CoreId mId
Definition seadCoreInfo.h:168
CoreIdMask(CoreId id)
Definition seadCoreInfo.h:103
CoreIdMask(CoreId id_1, CoreId id_2, CoreId id_3)
Definition seadCoreInfo.h:115
CoreIdMask()
Definition seadCoreInfo.h:98
Definition seadCoreInfo.h:12
CoreId(ValueType value)
Definition seadCoreInfo.h:64
CoreId()
Definition seadCoreInfo.h:59
ValueType value() const
Definition seadCoreInfo.h:75
ValueType
Definition seadCoreInfo.h:15
@ cSub10
Definition seadCoreInfo.h:27
@ cEnumStart
Definition seadCoreInfo.h:53
@ cSub21
Definition seadCoreInfo.h:38
@ cDontUseThis_MemSize32bit
Definition seadCoreInfo.h:52
@ cSub12
Definition seadCoreInfo.h:29
@ cMain
Definition seadCoreInfo.h:17
@ cSub19
Definition seadCoreInfo.h:36
@ cSub16
Definition seadCoreInfo.h:33
@ cSub32
Definition seadCoreInfo.h:49
@ cSub7
Definition seadCoreInfo.h:24
@ cSub24
Definition seadCoreInfo.h:41
@ cSub6
Definition seadCoreInfo.h:23
@ cSub5
Definition seadCoreInfo.h:22
@ cSub27
Definition seadCoreInfo.h:44
@ cSub13
Definition seadCoreInfo.h:30
@ cSub15
Definition seadCoreInfo.h:32
@ cSub22
Definition seadCoreInfo.h:39
@ cDontUseThis_StartNumMinus1
Definition seadCoreInfo.h:16
@ cSub11
Definition seadCoreInfo.h:28
@ cSub20
Definition seadCoreInfo.h:37
@ cSub25
Definition seadCoreInfo.h:42
@ cSub3
Definition seadCoreInfo.h:20
@ cSub29
Definition seadCoreInfo.h:46
@ cSub2
Definition seadCoreInfo.h:19
@ cSub17
Definition seadCoreInfo.h:34
@ cUndef
Definition seadCoreInfo.h:50
@ cSub4
Definition seadCoreInfo.h:21
@ cSub23
Definition seadCoreInfo.h:40
@ cSub8
Definition seadCoreInfo.h:25
@ cDontUseThis_MaxNumPlus1
Definition seadCoreInfo.h:51
@ cEnumMax
Definition seadCoreInfo.h:54
@ cSub28
Definition seadCoreInfo.h:45
@ cSub26
Definition seadCoreInfo.h:43
@ cSub30
Definition seadCoreInfo.h:47
@ cSub1
Definition seadCoreInfo.h:18
@ cSub14
Definition seadCoreInfo.h:31
@ cSub9
Definition seadCoreInfo.h:26
@ cSub31
Definition seadCoreInfo.h:48
@ cSub18
Definition seadCoreInfo.h:35
CoreId(s32 value)
Definition seadCoreInfo.h:69
Definition seadCoreInfo.h:173
static CoreIdMask getMaskAll()
Definition seadCoreInfo.h:207
static CoreId getCoreIdFromPlatformCoreId(u32 id)
Definition seadCoreInfo.h:200
static CoreIdMask getMaskSubAll()
Definition seadCoreInfo.h:214
static u32 sNumCores
Definition seadCoreInfo.h:222
static u32 getPlatformCoreId(CoreId id)
Definition seadCoreInfo.h:188
static u32 getPlatformMaskFromCoreIdMask(const CoreIdMask &mask)
static u32 getNumCores()
Definition seadCoreInfo.h:178
static u32 getPlatformMask(CoreId id)
static u32 sPlatformCoreId[32]
Definition seadCoreInfo.h:223
static CoreId sCoreIdFromPlatformCoreIdTable[32]
Definition seadCoreInfo.h:224
static u32 getPlatformMainCoreId()
Definition seadCoreInfo.h:183
static CoreId getCurrentCoreId()
Definition seadCoreInfo.h:193
Definition seadAssert.h:44
#define SEAD_ASSERT_MSG(condition, format,...)
Definition seadAssert.h:33