2020-04-05 20:39:08 +02:00
|
|
|
// Copyright 2020 yuzu Emulator Project
|
|
|
|
// Licensed under GPLv2 or any later version
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
2020-05-03 19:01:01 +02:00
|
|
|
// This file references various implementation details from Atmosphere, an open-source firmware for
|
|
|
|
// the Nintendo Switch. Copyright 2018-2020 Atmosphere-NX.
|
2020-04-15 03:50:19 +02:00
|
|
|
|
2020-04-05 20:39:08 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "common/common_types.h"
|
|
|
|
|
|
|
|
namespace Kernel::Memory {
|
|
|
|
|
2020-07-13 16:33:36 +02:00
|
|
|
struct AddressSpaceInfo final {
|
2020-04-05 20:39:08 +02:00
|
|
|
enum class Type : u32 {
|
|
|
|
Is32Bit = 0,
|
|
|
|
Small64Bit = 1,
|
|
|
|
Large64Bit = 2,
|
|
|
|
Heap = 3,
|
|
|
|
Stack = 4,
|
|
|
|
Alias = 5,
|
|
|
|
Count,
|
|
|
|
};
|
|
|
|
|
|
|
|
static u64 GetAddressSpaceStart(std::size_t width, Type type);
|
|
|
|
static std::size_t GetAddressSpaceSize(std::size_t width, Type type);
|
|
|
|
|
2020-07-13 16:33:36 +02:00
|
|
|
const std::size_t bit_width{};
|
|
|
|
const std::size_t address{};
|
|
|
|
const std::size_t size{};
|
|
|
|
const Type type{};
|
2020-04-05 20:39:08 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace Kernel::Memory
|