mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-05-15 23:54:24 -04:00
kern: support null resource limit in KSecureSystemResource
This commit is contained in:
parent
2e204ccbaf
commit
86e4bed056
2 changed files with 15 additions and 6 deletions
|
@ -94,7 +94,11 @@ namespace ams::kern {
|
|||
static void PostDestroy(uintptr_t arg) { MESOSPHERE_UNUSED(arg); /* ... */ }
|
||||
|
||||
ALWAYS_INLINE size_t CalculateRequiredSecureMemorySize() const {
|
||||
if (m_resource_limit != nullptr) {
|
||||
return CalculateRequiredSecureMemorySize(m_resource_size, m_resource_pool);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
ALWAYS_INLINE size_t GetSize() const { return m_resource_size; }
|
||||
|
|
|
@ -59,7 +59,9 @@ namespace ams::kern {
|
|||
memory_reservation.Commit();
|
||||
|
||||
/* Open reference to our resource limit. */
|
||||
if (m_resource_limit != nullptr) {
|
||||
m_resource_limit->Open();
|
||||
}
|
||||
|
||||
/* Set ourselves as initialized. */
|
||||
m_is_initialized = true;
|
||||
|
@ -76,12 +78,15 @@ namespace ams::kern {
|
|||
/* Free our secure memory. */
|
||||
KSystemControl::FreeSecureMemory(m_resource_address, m_resource_size, m_resource_pool);
|
||||
|
||||
/* Clean up our resource usage. */
|
||||
if (m_resource_limit != nullptr) {
|
||||
/* Release the memory reservation. */
|
||||
m_resource_limit->Release(ams::svc::LimitableResource_PhysicalMemoryMax, this->CalculateRequiredSecureMemorySize());
|
||||
|
||||
/* Close reference to our resource limit. */
|
||||
m_resource_limit->Close();
|
||||
}
|
||||
}
|
||||
|
||||
size_t KSecureSystemResource::CalculateRequiredSecureMemorySize(size_t size, KMemoryManager::Pool pool) {
|
||||
return KSystemControl::CalculateRequiredSecureMemorySize(size, pool);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue