summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/svc_types.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-03-27 02:13:46 +0100
committerbunnei <bunneidev@gmail.com>2020-04-17 06:59:28 +0200
commitad48ebb2c857c93efd5e37fad700a058c6bdeac9 (patch)
treebe27e97f9b682487c47677f2d9e7641158c341b5 /src/core/hle/kernel/svc_types.h
parentcore: kernel: Move SVC to its own namesapce. (diff)
downloadyuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.tar
yuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.tar.gz
yuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.tar.bz2
yuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.tar.lz
yuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.tar.xz
yuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.tar.zst
yuzu-ad48ebb2c857c93efd5e37fad700a058c6bdeac9.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/svc_types.h68
1 files changed, 68 insertions, 0 deletions
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 @@
+// Copyright 2020 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "common/common_funcs.h"
+#include "common/common_types.h"
+
+namespace Kernel::Svc {
+
+enum class MemoryState : u32 {
+ Free = 0x00,
+ Io = 0x01,
+ Static = 0x02,
+ Code = 0x03,
+ CodeData = 0x04,
+ Normal = 0x05,
+ Shared = 0x06,
+ Alias = 0x07,
+ AliasCode = 0x08,
+ AliasCodeData = 0x09,
+ Ipc = 0x0A,
+ Stack = 0x0B,
+ ThreadLocal = 0x0C,
+ Transfered = 0x0D,
+ SharedTransfered = 0x0E,
+ SharedCode = 0x0F,
+ Inaccessible = 0x10,
+ NonSecureIpc = 0x11,
+ NonDeviceIpc = 0x12,
+ Kernel = 0x13,
+ GeneratedCode = 0x14,
+ CodeOut = 0x15,
+};
+DECLARE_ENUM_FLAG_OPERATORS(MemoryState);
+
+enum class MemoryAttribute : u32 {
+ Locked = (1 << 0),
+ IpcLocked = (1 << 1),
+ DeviceShared = (1 << 2),
+ Uncached = (1 << 3),
+};
+DECLARE_ENUM_FLAG_OPERATORS(MemoryAttribute);
+
+enum class MemoryPermission : u32 {
+ None = (0 << 0),
+ Read = (1 << 0),
+ Write = (1 << 1),
+ Execute = (1 << 2),
+ ReadWrite = Read | Write,
+ ReadExecute = Read | Execute,
+ DontCare = (1 << 28),
+};
+DECLARE_ENUM_FLAG_OPERATORS(MemoryPermission);
+
+struct MemoryInfo {
+ u64 addr{};
+ u64 size{};
+ MemoryState state{};
+ MemoryAttribute attr{};
+ MemoryPermission perm{};
+ u32 ipc_refcount{};
+ u32 device_refcount{};
+ u32 padding{};
+};
+
+} // namespace Kernel::Svc