aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle
AgeCommit message (Collapse)Author
2018-11-28Merge pull request #1817 from DarkLordZach/npad-idx-fixbunnei
npad: Use NPadIdToIndex to prevent invalid array access
2018-11-28Merge pull request #1792 from bunnei/dma-pusherbunnei
gpu: Rewrite GPU command list processing with DmaPusher class.
2018-11-28npad: Use NPadIdToIndex to prevent invalid array accessZach Hilman
2018-11-27dma_pushbuffer: Optimize to avoid loop and copy on Push.bunnei
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-26gpu: Rewrite GPU command list processing with DmaPusher class.bunnei
- More accurate impl., fixes Undertale (among other games).
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-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-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 #1708 from ogniK5377/res-scalebunnei
Report resolution scaling support for vi and am
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 #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-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-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-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