mirror of
https://github.com/Atmosphere-NX/Atmosphere
synced 2024-12-22 20:31:14 +00:00
libvapours: add (kibi/mebi/gibi)byte literals
This commit is contained in:
parent
43c0e39c34
commit
b965e3f335
4 changed files with 57 additions and 30 deletions
|
@ -20,11 +20,6 @@ namespace ams::kern {
|
|||
|
||||
namespace {
|
||||
|
||||
/* Convenience definitions. */
|
||||
constexpr size_t FourGigabytes = 0x100000000ul;
|
||||
constexpr size_t SixGigabytes = 0x180000000ul;
|
||||
constexpr size_t EightGigabytes = 0x200000000ul;
|
||||
|
||||
ALWAYS_INLINE size_t GetRealMemorySizeForInit() {
|
||||
/* TODO: Move this into a header for the MC in general. */
|
||||
constexpr u32 MemoryControllerConfigurationRegister = 0x70019050;
|
||||
|
@ -49,11 +44,11 @@ namespace ams::kern {
|
|||
switch (GetKernelConfigurationForInit().Get<smc::KernelConfiguration::MemorySize>()) {
|
||||
case smc::MemorySize_4GB:
|
||||
default: /* All invalid modes should go to 4GB. */
|
||||
return FourGigabytes;
|
||||
return 4_GB;
|
||||
case smc::MemorySize_6GB:
|
||||
return SixGigabytes;
|
||||
return 6_GB;
|
||||
case smc::MemorySize_8GB:
|
||||
return EightGigabytes;
|
||||
return 8_GB;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#pragma once
|
||||
#include "vapours/includes.hpp"
|
||||
#include "vapours/defines.hpp"
|
||||
#include "vapours/literals.hpp"
|
||||
|
||||
#include "vapours/util.hpp"
|
||||
#include "vapours/results.hpp"
|
||||
|
|
33
libraries/libvapours/include/vapours/literals.hpp
Normal file
33
libraries/libvapours/include/vapours/literals.hpp
Normal file
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2019 Atmosphère-NX
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
#include "../defines.hpp"
|
||||
|
||||
namespace ams { inline namespace literals {
|
||||
|
||||
constexpr ALWAYS_INLINE size_t operator ""_KB(unsigned long long n) {
|
||||
return static_cast<size_t>(n) * size_t(1024);
|
||||
}
|
||||
|
||||
constexpr ALWAYS_INLINE size_t operator ""_MB(unsigned long long n) {
|
||||
return operator ""_KB(n) * size_t(1024);
|
||||
}
|
||||
|
||||
constexpr ALWAYS_INLINE size_t operator ""_GB(unsigned long long n) {
|
||||
return operator ""_MB(n) * size_t(1024);
|
||||
}
|
||||
|
||||
} }
|
|
@ -28,19 +28,17 @@ namespace ams::pm::resource {
|
|||
};
|
||||
constexpr size_t LimitableResource_Count = util::size(LimitableResources);
|
||||
|
||||
constexpr size_t Megabyte = 0x100000;
|
||||
|
||||
/* Definitions for limit differences over time. */
|
||||
constexpr size_t ExtraSystemThreadCount400 = 100;
|
||||
constexpr size_t ExtraSystemMemorySize400 = 10 * Megabyte;
|
||||
constexpr size_t ExtraSystemMemorySize500 = 12 * Megabyte;
|
||||
constexpr size_t ExtraSystemMemorySize400 = 10_MB;
|
||||
constexpr size_t ExtraSystemMemorySize500 = 12_MB;
|
||||
constexpr size_t ExtraSystemEventCount600 = 100;
|
||||
constexpr size_t ExtraSystemSessionCount600 = 100;
|
||||
constexpr size_t ReservedMemorySize600 = 5 * Megabyte;
|
||||
constexpr size_t ReservedMemorySize600 = 5_MB;
|
||||
|
||||
/* Atmosphere always allocates extra memory for system usage. */
|
||||
constexpr size_t ExtraSystemMemorySizeAtmosphere = 24 * Megabyte;
|
||||
constexpr size_t ExtraSystemMemorySizeAtmosphere500 = 33 * Megabyte; /* Applet pool is 0x20100000 */
|
||||
constexpr size_t ExtraSystemMemorySizeAtmosphere = 24_MB;
|
||||
constexpr size_t ExtraSystemMemorySizeAtmosphere500 = 33_MB; /* Applet pool is 0x20100000 */
|
||||
|
||||
/* Globals. */
|
||||
os::Mutex g_resource_limit_lock;
|
||||
|
@ -75,29 +73,29 @@ namespace ams::pm::resource {
|
|||
|
||||
u64 g_memory_resource_limits[spl::MemoryArrangement_Count][ResourceLimitGroup_Count] = {
|
||||
[spl::MemoryArrangement_Standard] = {
|
||||
[ResourceLimitGroup_System] = 269 * Megabyte,
|
||||
[ResourceLimitGroup_Application] = 3285 * Megabyte,
|
||||
[ResourceLimitGroup_Applet] = 535 * Megabyte,
|
||||
[ResourceLimitGroup_System] = 269_MB,
|
||||
[ResourceLimitGroup_Application] = 3285_MB,
|
||||
[ResourceLimitGroup_Applet] = 535_MB,
|
||||
},
|
||||
[spl::MemoryArrangement_StandardForAppletDev] = {
|
||||
[ResourceLimitGroup_System] = 481 * Megabyte,
|
||||
[ResourceLimitGroup_Application] = 2048 * Megabyte,
|
||||
[ResourceLimitGroup_Applet] = 1560 * Megabyte,
|
||||
[ResourceLimitGroup_System] = 481_MB,
|
||||
[ResourceLimitGroup_Application] = 2048_MB,
|
||||
[ResourceLimitGroup_Applet] = 1560_MB,
|
||||
},
|
||||
[spl::MemoryArrangement_StandardForSystemDev] = {
|
||||
[ResourceLimitGroup_System] = 328 * Megabyte,
|
||||
[ResourceLimitGroup_Application] = 3285 * Megabyte,
|
||||
[ResourceLimitGroup_Applet] = 476 * Megabyte,
|
||||
[ResourceLimitGroup_System] = 328_MB,
|
||||
[ResourceLimitGroup_Application] = 3285_MB,
|
||||
[ResourceLimitGroup_Applet] = 476_MB,
|
||||
},
|
||||
[spl::MemoryArrangement_Expanded] = {
|
||||
[ResourceLimitGroup_System] = 653 * Megabyte,
|
||||
[ResourceLimitGroup_Application] = 4916 * Megabyte,
|
||||
[ResourceLimitGroup_Applet] = 568 * Megabyte,
|
||||
[ResourceLimitGroup_System] = 653_MB,
|
||||
[ResourceLimitGroup_Application] = 4916_MB,
|
||||
[ResourceLimitGroup_Applet] = 568_MB,
|
||||
},
|
||||
[spl::MemoryArrangement_ExpandedForAppletDev] = {
|
||||
[ResourceLimitGroup_System] = 653 * Megabyte,
|
||||
[ResourceLimitGroup_Application] = 3285 * Megabyte,
|
||||
[ResourceLimitGroup_Applet] = 2199 * Megabyte,
|
||||
[ResourceLimitGroup_System] = 653_MB,
|
||||
[ResourceLimitGroup_Application] = 3285_MB,
|
||||
[ResourceLimitGroup_Applet] = 2199_MB,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue