| Age | Commit message (Collapse) | Author |
|
Gets rid of the need to directly access the managed VMAs outside of the
memory manager itself just for querying memory.
|
|
Gets the two structures out of an unrelated header and places them with
the rest of the memory management code.
This also corrects the structures. PageInfo appears to only contain a
32-bit flags member, and the extra padding word in MemoryInfo isn't
necessary.
|
|
Amends the MemoryState enum to use the same values like the actual
kernel does. Also provides the necessary operators to operate on them.
This will be necessary in the future for implementing
svcSetMemoryAttribute, as memory block state is checked before applying
the attribute.
|
|
The Process object kept itself alive indefinitely because its handle_table
contains a SharedMemory object which owns a reference to the same Process object,
creating a circular ownership scenario.
Break that up by storing only a non-owning pointer in the SharedMemory object.
|
|
fsp_srv: Implement IStorage::GetSize
|
|
fmt::format() returns a std::string instance by value, so calling
.c_str() on it here is equivalent to doing:
auto* ptr = std::string{}.c_str();
The data being pointed to isn't guaranteed to actually be valid anymore
after that expression ends. Instead, we can just take the string as is,
and provide the necessary formatting parameters.
|
|
file_sys/directory: Amend path buffer size for directory entries
|
|
patch_manager: Add support for disabling patches
|
|
Port citra-emu/citra#4476: "web_service: move telemetry condition from TelemetrySession constructor to destructor"
|
|
service/fsp_srv: Correct returned value in GetGlobalAccessLogMode()
|
|
file_sys/save_data_factory: Update SaveDataSpaceId enum
|
|
Takes no input and returns the size as a u64. Needed by Katamari Damacy Reroll to boot.
|
|
kernel/process: Set ideal core from metadata
|
|
savedata_factory: Add CacheStorage and delete TemporaryStorage on boot
|
|
vm_manager: Make vma_map private
|
|
Based off RE, the backing code only ever seems to use 0-2 as the range
of values 1 being a generic log enable, with 2 indicating logging should
go to the SD card. These are used as a set of flags internally.
Given we only care about receiving the log in general, we can just
always signify that we want logging in general.
|
|
This was causing some games (most notably Pokemon Quest) to softlock due to an event being fired when not supposed to. This also removes a hack wherein we were firing the state changed event when the game retrieves it, which is incorrect.
|
|
destructor
Fixes an issue where Testcases couldn't be sent when Telemetry was disabled, because both things are tied closely together in the backend.
|
|
service/ldr: Amend layouts of NRO and NRR headers
|
|
Amends it with missing values deduced from RE (ProperSystem being from
SwitchBrew for naming)
(SdCardUser wasn't that difficult to discern given it's used alongside
SdCardSystem when creating the save data indexer, based off the usage of
the string "saveDataIxrDbSd" nearby).
|
|
hle/service, hle/sm: Minor cleanup
|
|
loaders: Make GetFileType() a const qualified member function
|
|
|
|
Mimics hardware behavior.
|
|
system_archive: Implement open source NgWord2
|
|
Given memory should always be expected to be valid during normal
execution, this should be a debug assertion, rather than a check in
regular builds.
|
|
This was only ever public so that code could check whether or not a
handle was valid or not. Instead of exposing the object directly and
allowing external code to potentially mess with the map contents, we
just provide a member function that allows checking whether or not a
handle is valid.
This makes all member variables of the VMManager class private except
for the page table.
|
|
kernel/svc: Correct behavior of svcResetSignal()
|
|
|
|
Combines the two into one, shortening the amount of code here.
|
|
Only one usage of the specified objects made use of the lack of
namespacing. Given the low usage, we can just remove these.
|
|
These auto-deduce the result based off its arguments, so there's no need
to do that work for the compiler, plus, the function return value itself
already indicates what we're returning.
|
|
Gets rid of the need to keep the variables separate from their actual
initialization spots.
|
|
system_archive: Use a regular function pointer instead of std::function for the file-scope system archive array
|
|
service/ldr: Deduplicate instruction cache clearing code in LoadNro()
|
|
No implementations actually modify instance state (and it would be
questionable to do that in the first place given the name), so we can
make this a const member function.
|
|
lower vector capacity. For 36-bit titles saves 800MB of commit.
|
|
A very trivial change. If metadata is available, the process should use
it to retrieve the desired core for the process to run on.
|
|
We've already given the constant to the vector itself, so we don't need
to re-hardcode it in the array.
|
|
file-scope system archive array
This allows the array to be constexpr. std::function is also allowed to
allocate memory, which makes its constructor non-trivial, we definitely
don't want to have all of these execute at runtime, taking up time
before the application can actually load.
|
|
We don't need to specify all of the ARM interfaces explicitly.
|
|
The first word is just a padding byte, it's not an actual entry
instruction. Also renames the rest of the entries according to
SwitchBrew.
|
|
The padding after the magic signature value should be 12 bytes rather
than 28 bytes. The other 16 should be placed after the title ID pattern.
|
|
|
|
While partially correct, this service call allows the retrieved event to
be null, as it also uses the same handle to check if it was referring to
a Process instance. The previous two changes put the necessary machinery
in place to allow for this, so we can simply call those member functions
here and be done with it.
|
|
Process instances can be waited upon for state changes. This is also
utilized by svcResetSignal, which will be modified in an upcoming
change. This simply puts all of the WaitObject related machinery in
place.
|
|
svcResetSignal relies on the event instance to have already been
signaled before attempting to reset it. If this isn't the case, then an
error code has to be returned.
|
|
file_sys: Implement open source system archives
|
|
file_sys/registered_cache: Eliminate variable shadowing
|
|
crypto/key_manager: Remove unused variable in GetTicketblob()
|