mirror of
https://github.com/Atmosphere-NX/Atmosphere-libs.git
synced 2025-06-29 14:32:58 +02:00
kern: remove firmare-specific SignalAndModify impl
Nintendo made this breaking change because there was zero official software relying on it, so it's safe for us to make the same change.
This commit is contained in:
parent
68e98575be
commit
d264381030
@ -103,7 +103,6 @@ namespace ams::kern {
|
|||||||
auto it = m_tree.nfind_key({ addr, -1 });
|
auto it = m_tree.nfind_key({ addr, -1 });
|
||||||
/* Determine the updated value. */
|
/* Determine the updated value. */
|
||||||
s32 new_value;
|
s32 new_value;
|
||||||
if (GetTargetFirmware() >= TargetFirmware_7_0_0) {
|
|
||||||
if (count <= 0) {
|
if (count <= 0) {
|
||||||
if ((it != m_tree.end()) && (it->GetAddressArbiterKey() == addr)) {
|
if ((it != m_tree.end()) && (it->GetAddressArbiterKey() == addr)) {
|
||||||
new_value = value - 2;
|
new_value = value - 2;
|
||||||
@ -129,30 +128,6 @@ namespace ams::kern {
|
|||||||
new_value = value + 1;
|
new_value = value + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (count <= 0) {
|
|
||||||
if ((it != m_tree.end()) && (it->GetAddressArbiterKey() == addr)) {
|
|
||||||
new_value = value - 1;
|
|
||||||
} else {
|
|
||||||
new_value = value + 1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
auto tmp_it = it;
|
|
||||||
s32 tmp_num_waiters = 0;
|
|
||||||
while ((tmp_it != m_tree.end()) && (tmp_it->GetAddressArbiterKey() == addr) && (tmp_num_waiters < count + 1)) {
|
|
||||||
++tmp_num_waiters;
|
|
||||||
++tmp_it;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tmp_num_waiters == 0) {
|
|
||||||
new_value = value + 1;
|
|
||||||
} else if (tmp_num_waiters <= count) {
|
|
||||||
new_value = value - 1;
|
|
||||||
} else {
|
|
||||||
new_value = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check the userspace value. */
|
/* Check the userspace value. */
|
||||||
s32 user_value;
|
s32 user_value;
|
||||||
|
Loading…
Reference in New Issue
Block a user