Commit Graph

29 Commits

Author SHA1 Message Date
fincs
076657fd31
Allow user override of dynamic memory allocation functions throughout libnx 2021-01-22 18:37:46 +01:00
Michael Scire
e5ae43f4c2 results: use R_VALUE for comparisons 2020-12-01 02:26:26 +01:00
Ezekiel Bethel
d0a7c6a2a5
fix return value of romfs_stat for non-existent files/directories (#488) 2020-06-18 10:58:12 +01:00
HookedBehemoth
ac468913e4
add commands for accessing process storage (#485) 2020-06-06 15:13:23 +02:00
Dave Murphy
db795f42ad fix stat for romfs directories 2020-05-27 14:59:43 +02:00
Ezekiel Bethel
573e2f772c add lstat to fs_dev and romfs_dev 2020-05-26 17:32:54 +02:00
fincs
04214ea441
romfs_dev: fix reading into buffers with device mappable attribute 2020-01-22 00:56:34 +01:00
yellows8
8fe48e8eac
fs/fs_dev/romfs_dev: Updated various types to use s64. Removed the inval param from fsDirRead since it doesn't exist. Renamed fileSize in FsDirectoryEntry to file_size and updated the type. Renamed FsFileSystemQueryType to FsFileSystemQueryId, and renamed FsFileSystemQueryType_SetArchiveBit to FsFileSystemQueryId_SetConcatenationFileAttribute. Renamed fsFsSetArchiveBit to fsFsSetConcatenationFileAttribute. Renamed fsdevSetArchiveBit to fsdevSetConcatenationFileAttribute. Minor other changes. 2019-11-28 14:58:55 -05:00
yellows8
c40f8ecac6
Removed includes which are unneeded due to being included elsewhere, etc. Minor improvements. 2019-11-12 12:45:58 -05:00
yellows8
9888df18da
Moved most ncm types into ncm_types.h. Renamed FsStorageId to NcmStorageId, with updated names for some values (now located in ncm_types.h). Various improvements + improved docs. 2019-11-11 18:19:45 -05:00
yellows8
ce570a70f1
romfs_dev: Replaced the romFS_dir()/romFS_file() macros with funcs which have actual bounds-checking, this fixes crashes/hangs when the romfs tables are corrupted. Updated relevant code to handle this / various improvements, and return ENOENT instead of EEXIST where required. 2019-11-11 11:07:46 -05:00
fincs
c77b88d868
Major cleanup and refactor of fsdev and romfsdev, see details:
fsdev:
- Removed fsdevGetDefaultFileSystem and default-fs handling
- Refactored CWD support to have (dynamically allocated) per-device CWDs
  (CWD support as a whole can be turned off with __nx_fsdev_support_cwd)
- Optimized calls by passing pointer to device through r->deviceData
- Use the per-thread path buffer directly as the argument to FS functions
- Removed redundant cross-device check in fsdev_rename
- Fixed string comparison logic in fsdevFindDevice
- fsdev_fixpath now accepts an input device in order to skip device
  lookup (extensively used along with r->deviceData)
- Mounting a filesystem now automatically sets the default device
  if there wasn't any previous default device (or if it's stdnull)
- fsdevMountSdmc no longer sets cwd to the folder containing the
  executable - this logic was moved to a new internal function
  called on startup by default (and it is now disabled for NSOs)
- Other miscellaneous optimizations

romfsdev:
- Cleaned up romfsMount* functions, removed unused/unnecessary logic
- Changed romfsMount* functions to return real result codes
- Renamed romfsMount to romfsMountSelf and improved documentation
- Removed romfsInitFromFile and romfsInitFromStorage (use Mount instead)
- Added documentation for romfsInit and romfsExit
2019-10-20 22:22:04 +02:00
fincs
26a0ee4af3
fsdev/romfsdev: Reduce TLS usage by sharing the path buffer 2019-10-20 02:48:04 +02:00
fincs
ecbc77840e
fs: Update names of enum/flag types for style consistency and correctness 2019-09-21 19:54:21 +02:00
fincs
77888f8b1f
fs: Use new IPC interface + fixes, see details:
- Argument types corrected to better reflect their actual types
  (mostly several incorrect instances of size_t were changed to u64)
- Const correctness fixes
- fsEventNotifierGetEventHandle changed to output an Event (with
  user configurable autoclear) instead of a raw Handle
2019-09-21 16:27:15 +02:00
friedkeenan
fdb1605fc5 Require whole mount name to match when finding a romfs (#324) 2019-09-02 21:22:49 +02:00
yellows8
006ebc0633
Fixed romfsUnmount RemoveDevice handling. 2019-06-13 19:41:35 -04:00
Pablo Curiel
e3d7b12c96 Remove RomFS devoptab device on unmount. 2019-06-08 17:16:55 +02:00
Michael Scire
ac9d76f373 fs: fix file/storage API, add fsdevCreateFile, add fsOpenFileSystemWithPatch. 2019-06-03 14:48:45 -04:00
yellows8
90620daf05
Added romfsMountFromCurrentProcess(). 2019-05-17 11:15:43 -04:00
Michael Scire
39db25c81d romfs_dev: fix unmounting/corruption when mounting multiple. 2019-05-09 12:42:15 +02:00
yellows8
fd9e02b271
Added romfsMountFromFsdev and fsdevTranslatePath. Internal romfs_dev improvements. 2019-03-29 19:49:08 -04:00
Michael Scire
1bea504732 Added fsOpenDataStorageByDataId and romfsMountFromDataArchive 2019-03-25 00:02:18 +01:00
Michael Scire
43128b613b romfs: refactor to allow specifying mount name 2019-03-25 00:02:18 +01:00
plutoo
d3cc781bf6 Stylefix for nro 2018-02-26 02:10:49 +01:00
yellows8
e24c20f9e7 Added Nro prefix to Asset in nro.h + updated romfs_dev for this. 2018-02-24 15:39:30 -05:00
yellows8
4c1b09d6b9 Check for invalid handle in fs*Close(). Added fsOpenDataStorageByCurrentProcess(), fsStorageRead(), and fsStorageClose(). Added fsdevGetDefaultFileSystem(). Imported nro.h from nx-hbmenu. Implemented proper RomFS support. 2018-02-23 22:29:43 -05:00
yellows8
67af341594 Fixed romfs_dir struct for the parent field and fixed romfs_dev.h formatting. 2018-02-13 17:50:21 -05:00
yellows8
83ea6fb32e Imported romfs_dev from libctru with adjustments, this is currently unusable. 2018-01-28 21:18:53 -05:00