diff options
author | greggameplayer <33609333+greggameplayer@users.noreply.github.com> | 2018-05-23 12:34:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-23 12:34:42 +0200 |
commit | 8c648b59cdf1a8897aee65fd4d6161d01fce68e3 (patch) | |
tree | 43660389adcb9b1d85afe1d74a97b47a7b5ce28a /src/core/hle/service/nvdrv/devices | |
parent | Add ioctl commands with their params and size check (diff) | |
download | yuzu-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')
-rw-r--r-- | src/core/hle/service/nvdrv/devices/nvmap.h | 46 |
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); |