Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							274f6b63f2 
							
						 
					 
					
						
						
							
							erpt: add remaining SubmitFsInfo helpers  
						
						
						
					 
					
						2023-10-25 16:08:12 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							2ed8450446 
							
						 
					 
					
						
						
							
							erpt: SubmitFileSystemProxyErrorInfo  
						
						
						
					 
					
						2023-10-25 14:21:27 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							60974a5f4e 
							
						 
					 
					
						
						
							
							erpt: GetMmcErrorInfo, GetSdCard*Info  
						
						
						
					 
					
						2023-10-25 12:41:18 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							fa384fd920 
							
						 
					 
					
						
						
							
							erpt: begin SubmitFsinfo (SubmitMmcDetailInfo)  
						
						
						
					 
					
						2023-10-25 04:45:41 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							c95741142e 
							
						 
					 
					
						
						
							
							ncm: update for new 17.0.0 apis  
						
						
						
					 
					
						2023-10-12 08:55:58 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							0ea5dbcfbb 
							
						 
					 
					
						
						
							
							libstrat: make build with new ncm/fs api changes (sysmodules probably fail to build)  
						
						
						
					 
					
						2023-02-22 17:19:51 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							e46e7e0eb1 
							
						 
					 
					
						
						
							
							boot2: update for 16.0.0  
						
						
						
					 
					
						2023-02-22 17:19:51 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							05de5538d6 
							
						 
					 
					
						
						
							
							ncm: GetContentAccessibilities, GetContentInfo*  
						
						
						
					 
					
						2022-10-12 09:15:16 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							106599895d 
							
						 
					 
					
						
						
							
							fs: fix memory leak when path is reallocated ( closes   #1842 )  
						
						
						
					 
					
						2022-04-08 11:02:17 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							28f11a86fd 
							
						 
					 
					
						
						
							
							fs: update romfs types  
						
						
						
					 
					
						2022-03-28 13:57:06 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							9b47ddf01f 
							
						 
					 
					
						
						
							
							fs: update LocalFileSystem  
						
						
						
					 
					
						2022-03-28 01:33:40 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							0fbf007bcf 
							
						 
					 
					
						
						
							
							fs: fixup all OperateRange implementations  
						
						
						
					 
					
						2022-03-28 00:54:10 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							bbf22b4c60 
							
						 
					 
					
						
						
							
							ams: globally prefer R_RETURN to return for ams::Result  
						
						
						
					 
					
						2022-03-26 14:48:33 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							dd78ede99f 
							
						 
					 
					
						
						
							
							ams: use R_SUCCEED, R_THROW globally  
						
						
						
					 
					
						2022-03-26 00:14:36 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							a4a2cc2218 
							
						 
					 
					
						
						
							
							fs: update IStorage::Check functions for 14.0.0  
						
						
						
					 
					
						2022-03-25 23:29:36 -07:00 
						 
				 
			
				
					
						
							
							
								SciresM 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							64c6ef2de7 
							
						 
					 
					
						
						
							
							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-03-24 20:22:47 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							dfa475a769 
							
						 
					 
					
						
						
							
							util: add pointer utils, use to constrain fs pointers  
						
						
						
					 
					
						2022-03-24 16:21:03 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							4646581e93 
							
						 
					 
					
						
						
							
							fs: for my sanity, begin tracking version where code was last checked for accuracy  
						
						
						
					 
					
						2022-03-24 08:43:40 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							6f54ab5716 
							
						 
					 
					
						
						
							
							fs: fix out of bounds access when parsing directory paths  
						
						
						
					 
					
						2022-03-23 13:38:34 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							c35114bacc 
							
						 
					 
					
						
						
							
							fs: utilities for hac2l to print gc headers  
						
						
						
					 
					
						2022-03-21 17:21:44 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							2d984822c6 
							
						 
					 
					
						
						
							
							fs: add gc validation wrappers for hac2l  
						
						
						
					 
					
						2022-03-21 17:21:44 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							741efd04ec 
							
						 
					 
					
						
						
							
							strat: minor result/overflow check fixes  
						
						
						
					 
					
						2022-03-21 17:21:44 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							e13b81aa9e 
							
						 
					 
					
						
						
							
							fs: revise allocation-fail result names  
						
						
						
					 
					
						2022-03-21 17:21:44 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							11e4bed199 
							
						 
					 
					
						
						
							
							strat: revise fs unsupported operation results, add overflow utils  
						
						
						
					 
					
						2022-03-21 17:21:44 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							d638bbbb62 
							
						 
					 
					
						
						
							
							fs: first pass at compressed storage (works on iridium with wip hac2l code)  
						
						
						
					 
					
						2022-03-21 17:21:44 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							13697fa921 
							
						 
					 
					
						
						
							
							libs: add ongoing work to facilitate hactool rewrite  
						
						
						
					 
					
						2022-03-21 17:21:44 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							64a97576d0 
							
						 
					 
					
						
						
							
							ams: support building unit test programs on windows/linux/macos  
						
						
						
					 
					
						2022-03-21 17:21:44 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							3f6010b4dc 
							
						 
					 
					
						
						
							
							fix SubStorage copy ctor/= op for new shared_ptr member  
						
						
						
					 
					
						2022-02-21 15:17:17 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							52296fc2dd 
							
						 
					 
					
						
						
							
							fs: revise NcaFileSystemDriver for latest semantics  
						
						
						
					 
					
						2022-02-21 15:17:17 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							28ea6555f8 
							
						 
					 
					
						
						
							
							fssrv: flesh out the program registry  
						
						
						
					 
					
						2022-02-21 15:17:17 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							f3dbdc2391 
							
						 
					 
					
						
						
							
							fs: allocations with mutex held must be unsafe  
						
						
						
					 
					
						2022-02-21 15:17:17 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							64b4cc25fc 
							
						 
					 
					
						
						
							
							fs: implement newer allocator templates  
						
						
						
					 
					
						2022-02-21 15:17:17 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							ace409ccec 
							
						 
					 
					
						
						
							
							fssrv: skeleton server manager setup/registration  
						
						
						
					 
					
						2022-02-21 15:17:17 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							a595c232b9 
							
						 
					 
					
						
						
							
							strat: use m_ for member variables  
						
						
						
					 
					
						2021-10-10 00:14:06 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							1ab0bd1765 
							
						 
					 
					
						
						
							
							ams: replace most remaining operator & with std::addressof  
						
						
						
					 
					
						2021-10-09 14:49:53 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							ffc143860b 
							
						 
					 
					
						
						
							
							strat: use ams::Main() instead of main(argc, argv)  
						
						
						
					 
					
						2021-10-07 17:44:54 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							6a53726833 
							
						 
					 
					
						
						
							
							strat: build sysmodules with -Wextra/-Werror  
						
						
						
					 
					
						2021-10-06 23:22:54 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							e8f1efd01b 
							
						 
					 
					
						
						
							
							libstrat: fix compilation without pre-compiled header/without lto  
						
						
						
					 
					
						2021-10-06 17:58:42 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							7ca83c9d3b 
							
						 
					 
					
						
						
							
							libstrat: enable -Wextra, -Werror  
						
						... 
						
						
						
						This caught an embarrassingly large number of bugs. 
						
					 
					
						2021-10-06 15:20:48 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							77fe5cf6f5 
							
						 
					 
					
						
						
							
							ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals  
						
						
						
					 
					
						2021-10-04 12:59:10 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							24d6933145 
							
						 
					 
					
						
						
							
							strat: use consistent include style for lib headers  
						
						
						
					 
					
						2021-09-30 19:21:08 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							41ab4c2c68 
							
						 
					 
					
						
						
							
							stratosphere: use SdkMutex/SdkRecursiveMutex over Mutex  
						
						
						
					 
					
						2021-09-29 22:52:50 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							a7c14e03b9 
							
						 
					 
					
						
						
							
							ams: std::optional -> util::optional  
						
						
						
					 
					
						2021-07-08 02:37:26 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							c790d03693 
							
						 
					 
					
						
						
							
							libstrat: fix override operator new to be noexcept ( closes   #1494 )  
						
						
						
					 
					
						2021-05-16 23:10:13 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							0dc308d92a 
							
						 
					 
					
						
						
							
							fs: properly implement OperateRangeWithBuffer, correct OperationId names.  
						
						
						
					 
					
						2021-04-29 20:09:45 -07:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							0da3b2b273 
							
						 
					 
					
						
						
							
							tio: implement SdCardObserver (finishes sysmodule)  
						
						
						
					 
					
						2021-02-26 04:49:20 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							094cede39e 
							
						 
					 
					
						
						
							
							ams: use util::SNPrintf over std:: (size/linker improvements)  
						
						
						
					 
					
						2021-01-12 02:59:41 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							15396dbbc2 
							
						 
					 
					
						
						
							
							fs: add ProgramIndexMapInfo  
						
						
						
					 
					
						2020-12-07 01:03:39 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							32803d9920 
							
						 
					 
					
						
						
							
							fs: update + consolidate path normalization logic  
						
						
						
					 
					
						2020-12-06 19:56:45 -08:00 
						 
				 
			
				
					
						
							
							
								Michael Scire 
							
						 
					 
					
						
						
						
						
							
						
						
							5ef93778f6 
							
						 
					 
					
						
						
							
							fs: move file storage to common  
						
						
						
					 
					
						2020-12-05 03:31:12 -08:00