diff options
| author | 2020-03-26 21:13:46 -0400 | |
|---|---|---|
| committer | 2020-04-17 00:59:28 -0400 | |
| commit | ad48ebb2c857c93efd5e37fad700a058c6bdeac9 (patch) | |
| tree | be27e97f9b682487c47677f2d9e7641158c341b5 /src/core | |
| parent | core: kernel: Move SVC to its own namesapce. (diff) | |
| download | yuzu-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.txt | 1 | ||||
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 1 | ||||
| -rw-r--r-- | src/core/hle/kernel/svc_types.h | 68 |
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 | |||
| 10 | namespace Kernel::Svc { | ||
| 11 | |||
| 12 | enum 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 | }; | ||
| 36 | DECLARE_ENUM_FLAG_OPERATORS(MemoryState); | ||
| 37 | |||
| 38 | enum class MemoryAttribute : u32 { | ||
| 39 | Locked = (1 << 0), | ||
| 40 | IpcLocked = (1 << 1), | ||
| 41 | DeviceShared = (1 << 2), | ||
| 42 | Uncached = (1 << 3), | ||
| 43 | }; | ||
| 44 | DECLARE_ENUM_FLAG_OPERATORS(MemoryAttribute); | ||
| 45 | |||
| 46 | enum 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 | }; | ||
| 55 | DECLARE_ENUM_FLAG_OPERATORS(MemoryPermission); | ||
| 56 | |||
| 57 | struct 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 | ||