summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar bunnei2020-03-26 21:13:46 -0400
committerGravatar bunnei2020-04-17 00:59:28 -0400
commitad48ebb2c857c93efd5e37fad700a058c6bdeac9 (patch)
treebe27e97f9b682487c47677f2d9e7641158c341b5 /src/core
parentcore: kernel: Move SVC to its own namesapce. (diff)
downloadyuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.tar.gz
yuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.tar.xz
yuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.zip
core: kernel: Add svc_types header to include SVC-specific types.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/CMakeLists.txt1
-rw-r--r--src/core/hle/kernel/svc.cpp1
-rw-r--r--src/core/hle/kernel/svc_types.h68
3 files changed, 70 insertions, 0 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index c15d9f52f..1ea243283 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -178,6 +178,7 @@ add_library(core STATIC
178 hle/kernel/shared_memory.h 178 hle/kernel/shared_memory.h
179 hle/kernel/svc.cpp 179 hle/kernel/svc.cpp
180 hle/kernel/svc.h 180 hle/kernel/svc.h
181 hle/kernel/svc_types.h
181 hle/kernel/svc_wrap.h 182 hle/kernel/svc_wrap.h
182 hle/kernel/synchronization_object.cpp 183 hle/kernel/synchronization_object.cpp
183 hle/kernel/synchronization_object.h 184 hle/kernel/synchronization_object.h
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