mirror of
https://github.com/Atmosphere-NX/Atmosphere-libs.git
synced 2025-06-30 23:12:13 +02:00
libvapours: add (kibi/mebi/gibi)byte literals
This commit is contained in:
parent
929c40f9d7
commit
18414efc29
@ -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
libvapours/include/vapours/literals.hpp
Normal file
33
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);
|
||||
}
|
||||
|
||||
} }
|
Loading…
Reference in New Issue
Block a user