mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-06-01 07:18:22 -04:00
kern: implement revised IPI/SGI semantics
This commit is contained in:
parent
9d89835ff8
commit
ff07ba4201
9 changed files with 103 additions and 20 deletions
|
@ -67,6 +67,16 @@ namespace ams::kern {
|
|||
return mask;
|
||||
}();
|
||||
|
||||
static constexpr inline u64 ConvertVirtualCoreMaskToPhysical(u64 v_core_mask) {
|
||||
u64 p_core_mask = 0;
|
||||
while (v_core_mask != 0) {
|
||||
const u64 next = __builtin_ctzll(v_core_mask);
|
||||
v_core_mask &= ~(static_cast<u64>(1) << next);
|
||||
p_core_mask |= (static_cast<u64>(1) << cpu::VirtualToPhysicalCoreMap[next]);
|
||||
}
|
||||
return p_core_mask;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static_assert(cpu::NumCores <= cpu::NumVirtualCores);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue