aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2018-11-27npad: Fix copy/paste error with LED position assignmentsZach Hilman
2018-11-27Merge pull request #1802 from DarkLordZach/user-data-storagebunnei
profile_manager: Save and load ProfileData from disk
2018-11-27control_metadata: Correct typo in language name (Portugese -> Portuguese)Lioncash
While we're at it, organize the array linearly, since clang formats the array elements quite wide length-wise with the addition of the missing 'u'. Technically also fixes patch lookup and icon lookup with Portuguese, though I doubt anyone has actually run into this issue.
2018-11-26Merge pull request #1804 from lioncash/castbunnei
gdbstub: Silence value truncation warning within FpuWrite()
2018-11-26svc: Implement svcSetResourceLimitLimitValue()Lioncash
The opposite of the getter functions, this function sets the limit value for a particular ResourceLimit resource category, with the restriction that the new limit value must be equal to or greater than the current resource value. If this is violated, then ERR_INVALID_STATE is returned. e.g. Assume: current[Events] = 10; limit[Events] = 20; a call to this service function lowering the limit value to 10 would be fine, however, attempting to lower it to 9 in this case would cause an invalid state error.
2018-11-26svc: Implement svcGetResourceLimitCurrentValue()Lioncash
This kernel service function is essentially the exact same as svcGetResourceLimitLimitValue(), with the only difference being that it retrieves the current value for a given resource category using the provided resource limit handle, rather than retrieving the limiting value of that resource limit instance. Given these are exactly the same and only differ on returned values, we can extract the existing code for svcGetResourceLimitLimitValue() to handle both values.
2018-11-26svc: Implement svcGetResourceLimitLimitValue()Lioncash
This kernel service function retrieves the maximum allowable value for a provided resource category for a given resource limit instance. Given we already have the functionality added to the resource limit instance itself, it's sufficient to just hook it up. The error scenarios for this are: 1. If an invalid resource category type is provided, then ERR_INVALID_ENUM is returned. 2. If an invalid handle is provided, then ERR_INVALID_HANDLE is returned (bad thing goes in, bad thing goes out, as one would expect). If neither of the above error cases occur, then the out parameter is provided with the maximum limit value for the given category and success is returned.
2018-11-26svc: Implement svcCreateResourceLimit()Lioncash
This function simply creates a ResourceLimit instance and attempts to create a handle for it within the current process' handle table. If the kernal fails to either create the ResourceLimit instance or create a handle for the ResourceLimit instance, it returns a failure code (OUT_OF_RESOURCE, and HANDLE_TABLE_FULL respectively). Finally, it exits by providing the output parameter with the handle value for the ResourceLimit instance and returning that it was successful. Note: We do not return OUT_OF_RESOURCE because, if yuzu runs out of available memory, then new will currently throw. We *could* allocate the kernel instance with std::nothrow, however this would be inconsistent with how all other kernel objects are currently allocated.
2018-11-26gdbstub: Silence value truncation warning within FpuWrite()Lioncash
Previously this would cause an implicit truncation warning about assigning a u64 value to a u32 value without an explicit cast.
2018-11-26profile_manager: Save and load ProfileData from diskZach Hilman
The ProfileData is a 0x80-sized structure that stores various pieces of miscellaneous data for the account.
2018-11-25Merge pull request #1793 from lioncash/refbunnei
service/sm: Take std::string by const reference in UnregisterService
2018-11-25svc: Return ERR_INVALID_ENUM_VALUE from svcGetInfoLuke Street
2018-11-24Merge pull request #1791 from bunnei/nvdrv-stubbunnei
nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.
2018-11-24service/sm: Take std::string by const reference in UnregisterServiceLioncash
Avoids the need to create a copy of the std::string instance (potentially allocating). The only reason RegisterService takes its argument by value is because it's std::moved internally.
2018-11-23Merge pull request #1641 from DarkLordZach/sm-register-unregisterbunnei
sm: Implement RegisterService and UnregisterService
2018-11-23Merge pull request #1731 from DarkLordZach/change-dir-crashbunnei
filesystem: Clear registered union paths on factory creation
2018-11-23Merge pull request #1692 from Hedges/GDBCleanbunnei
GDBStub Improvements
2018-11-23Merge pull request #1708 from ogniK5377/res-scalebunnei
Report resolution scaling support for vi and am
2018-11-23Merge pull request #1747 from DarkLordZach/exefs-lfsbunnei
patch_manager: Add support for applying LayeredFS patches to ExeFS
2018-11-23nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.bunnei
- Used by Undertale.
2018-11-23Merge pull request #1770 from DarkLordZach/applet-stubbunnei
applets: Add StubApplet and use it as fallback when AppletId is not implemented
2018-11-23Merge pull request #1777 from lioncash/core-mgrbunnei
core: Relocate CPU core management to its own class
2018-11-23Merge pull request #1762 from bunnei/getgputimebunnei
nvhost_ctrl_gpu: Implement IoctlGetGpuTime.
2018-11-22am: Return StubApplet instead of nullptr when AppletId not foundZach Hilman
2018-11-22debug_pad: Avoid loading input for nonexistent buttons (Home and Screenshot)Zach Hilman
Prevents memory exceptions when the debug pad is enabled.
2018-11-22Merge pull request #1765 from bunnei/multi-audoutbunnei
audout_u: Add support for multiple IAudioOut streams.
2018-11-22core: Relocate CPU core management to its own classLioncash
Keeps the CPU-specific behavior from being spread throughout the main System class. This will also act as the home to contain member functions that perform operations on all cores. The reason for this being that the following pattern is sort of prevalent throughout sections of the codebase: If clearing the instruction cache for all 4 cores is necessary: Core::System::GetInstance().ArmInterface(0).ClearInstructionCache(); Core::System::GetInstance().ArmInterface(1).ClearInstructionCache(); Core::System::GetInstance().ArmInterface(2).ClearInstructionCache(); Core::System::GetInstance().ArmInterface(3).ClearInstructionCache(); This is kind of... well, silly to copy around whenever it's needed. especially when it can be reduced down to a single line. This change also puts the basics in place to begin "ungrafting" all of the forwarding member functions from the System class that are used to access CPU state or invoke CPU-specific behavior. As such, this change itself makes no changes to the direct external interface of System. This will be covered by another changeset.
2018-11-22audout_u: Add support for multiple IAudioOut streams.bunnei
- Used by Undertale.
2018-11-21Merge pull request #1767 from lioncash/handlebunnei
kernel/handle_table: Minor changes
2018-11-21applets: Add StubAppletZach Hilman
This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
2018-11-21kernel/handle_table: Move private static functions into the cpp fileLioncash
These don't depend on class state, and are effectively implementation details, so they can go into the cpp file .
2018-11-21kernel/handle_table: Restrict handle table size to 1024 entriesLioncash
The previous handle table size is a holdover from Citra. The actual handle table construct on Horizon only allows for a maximum of 1024 entries.
2018-11-21kernel/handle_table: Default destructor in the cpp fileLioncash
We don't need to potentially inline the teardown logic of all of the handle instances.
2018-11-21Merge pull request #1742 from lioncash/hle-swkbdbunnei
am/applets: Minor cleanup
2018-11-21nvhost_ctrl_gpu: Implement IoctlGetGpuTime.bunnei
- Used by Undertale.
2018-11-20am: Correct build failureLioncash
The interface for shared memory was changed, but another commit was merged that relied on the (previously public) internals of SharedMemory. This amends that discrepancy.
2018-11-20patch_manager: Show LayeredExeFS patch in add-ons columnZach Hilman
The decision was made to name them LayeredExeFS instead of just LayeredFS to differentiate from normal RomFS-based mods. The name may be long/unweildy, but conveys the meaning well.
2018-11-20Merge pull request #1734 from lioncash/sharedbunnei
kernel/shared_memory: Make data members private, plus minor interface changes
2018-11-20Merge pull request #1733 from lioncash/ldrbunnei
ldr: Clean up error codes
2018-11-20Merge pull request #1746 from lioncash/randombunnei
kernel/process: Move <random> include to the cpp file
2018-11-20file_sys/card_image: Provide named members for the GamecardInfo structLioncash
Fills out the struct according to information provided by SwitchBrew
2018-11-20patch_manager: Apply LayeredExeFS patchesZach Hilman
This will scan the <mod>/exefs dir for all files and then layer those on top of the game's exefs and use this as the new exefs. This allows for overriding of the compressed NSOs or adding new files. This does use the same dir as IPS/IPSwitch patch, but since the loader will not look for those they are ignored.
2018-11-20settings: Add option to dump ExeFS of games upon launchZach Hilman
When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs.
2018-11-20kernel/process: Move <random> include to the cpp fileLioncash
<random> isn't necesary directly within the header and can be placed in the cpp file where its needed. Avoids propagating random generation utilities via a header file.
2018-11-20am/applets: Make the applet data broker part of the applet itself.Lioncash
The accessor should be doing just that, accessing, rather than retaining the lifetime of the data broker as well.
2018-11-20am/applets: Replace includes with forward declarations where applicableLioncash
Also resolve places where includes should have been provided, but weren't.
2018-11-20am/applets: Relocate comments above the relevant data member in AppletDataBrokerLioncash
Avoids wonky wrapping and makes it nicer to read.
2018-11-20Merge pull request #1667 from DarkLordZach/swkbdbunnei
am: Implement HLE software keyboard applet
2018-11-19Merge pull request #1739 from lioncash/lmbunnei
lm: Implement SetDestination by doing nothing
2018-11-19kernel/resource_limit: Clean up interfaceLioncash
Cleans out the citra/3DS-specific implementation details that don't apply to the Switch. Sets the stage for implementing ResourceLimit instances properly. While we're at it, remove the erroneous checks within CreateThread() and SetThreadPriority(). While these are indeed checked in some capacity, they are not checked via a ResourceLimit instance. In the process of moving out Citra-specifics, this also replaces the system ResourceLimit instance's values with ones from the Switch.