aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
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-27Added comment on Main memory size for more clarityDavid Marcec
2018-11-27Made svcSetHeapSize and svcCreateSharedMemory more readableDavid Marcec
2018-11-27Reworked svcs slightly, improved error messages in AM and fsp_srvDavid Marcec
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-26Fixed hwopus compile errorDavid Marcec
2018-11-26Improved error messages in AM, HwOpus and NvMapDavid Marcec
2018-11-26Improved error messages for SVCsDavid Marcec
2018-11-26Changed logging to be "Log before execution", Added more error logging, all ↵David Marcec
services should now log on some level
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-22file_sys: Implement system archive synthesizer for NgWord (806)Zach Hilman
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-22scheduler: Add explanations for YieldWith and WithoutLoadBalancingZach Hilman
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.