mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	FileSys/Kernel: Implement SetSize service call for File objects.
This commit is contained in:
		
							parent
							
								
									d34673990b
								
							
						
					
					
						commit
						23c2fbfc7a
					
				
					 6 changed files with 49 additions and 0 deletions
				
			
		|  | @ -43,6 +43,13 @@ public: | |||
|      */ | ||||
|     virtual size_t GetSize() const = 0; | ||||
| 
 | ||||
|     /**
 | ||||
|      * Set the size of the file in bytes | ||||
|      * @param size New size of the file | ||||
|      * @return true if successful | ||||
|      */ | ||||
|     virtual bool SetSize(const u64 size) const = 0; | ||||
| 
 | ||||
|     /**
 | ||||
|      * Close the file | ||||
|      * @return true if the file closed correctly | ||||
|  |  | |||
|  | @ -48,6 +48,15 @@ size_t File_RomFS::GetSize() const { | |||
|     return -1; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Set the size of the file in bytes | ||||
|  * @param size New size of the file | ||||
|  * @return true if successful | ||||
|  */ | ||||
| bool File_RomFS::SetSize(const u64 size) const { | ||||
|     return false; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Close the file | ||||
|  * @return true if the file closed correctly | ||||
|  |  | |||
|  | @ -44,6 +44,13 @@ public: | |||
|      */ | ||||
|     size_t GetSize() const override; | ||||
| 
 | ||||
|     /**
 | ||||
|      * Set the size of the file in bytes | ||||
|      * @param size New size of the file | ||||
|      * @return true if successful | ||||
|      */ | ||||
|     bool SetSize(const u64 size) const override; | ||||
| 
 | ||||
|     /**
 | ||||
|      * Close the file | ||||
|      * @return true if the file closed correctly | ||||
|  |  | |||
|  | @ -75,6 +75,17 @@ size_t File_SDMC::GetSize() const { | |||
|     return static_cast<size_t>(file->GetSize()); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Set the size of the file in bytes | ||||
|  * @param size New size of the file | ||||
|  * @return true if successful | ||||
|  */ | ||||
| bool File_SDMC::SetSize(const u64 size) const { | ||||
|     file->Resize(size); | ||||
|     file->Flush(); | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Close the file | ||||
|  * @return true if the file closed correctly | ||||
|  |  | |||
|  | @ -47,6 +47,13 @@ public: | |||
|      */ | ||||
|     size_t GetSize() const override; | ||||
| 
 | ||||
|     /**
 | ||||
|      * Set the size of the file in bytes | ||||
|      * @param size New size of the file | ||||
|      * @return true if successful | ||||
|      */ | ||||
|     bool SetSize(const u64 size) const override; | ||||
| 
 | ||||
|     /**
 | ||||
|      * Close the file | ||||
|      * @return true if the file closed correctly | ||||
|  |  | |||
|  | @ -181,6 +181,14 @@ public: | |||
|             break; | ||||
|         } | ||||
| 
 | ||||
|         case FileCommand::SetSize: | ||||
|         { | ||||
|             u64 size = cmd_buff[1] | ((u64)cmd_buff[2] << 32); | ||||
|             DEBUG_LOG(KERNEL, "SetSize %s %s size=%d", GetTypeName().c_str(), GetName().c_str(), size); | ||||
|             backend->SetSize(size); | ||||
|             break; | ||||
|         } | ||||
| 
 | ||||
|         case FileCommand::Close: | ||||
|         { | ||||
|             DEBUG_LOG(KERNEL, "Close %s %s", GetTypeName().c_str(), GetName().c_str()); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue