aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2019-07-07es: Implement ETicket GetCommonTicketData (16)Zach Hilman
Copies the raw common ticket data for the specified rights ID into the buffer provided.
2019-07-07es: Implement ETicket GetPersonalizedTicketSize (15)Zach Hilman
Returns the size of the buffer needed to hold the personal ticket associated with the rights ID.
2019-07-07es: Implement ETicket GetCommonTicketSize (14)Zach Hilman
Returns the size of the buffer needed to hold the common ticket associated with the rights ID.
2019-07-07es: Implement ETicket ListPersonalizedTicket (12)Zach Hilman
Returns an application-specific number of entries of personal tickets, starting at offset 0.
2019-07-07es: Implement ETicket ListCommonTicket (11)Zach Hilman
Returns an application specified count of entries of common tickets, starting at offset 0.
2019-07-07es: Implement ETicket CountPersonalizedTicket (10)Zach Hilman
Returns the number of personalized (console/user-unique) tickets in the KeyManager.
2019-07-07es: Implement ETicket CountCommonTicket (9)Zach Hilman
Returns the number of common (non-console-unique) tickets in the KeyManager.
2019-07-07es: Implement ETicket GetTitleKey (8)Zach Hilman
Takes a rights ID as input and returns the associated title key, if it exists.
2019-07-07es: Implement ETicket ImportTicket (1)Zach Hilman
Takes a ticket and certificate and installs it to the KeyManager.
2019-07-07key_manager: Add accessors/helpers for ticket managementZach Hilman
2019-07-07key_manager: Add equality operator for RSAKeyPairZach Hilman
2019-07-07Remove unused member function declarationMichael Scire
2019-07-07physmem: add helpers, cleanup logic.Michael Scire
2019-07-07clang-format fixesMichael Scire
2019-07-07address review commentaryMichael Scire
2019-07-07Implement MapPhysicalMemory/UnmapPhysicalMemoryMichael Scire
This implements svcMapPhysicalMemory/svcUnmapPhysicalMemory for Yuzu, which can be used to map memory at a desired address by games since 3.0.0. It also properly parses SystemResourceSize from NPDM, and makes information available via svcGetInfo. This is needed for games like Super Smash Bros. and Diablo 3 -- this PR's implementation does not run into the "ASCII reads" issue mentioned in the comments of #2626, which was caused by the following bugs in Yuzu's memory management that this PR also addresses: * Yuzu's memory coalescing does not properly merge blocks. This results in a polluted address space/svcQueryMemory results that would be impossible to replicate on hardware, which can lead to game code making the wrong assumptions about memory layout. * This implements better merging for AllocatedMemoryBlocks. * Yuzu's implementation of svcMirrorMemory unprotected the entire virtual memory range containing the range being mirrored. This could lead to games attempting to map data at that unprotected range/attempting to access that range after yuzu improperly unmapped it. * This PR fixes it by simply calling ReprotectRange instead of Reprotect.
2019-07-07kernel/process: Allocate the process' TLS region during initializationLioncash
Prior to execution within a process beginning, the process establishes its own TLS region for uses (as far as I can tell) related to exception handling. Now that TLS creation was decoupled from threads themselves, we can add this behavior to our Process class. This is also good, as it allows us to remove a stub within svcGetInfo, namely querying the address of that region.
2019-07-07kernel/process: Move main thread stack allocation to its own functionLioncash
Keeps this particular set of behavior isolated to its own function.
2019-07-06mii: Implement IDatabaseService SetInterfaceVersionZach Hilman
Appears to set a member variable used to affect the API that games access, and the method used to store data.
2019-07-06Merge pull request #2674 from lioncash/reporterZach Hilman
core/reporter: Minor changes
2019-07-06Merge pull request #2677 from lioncash/assertZach Hilman
kernel/vm_manager: Handle stack/TLS IO region placement a little better
2019-07-06clang-format fixesMichael Scire
2019-07-06am: Implement GetAccumulatedSuspendedTickValueMichael Scire
2019-07-06memory: Remove unused includesLioncash
These aren't used within the central memory management code, so they can be removed.
2019-07-06memory: Remove unused PageTable forward declarationLioncash
This isn't used by anything in the header file, so it can be removed.
2019-07-06kernel/vm_manager: Rename 'new map' to 'stack'Lioncash
Provides a more accurate name for the memory region and also disambiguates between the map and new map regions of memory, making it easier to understand.
2019-07-05kernel/vm_manager: Handle stack/TLS IO region placement betterLioncash
Handles the placement of the stack a little nicer compared to the previous code, which was off in a few ways. e.g. The stack (new map) region, shouldn't be the width of the entire address space if the size of the region calculation ends up being zero. It should be placed at the same location as the TLS IO region and also have the same size. In the event the TLS IO region contains a size of zero, we should also be doing the same thing. This fixes our memory layout a little bit and also resolves some cases where assertions can trigger due to the memory layout being incorrect.
2019-07-05core/reporter: Allow moves into SaveToFile()Lioncash
Taking the json instance as a constant reference, makes all moves into the parameter non-functional, resulting in copies. Taking it by value allows moves to function.
2019-07-05core/reporter: Add missing includes and forward declarationsLioncash
Adds missing inclusions to prevent potential compilation issues.
2019-07-05core/reporter: Remove unnecessary namespace qualifiersLioncash
The Reporter class is part of the Core namespace, so the System class doesn't need to be qualified.
2019-07-05core/reporter: Remove pessimizing move in GetHLERequestContextData()Lioncash
This can inhibit copy-elision, so we can remove this redundant move.
2019-07-05core/reporter: Make bracing consistentLioncash
Makes all control statements braced, regardless of their size, making code more uniform.
2019-07-05core/reporter: Return in error case in SaveToFile()Lioncash
If the path couldn't be created, then we shouldn't be attempting to save the file.
2019-07-05NVServices: Correct delayed responses.Fernando Sahmkow
2019-07-05Nv_Host_Ctrl: Correct difference calculationFernando Sahmkow
2019-07-05NVServices: Address FeedbackFernando Sahmkow
2019-07-05NVServices: Styling, define constructors as explicit and correctionsFernando Sahmkow
2019-07-05NVFlinger: Correct GCC compile errorFernando Sahmkow
2019-07-05NVServices: Make NVEvents Automatic according to documentation.Fernando Sahmkow
2019-07-05NVServices: Correct CtrlEventWaitSync to block the ipc until timeout.Fernando Sahmkow
2019-07-05GPU: Correct Interrupts to interrupt on syncpt/value instead of event, ↵Fernando Sahmkow
mirroring hardware
2019-07-05nvflinger: Make the force 30 fps still force 30 fpsFernando Sahmkow
2019-07-05nv_services: Fixes to event liberation.Fernando Sahmkow
2019-07-05nvflinger: Acquire buffers in the same order as they were queued.Fernando Sahmkow
2019-07-05nv_services: Deglobalize NvServicesFernando Sahmkow
2019-07-05nv_host_ctrl: Make Sync GPU variant always return synced result.Fernando Sahmkow
2019-07-05nvhost_ctrl: Corrections to event handlingFernando Sahmkow
2019-07-05Gpu: Mark areas as protected.Fernando Sahmkow
2019-07-05nv_services: Stub CtrlEventSignalFernando Sahmkow
2019-07-05Gpu: Implement Hardware Interrupt Manager and manage GPU interruptsFernando Sahmkow