2021-04-03 07:16:58 +02:00
|
|
|
// Copyright 2021 yuzu emulator team
|
|
|
|
// Licensed under GPLv2 or any later version
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
namespace Core {
|
|
|
|
class System;
|
|
|
|
} // namespace Core
|
|
|
|
|
|
|
|
namespace Kernel {
|
2021-05-05 06:35:42 +02:00
|
|
|
class KernelCore;
|
2021-04-03 07:16:58 +02:00
|
|
|
class KMemoryLayout;
|
|
|
|
} // namespace Kernel
|
|
|
|
|
|
|
|
namespace Kernel::Init {
|
|
|
|
|
|
|
|
struct KSlabResourceCounts {
|
2021-05-05 06:35:42 +02:00
|
|
|
static KSlabResourceCounts CreateDefault();
|
|
|
|
|
2021-04-24 07:04:28 +02:00
|
|
|
size_t num_KProcess;
|
2021-04-03 07:16:58 +02:00
|
|
|
size_t num_KThread;
|
|
|
|
size_t num_KEvent;
|
|
|
|
size_t num_KInterruptEvent;
|
|
|
|
size_t num_KPort;
|
|
|
|
size_t num_KSharedMemory;
|
|
|
|
size_t num_KTransferMemory;
|
|
|
|
size_t num_KCodeMemory;
|
|
|
|
size_t num_KDeviceAddressSpace;
|
|
|
|
size_t num_KSession;
|
|
|
|
size_t num_KLightSession;
|
|
|
|
size_t num_KObjectName;
|
|
|
|
size_t num_KResourceLimit;
|
|
|
|
size_t num_KDebug;
|
|
|
|
size_t num_KAlpha;
|
|
|
|
size_t num_KBeta;
|
|
|
|
};
|
|
|
|
|
2021-05-05 06:35:42 +02:00
|
|
|
void InitializeSlabResourceCounts(KernelCore& kernel);
|
|
|
|
size_t CalculateTotalSlabHeapSize(const KernelCore& kernel);
|
2021-04-03 07:16:58 +02:00
|
|
|
void InitializeSlabHeaps(Core::System& system, KMemoryLayout& memory_layout);
|
|
|
|
|
|
|
|
} // namespace Kernel::Init
|