Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							b40d497e56 
							
						 
					 
					
						
						
							
							strat: update for fsp-ldr 20.0.0 changes  
						
						 
						
						
						
					 
					
						2025-05-09 12:10:09 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							8fe4159ca2 
							
						 
					 
					
						
						
							
							erpt: add remaining SubmitFsInfo helpers  
						
						 
						
						
						
					 
					
						2023-10-27 16:22:10 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							2dd93851d9 
							
						 
					 
					
						
						
							
							erpt: SubmitFileSystemProxyErrorInfo  
						
						 
						
						
						
					 
					
						2023-10-27 16:22:09 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							04ba43ff98 
							
						 
					 
					
						
						
							
							erpt: GetMmcErrorInfo, GetSdCard*Info  
						
						 
						
						
						
					 
					
						2023-10-27 16:22:09 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							f67c400289 
							
						 
					 
					
						
						
							
							erpt: begin SubmitFsinfo (SubmitMmcDetailInfo)  
						
						 
						
						
						
					 
					
						2023-10-27 16:22:09 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							c9a576e990 
							
						 
					 
					
						
						
							
							ncm: update for new 17.0.0 apis  
						
						 
						
						
						
					 
					
						2023-10-12 09:22:29 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							1465b1447b 
							
						 
					 
					
						
						
							
							libstrat: make build with new ncm/fs api changes (sysmodules probably fail to build)  
						
						 
						
						
						
					 
					
						2023-02-23 09:00:35 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							3cba51b85f 
							
						 
					 
					
						
						
							
							boot2: update for 16.0.0  
						
						 
						
						
						
					 
					
						2023-02-23 09:00:35 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							bbb682ea36 
							
						 
					 
					
						
						
							
							ncm: GetContentAccessibilities, GetContentInfo*  
						
						 
						
						
						
					 
					
						2022-10-12 09:15:44 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							a309a1273e 
							
						 
					 
					
						
						
							
							fs: fix memory leak when path is reallocated ( closes   #1842 )  
						
						 
						
						
						
					 
					
						2022-04-29 16:14:17 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							08787303a2 
							
						 
					 
					
						
						
							
							fs: update romfs types  
						
						 
						
						
						
					 
					
						2022-04-04 17:47:02 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							37089309b2 
							
						 
					 
					
						
						
							
							fs: update LocalFileSystem  
						
						 
						
						
						
					 
					
						2022-04-04 17:47:01 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							f2480c7b33 
							
						 
					 
					
						
						
							
							fs: fixup all OperateRange implementations  
						
						 
						
						
						
					 
					
						2022-04-04 17:47:01 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							6a5d2ced4b 
							
						 
					 
					
						
						
							
							ams: globally prefer R_RETURN to return for ams::Result  
						
						 
						
						
						
					 
					
						2022-04-04 17:46:58 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							6f4618ea60 
							
						 
					 
					
						
						
							
							ams: use R_SUCCEED, R_THROW globally  
						
						 
						
						
						
					 
					
						2022-04-04 17:46:57 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							99fba44125 
							
						 
					 
					
						
						
							
							fs: update IStorage::Check functions for 14.0.0  
						
						 
						
						
						
					 
					
						2022-04-04 17:46:57 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								SciresM 
							
						 
					 
					
						
						
						
						
							
						
						
							974526f708 
							
						 
					 
					
						
						
							
							fs: reduce path size 0x28 -> 0x18  
						
						 
						
						... 
						
						
						
						This implements two optimizations on fs::Path, which N added in 12.0.0.
The current structure looks like: 
```cpp
struct Path {
    const char *m_str; // Points to the read-only path string
    char *m_write_buffer_buffer; // Part of std::unique_ptr<char[], ams::fs::impl::Deleter>
    ams::fs::impl::Deleter m_write_buffer_deleter; // Parse of std::unique_ptr<char[], ams::fs::impl::Deleter>, stores the size of the buffer.
    size_t m_write_buffer_length; // Copy of the write buffer's size accessible to the Path() structure.
    bool m_is_normalized; // Whether the path buffer is normalized
};
```
This is pretty wasteful. The write buffer size is stored twice, wasting 8 bytes, because one copy of the size isn't accessible to the path.
In addition, due to alignment, the bool wastes 7 padding bytes.
This commit:
* Encodes normalized in the low bit of the write buffer length, saving 8 bytes.
* Use a custom WriteBuffer class rather than generic unique_ptr, to avoid needing to store the WriteBuffer twice.
These each save 8 bytes, for a final size of 0x18 rather than 0x28. 
						
					 
					
						2022-04-04 17:46:55 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							7a0bfc4397 
							
						 
					 
					
						
						
							
							util: add pointer utils, use to constrain fs pointers  
						
						 
						
						
						
					 
					
						2022-04-04 17:46:54 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							0f8ae6e04b 
							
						 
					 
					
						
						
							
							fs: for my sanity, begin tracking version where code was last checked for accuracy  
						
						 
						
						
						
					 
					
						2022-04-04 17:46:53 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							726a7efddf 
							
						 
					 
					
						
						
							
							fs: fix out of bounds access when parsing directory paths  
						
						 
						
						
						
					 
					
						2022-03-23 13:45:36 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							8a5d1ec46c 
							
						 
					 
					
						
						
							
							fs: utilities for hac2l to print gc headers  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:55 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							bf95bc3ede 
							
						 
					 
					
						
						
							
							fs: add gc validation wrappers for hac2l  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:55 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							f037d60c75 
							
						 
					 
					
						
						
							
							strat: minor result/overflow check fixes  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:54 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							ce44fe4ea9 
							
						 
					 
					
						
						
							
							fs: revise allocation-fail result names  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:54 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							0d2e2df552 
							
						 
					 
					
						
						
							
							strat: revise fs unsupported operation results, add overflow utils  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:53 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							a9e2c6a9c0 
							
						 
					 
					
						
						
							
							fs: first pass at compressed storage (works on iridium with wip hac2l code)  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:51 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							7a689dc29e 
							
						 
					 
					
						
						
							
							libs: add ongoing work to facilitate hactool rewrite  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:48 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							d7a9c7ec4c 
							
						 
					 
					
						
						
							
							ams: support building unit test programs on windows/linux/macos  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:46 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							f6a7274b60 
							
						 
					 
					
						
						
							
							fix SubStorage copy ctor/= op for new shared_ptr member  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:45 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							b37eba086f 
							
						 
					 
					
						
						
							
							fs: revise NcaFileSystemDriver for latest semantics  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:44 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							7407ddaf1e 
							
						 
					 
					
						
						
							
							fssrv: flesh out the program registry  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:43 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							2fd560c7d1 
							
						 
					 
					
						
						
							
							fs: allocations with mutex held must be unsafe  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:42 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							5b4528214f 
							
						 
					 
					
						
						
							
							fs: implement newer allocator templates  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:42 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							1e98da6d08 
							
						 
					 
					
						
						
							
							fssrv: skeleton server manager setup/registration  
						
						 
						
						
						
					 
					
						2022-03-23 09:15:42 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							3e33fb6361 
							
						 
					 
					
						
						
							
							strat: use m_ for member variables  
						
						 
						
						
						
					 
					
						2021-10-15 23:54:35 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							3b5f56ab9f 
							
						 
					 
					
						
						
							
							ams: replace most remaining operator & with std::addressof  
						
						 
						
						
						
					 
					
						2021-10-15 23:54:34 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							2905319d46 
							
						 
					 
					
						
						
							
							strat: use ams::Main() instead of main(argc, argv)  
						
						 
						
						
						
					 
					
						2021-10-07 23:06:29 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							8a8631ebcb 
							
						 
					 
					
						
						
							
							strat: build sysmodules with -Wextra/-Werror  
						
						 
						
						
						
					 
					
						2021-10-07 23:06:29 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							843dc8e521 
							
						 
					 
					
						
						
							
							libstrat: fix compilation without pre-compiled header/without lto  
						
						 
						
						
						
					 
					
						2021-10-07 23:06:28 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							fd1b6d4578 
							
						 
					 
					
						
						
							
							libstrat: enable -Wextra, -Werror  
						
						 
						
						... 
						
						
						
						This caught an embarrassingly large number of bugs. 
						
					 
					
						2021-10-07 23:06:28 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							002422d5dc 
							
						 
					 
					
						
						
							
							ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals  
						
						 
						
						
						
					 
					
						2021-10-07 23:06:25 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							69a0ec03e9 
							
						 
					 
					
						
						
							
							strat: use consistent include style for lib headers  
						
						 
						
						
						
					 
					
						2021-10-07 23:06:23 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							c68298a00e 
							
						 
					 
					
						
						
							
							stratosphere: use SdkMutex/SdkRecursiveMutex over Mutex  
						
						 
						
						
						
					 
					
						2021-10-07 23:06:22 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							dc3f54a713 
							
						 
					 
					
						
						
							
							ams: std::optional -> util::optional  
						
						 
						
						
						
					 
					
						2021-07-12 01:59:51 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							156a5ceba2 
							
						 
					 
					
						
						
							
							libstrat: fix override operator new to be noexcept ( closes   #1494 )  
						
						 
						
						
						
					 
					
						2021-06-08 08:09:21 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							1e1b5971ce 
							
						 
					 
					
						
						
							
							fs: properly implement OperateRangeWithBuffer, correct OperationId names.  
						
						 
						
						
						
					 
					
						2021-04-30 08:56:09 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							65a37c60cc 
							
						 
					 
					
						
						
							
							tio: implement SdCardObserver (finishes sysmodule)  
						
						 
						
						
						
					 
					
						2021-04-11 03:58:57 -07:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							26369e34f1 
							
						 
					 
					
						
						
							
							ams: use util::SNPrintf over std:: (size/linker improvements)  
						
						 
						
						
						
					 
					
						2021-01-13 10:41:28 -08:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							af44769939 
							
						 
					 
					
						
						
							
							fs: add ProgramIndexMapInfo  
						
						 
						
						
						
					 
					
						2020-12-11 03:48:58 -08:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							fd5212f399 
							
						 
					 
					
						
						
							
							fs: update + consolidate path normalization logic  
						
						 
						
						
						
					 
					
						2020-12-11 03:48:57 -08:00