summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvdrv/devices/nvmap.h
diff options
context:
space:
mode:
authorgreggameplayer <33609333+greggameplayer@users.noreply.github.com>2018-05-23 12:34:42 +0200
committerGitHub <noreply@github.com>2018-05-23 12:34:42 +0200
commit8c648b59cdf1a8897aee65fd4d6161d01fce68e3 (patch)
tree43660389adcb9b1d85afe1d74a97b47a7b5ce28a /src/core/hle/service/nvdrv/devices/nvmap.h
parentAdd ioctl commands with their params and size check (diff)
downloadyuzu-8c648b59cdf1a8897aee65fd4d6161d01fce68e3.tar
yuzu-8c648b59cdf1a8897aee65fd4d6161d01fce68e3.tar.gz
yuzu-8c648b59cdf1a8897aee65fd4d6161d01fce68e3.tar.bz2
yuzu-8c648b59cdf1a8897aee65fd4d6161d01fce68e3.tar.lz
yuzu-8c648b59cdf1a8897aee65fd4d6161d01fce68e3.tar.xz
yuzu-8c648b59cdf1a8897aee65fd4d6161d01fce68e3.tar.zst
yuzu-8c648b59cdf1a8897aee65fd4d6161d01fce68e3.zip
Diffstat (limited to 'src/core/hle/service/nvdrv/devices/nvmap.h')
-rw-r--r--src/core/hle/service/nvdrv/devices/nvmap.h46
1 files changed, 25 insertions, 21 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvmap.h b/src/core/hle/service/nvdrv/devices/nvmap.h
index 5a3044167..39fafaa7c 100644
--- a/src/core/hle/service/nvdrv/devices/nvmap.h
+++ b/src/core/hle/service/nvdrv/devices/nvmap.h
@@ -59,17 +59,25 @@ private:
Create = 0xC0080101,
FromId = 0xC0080103,
Alloc = 0xC0200104,
+ Free = 0xC0180105,
Param = 0xC00C0109,
GetId = 0xC008010E,
- Free = 0xC0180105,
};
-
struct IocCreateParams {
// Input
u32_le size;
// Output
u32_le handle;
};
+ static_assert(sizeof(IocCreateParams) == 8, "IocCreateParams has wrong size");
+
+ struct IocFromIdParams {
+ // Input
+ u32_le id;
+ // Output
+ u32_le handle;
+ };
+ static_assert(sizeof(IocFromIdParams) == 8, "IocFromIdParams has wrong size");
struct IocAllocParams {
// Input
@@ -81,37 +89,33 @@ private:
INSERT_PADDING_BYTES(7);
u64_le addr;
};
+ static_assert(sizeof(IocAllocParams) == 32, "IocAllocParams has wrong size");
- struct IocGetIdParams {
- // Output
- u32_le id;
- // Input
- u32_le handle;
- };
-
- struct IocFromIdParams {
- // Input
- u32_le id;
- // Output
+ struct IocFreeParams {
u32_le handle;
+ INSERT_PADDING_BYTES(4);
+ u64_le refcount;
+ u32_le size;
+ u32_le flags;
};
+ static_assert(sizeof(IocFreeParams) == 24, "IocFreeParams has wrong size");
struct IocParamParams {
// Input
u32_le handle;
- u32_le type;
+ u32_le param;
// Output
- u32_le value;
+ u32_le result;
};
+ static_assert(sizeof(IocParamParams) == 12, "IocParamParams has wrong size");
- struct IocFreeParams {
+ struct IocGetIdParams {
+ // Output
+ u32_le id;
+ // Input
u32_le handle;
- INSERT_PADDING_BYTES(4);
- u64_le refcount;
- u32_le size;
- u32_le flags;
};
- static_assert(sizeof(IocFreeParams) == 24, "IocFreeParams has wrong size");
+ static_assert(sizeof(IocGetIdParams) == 8, "IocGetIdParams has wrong size");
u32 IocCreate(const std::vector<u8>& input, std::vector<u8>& output);
u32 IocAlloc(const std::vector<u8>& input, std::vector<u8>& output);