mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	correct placement and add size check
This commit is contained in:
		
							parent
							
								
									f217d6c66f
								
							
						
					
					
						commit
						8c648b59cd
					
				@ -59,17 +59,25 @@ private:
 | 
				
			|||||||
        Create = 0xC0080101,
 | 
					        Create = 0xC0080101,
 | 
				
			||||||
        FromId = 0xC0080103,
 | 
					        FromId = 0xC0080103,
 | 
				
			||||||
        Alloc = 0xC0200104,
 | 
					        Alloc = 0xC0200104,
 | 
				
			||||||
 | 
					        Free = 0xC0180105,
 | 
				
			||||||
        Param = 0xC00C0109,
 | 
					        Param = 0xC00C0109,
 | 
				
			||||||
        GetId = 0xC008010E,
 | 
					        GetId = 0xC008010E,
 | 
				
			||||||
        Free = 0xC0180105,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					 | 
				
			||||||
    struct IocCreateParams {
 | 
					    struct IocCreateParams {
 | 
				
			||||||
        // Input
 | 
					        // Input
 | 
				
			||||||
        u32_le size;
 | 
					        u32_le size;
 | 
				
			||||||
        // Output
 | 
					        // Output
 | 
				
			||||||
        u32_le handle;
 | 
					        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 {
 | 
					    struct IocAllocParams {
 | 
				
			||||||
        // Input
 | 
					        // Input
 | 
				
			||||||
@ -81,28 +89,7 @@ private:
 | 
				
			|||||||
        INSERT_PADDING_BYTES(7);
 | 
					        INSERT_PADDING_BYTES(7);
 | 
				
			||||||
        u64_le addr;
 | 
					        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
 | 
					 | 
				
			||||||
        u32_le handle;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    struct IocParamParams {
 | 
					 | 
				
			||||||
        // Input
 | 
					 | 
				
			||||||
        u32_le handle;
 | 
					 | 
				
			||||||
        u32_le type;
 | 
					 | 
				
			||||||
        // Output
 | 
					 | 
				
			||||||
        u32_le value;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    struct IocFreeParams {
 | 
					    struct IocFreeParams {
 | 
				
			||||||
        u32_le handle;
 | 
					        u32_le handle;
 | 
				
			||||||
@ -113,6 +100,23 @@ private:
 | 
				
			|||||||
    };
 | 
					    };
 | 
				
			||||||
    static_assert(sizeof(IocFreeParams) == 24, "IocFreeParams has wrong size");
 | 
					    static_assert(sizeof(IocFreeParams) == 24, "IocFreeParams has wrong size");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    struct IocParamParams {
 | 
				
			||||||
 | 
					        // Input
 | 
				
			||||||
 | 
					        u32_le handle;
 | 
				
			||||||
 | 
					        u32_le param;
 | 
				
			||||||
 | 
					        // Output
 | 
				
			||||||
 | 
					        u32_le result;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    static_assert(sizeof(IocParamParams) == 12, "IocParamParams has wrong size");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    struct IocGetIdParams {
 | 
				
			||||||
 | 
					        // Output
 | 
				
			||||||
 | 
					        u32_le id;
 | 
				
			||||||
 | 
					        // Input
 | 
				
			||||||
 | 
					        u32_le handle;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    static_assert(sizeof(IocGetIdParams) == 8, "IocGetIdParams has wrong size");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    u32 IocCreate(const std::vector<u8>& input, std::vector<u8>& output);
 | 
					    u32 IocCreate(const std::vector<u8>& input, std::vector<u8>& output);
 | 
				
			||||||
    u32 IocAlloc(const std::vector<u8>& input, std::vector<u8>& output);
 | 
					    u32 IocAlloc(const std::vector<u8>& input, std::vector<u8>& output);
 | 
				
			||||||
    u32 IocGetId(const std::vector<u8>& input, std::vector<u8>& output);
 | 
					    u32 IocGetId(const std::vector<u8>& input, std::vector<u8>& output);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user