Commit Graph

12 Commits

Author SHA1 Message Date
gibbed
1c2d6753bb [Kernel/VFS] Specify root entry to open from + cleanup.
[VFS] Allow specifying root entry to open from with OpenFile.
[Kernel] NtCreateFile now opens from root entry when available instead
         of needlessly building a full path and resolving from that.
[VFS] Reduce code duplication by adding Entry::ResolvePath.
[VFS] Remove ResolveBasePath to avoid multiple calls to find_base_guest_path.
2020-04-20 01:14:07 -05:00
gibbed
5bf0b34445 C++17ification.
C++17ification!

- Filesystem interaction now uses std::filesystem::path.
- Usage of const char*, std::string have been changed to
  std::string_view where appropriate.
- Usage of printf-style functions changed to use fmt.
2020-04-07 16:09:41 -05:00
Ben Vanik
3c96b6fa0a DANGER DANGER. Switching to global critical region.
This changes almost all locks held by guest threads to use a single global
critical region. This emulates the behavior on the PPC of disabling
interrupts (by calls like KeRaiseIrqlToDpcLevel or masking interrupts),
and prevents deadlocks from occuring when threads are suspended or
otherwise blocked.
This has performance implications and a pass is needed to ensure the
locking is as granular as possible. It could also break everything
because it's fundamentally unsound. We'll see.
2015-09-06 09:30:54 -07:00
Ben Vanik
91d7acf59e Fixing some particularly bad /W4. 2015-07-18 23:04:21 -07:00
Ben Vanik
91ae97e558 Fixing lock type in VFS. 2015-07-15 22:07:46 -07:00
Ben Vanik
cc08e9019a Move NtCreateFile/NtOpenFile to VFS, implement (mostly) for real.
Progress on #305.
2015-06-29 10:33:36 -07:00
Ben Vanik
0104a2290f Adding locks and parents to vfs.
Progress on #305.
2015-06-29 05:07:29 -07:00
Ben Vanik
1106029afc _wfopen -> xe::filesystem::OpenFile.
Progress on #305.
2015-06-28 17:33:46 -07:00
Ben Vanik
83872d8e8f Refactoring vfs to remove a lot of duplicated code.
Progress on #294.
2015-06-27 22:37:49 -07:00
Ben Vanik
1ac19f1b08 Replacing vfs memory mapping with base memory mapping.
Progress on #294.
2015-06-27 18:02:20 -07:00
Ben Vanik
abf47b7973 Removing utilities (that were just adding needless layers).
Progress on #294.
2015-06-27 16:27:38 -07:00
Ben Vanik
0716cf84c0 Renaming xe::fs to xe::filesystem and xe::kernel::fs to xe::vfs.
Progress on #294.
2015-06-27 13:31:21 -07:00