Commit Graph

46 Commits

Author SHA1 Message Date
Gliniak
ea6969f378 [Kernel] Implemented NtSetIoCompletion 2020-12-26 04:57:21 -06:00
Gliniak
06ab8589b4 [Kernel/IO] Return error creating dir as non-dir.
[Kernel/IO] Return error when creating directory with non-directory
flag in NtCreateFile.
2020-12-06 17:07:34 -06:00
gibbed
164aa8e8ca [Kernel] Scope object type enum. 2020-11-22 20:34:07 -06:00
gibbed
e848a20c23 [Kernel] Allow wildcard filter to end in *. 2020-11-15 13:29:34 -06:00
gibbed
32e8b47a33 [Kernel] Enforce *. in wildcard matching. Supersedes #1675. 2020-11-15 13:24:06 -06:00
gibbed
c99c430665 [Kernel] Reject IO for invalid characters.
[Kernel] Reject IO for paths with invalid characters.
2020-07-12 12:22:24 -05:00
gibbed
cf0251cd9f [Kernel/VFS] Cleanup info query/set+sector size.
[VFS] Device now exposes name, attributes, component name max length.
[VFS] Fix STFS device to return 0x200 sector size. XCTD compression
      userland code appears to always expect a sector size of 0x200.
[Kernel] Move X_FILE_*_INFORMATION structs to new files.
[Kernel] Move NtQueryInformationFile, NtSetInformationFile,
         NtQueryVolumeInformationFile to new file.
[Kernel] Cleanup implementation of NtQueryInformationFile,
         NetSetInformationFile, NtQueryVolumeInformationFile.
[Kernel] Properly validate arguments to NtQueryInformationFile,
         NetSetInformationFile, NtQueryVolumeInformationFile.
[Kernel] Properly implement query of XFileFsVolumeInformation.
[Kernel] Properly implement query of XFileFsSizeInformation.
[Kernel] Properly implement query of XFileFsAttributeInformation.
2020-04-20 16:08:02 -05:00
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
a48bb71c2f Overhaul logging. 2020-04-07 16:09:41 -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
Triang3l
f858631245 [Kernel] Trigger memory callbacks after file read 2020-02-22 18:06:56 +03:00
Triang3l
8ec813de82 [Memory, D3D12] Various refactoring from data provider development 2020-02-15 21:35:24 +03:00
Triang3l
8ba6f3fc37 [Memory] Trigger watches when making pages writable, not the other way around 2019-11-10 14:21:36 +03:00
emoose
f46e3c7e39 [Kernel/VFS] Ensure vfs::Entry is up-to-date before retrieving file information
Games like Forza use NtQueryInformationFile to get the size of the file, to make sure that there's enough room inside it to write data.

Previously, updating the file size (via SetInfoFile(EndOfFile) or WriteFile) wouldn't update the vfs::Entry size field, which NtQueryInfo uses to return the size of the file.

This resulted in the game thinking that the file was smaller than it actually is, and trying to correct that by using SetInfoFile(EndOfFile), which then truncated the file and deleted important data that was written to it.
2019-08-21 02:00:57 -05:00
Triang3l
2507f1a819 [Memory] TranslateVirtual in shim and strings 2019-08-14 10:31:11 +03:00
Triang3l
24383b9137 [Memory/D3D12] Unwatch up to 256 KB ranges 2019-07-31 00:18:12 +03:00
Triang3l
b5fb84473d [Memory] Replace forgotten InvalidateRange in NtReadFile 2019-07-30 09:06:23 +03:00
Triang3l
83da671bb4 Merge branch 'master' into d3d12 2019-07-30 07:59:38 +03:00
gibbed
3d67ffad81 [Kernel] Implement NtOpenSymbolicLinkObject, NtQuerySymbolicLinkObject. 2019-07-29 18:04:06 -05:00
gibbed
48b04d186b Merge remote-tracking branch 'origin/master' into d3d12 2019-07-18 18:02:01 -05:00
gibbed
bf989f0aae [Kernel/VFS] Maybe fix creation of directories. See #1403. 2019-07-18 17:15:57 -05:00
Triang3l
da280347c4 Merge branch 'master' into d3d12 2018-11-22 21:01:05 +03:00
Margen67
896ac4a682 Update documentation.
- Convert http to https, provide archive link when possible.
- Made CPU-JIT.png more readable on dark themes;
Added a white background so there isn't black text on a black
background.
2018-11-22 09:20:09 -06:00
Triang3l
a6b3bddf13 Merge branch 'master' into d3d12 2018-11-20 22:04:55 +03:00
gibbed
394105d359 [CPU/Kernel] Cleanup and rework of how kernel exports are declared. 2018-11-20 13:03:17 -06:00
Triang3l
6e36101b42 [D3D12] Experimental write watch implementation for shared memory 2018-09-24 23:18:16 +03:00
gibbed
bc369e43cb [Kernel] Add support for XFileEndOfFileInformation. 2018-05-23 04:24:37 -05:00
DrChat
aaf281351d Format all code with new clang-format 2017-12-14 20:44:43 -06:00
maxton
57d4c6fa9b Update kernel convention for xboxkrnl_io.cc
Fix linting error

Update kernel convention for xboxkrnl_io.cc
2016-12-01 10:41:54 -05:00
Dr. Chat
9b86132fd0 Rewrite XIOCompletion::WaitForNotification 2016-08-06 18:14:26 -05:00
gibbed
85e38b7657 Invalidate physical memory passed to NtReadFile. 2016-06-18 18:26:23 -05:00
gibbed
890a0513ef Tagged NtSetInformationFile as high frequency. 2016-06-18 08:03:19 -05:00
gibbed
f39eb9f047 Tagged NtReadFile as high frequency. 2016-06-18 08:02:18 -05:00
Ben Vanik
c8b544ffd4 Fixing casts. This is why I need tests. 2016-01-01 12:45:06 -08:00
Ben Vanik
8770e6e6cf Adding yaml-cpp for #428, use rando fork until jbeder/yaml-cpp#342 lands. 2016-01-01 12:13:36 -08:00
Ben Vanik
207b835386 I have a dream that one day compilers will agree. 2016-01-01 19:19:18 +00:00
Ben Vanik
2f012fb56d Though I disagree with these lint fixes, I want travis to shut up. 2016-01-01 18:38:20 +00:00
Ben Vanik
b02ca62388 Fixing most remaining C++ warnings in clang. 2016-01-01 18:37:33 +00:00
Ben Vanik
0482ffad5a Allow XMA decoder to be suspended. 2015-12-30 16:53:13 -08:00
Dr. Chat
2a590f31fe XFile: Track asynchronous/synchronous flag (and return appropriately in nt Read/Write file) 2015-12-30 17:36:05 -06:00
Ben Vanik
948aa2400d Formatting all code. Too gnarly to rebase properly. 2015-12-29 13:13:34 -08:00
Dr. Chat
bcacb9b127 Remove vfs dependency on kernel, implement I/O completion ports 2015-12-29 13:09:50 -08:00
Ben Vanik
e5fbf840d2 Shuffling kernel/. 2015-09-06 18:07:52 -07:00
Ben Vanik
4d92720109 Moving all kernel files around just to fuck with whoever's keeping track ;) 2014-01-04 17:12:46 -08:00
Ben Vanik
fdb6a5cfa3 Initial Alloy implementation.
This is a regression in functionality and performance, but a much better
foundation for the future of the project (I think). It can run basic
apps under an SSA interpreter but doesn't support some of the features
required to do real 360 apps yet.
2013-12-06 22:57:16 -08:00
Ben Vanik
b7ffd46319 Massive refactoring of all code + audio skeleton.
This should make it easier to find files and (in the future) split things
up into separate libraries.
It also changes around emulator initialization to make it a little more
difficult to do things out of order and a little more sensible as to when
real init work happens.
Also adding a skeleton audio system/driver and reworking CPU register
access to be more extensible.
2013-10-23 20:42:24 -07:00