summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/svc.cpp1
-rw-r--r--src/core/hle/kernel/svc_types.h68
2 files changed, 69 insertions, 0 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 7b24cfc8b..abd579097 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -31,6 +31,7 @@
31#include "core/hle/kernel/scheduler.h" 31#include "core/hle/kernel/scheduler.h"
32#include "core/hle/kernel/shared_memory.h" 32#include "core/hle/kernel/shared_memory.h"
33#include "core/hle/kernel/svc.h" 33#include "core/hle/kernel/svc.h"
34#include "core/hle/kernel/svc_types.h"
34#include "core/hle/kernel/svc_wrap.h" 35#include "core/hle/kernel/svc_wrap.h"
35#include "core/hle/kernel/synchronization.h" 36#include "core/hle/kernel/synchronization.h"
36#include "core/hle/kernel/thread.h" 37#include "core/hle/kernel/thread.h"
diff --git a/src/core/hle/kernel/svc_types.h b/src/core/hle/kernel/svc_types.h
new file mode 100644
index 000000000..986724beb
--- /dev/null
+++ b/src/core/hle/kernel/svc_types.h
@@ -0,0 +1,68 @@
1// Copyright 2020 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "common/common_funcs.h"
8#include "common/common_types.h"
9
10namespace Kernel::Svc {
11
12enum class MemoryState : u32 {
13 Free = 0x00,
14 Io = 0x01,
15 Static = 0x02,
16 Code = 0x03,
17 CodeData = 0x04,
18 Normal = 0x05,
19 Shared = 0x06,
20 Alias = 0x07,
21 AliasCode = 0x08,
22 AliasCodeData = 0x09,
23 Ipc = 0x0A,
24 Stack = 0x0B,
25 ThreadLocal = 0x0C,
26 Transfered = 0x0D,
27 SharedTransfered = 0x0E,
28 SharedCode = 0x0F,
29 Inaccessible = 0x10,
30 NonSecureIpc = 0x11,
31 NonDeviceIpc = 0x12,
32 Kernel = 0x13,
33 GeneratedCode = 0x14,
34 CodeOut = 0x15,
35};
36DECLARE_ENUM_FLAG_OPERATORS(MemoryState);
37
38enum class MemoryAttribute : u32 {
39 Locked = (1 << 0),
40 IpcLocked = (1 << 1),
41 DeviceShared = (1 << 2),
42 Uncached = (1 << 3),
43};
44DECLARE_ENUM_FLAG_OPERATORS(MemoryAttribute);
45
46enum class MemoryPermission : u32 {
47 None = (0 << 0),
48 Read = (1 << 0),
49 Write = (1 << 1),
50 Execute = (1 << 2),
51 ReadWrite = Read | Write,
52 ReadExecute = Read | Execute,
53 DontCare = (1 << 28),
54};
55DECLARE_ENUM_FLAG_OPERATORS(MemoryPermission);
56
57struct MemoryInfo {
58 u64 addr{};
59 u64 size{};
60 MemoryState state{};
61 MemoryAttribute attr{};
62 MemoryPermission perm{};
63 u32 ipc_refcount{};
64 u32 device_refcount{};
65 u32 padding{};
66};
67
68} // namespace Kernel::Svc