aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/es/es.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[hle] constexpr handler dispatch maps, introduce version gating ↵PavelBARABANOV2026-10-151-171/+171
| | | | | | | | | | | | | | | | | (#4480)" (#4532) This reverts commit 218c6705d950635bc18f8458d738a1996fb592b6. - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md). - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4532 Reviewed-by: lizzie <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Maufeat <sahyno1996@gmail.com>
* [hle] constexpr handler dispatch maps, introduce version gating (#4480)lizzie2026-10-131-171/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR primarily focuses on upbringing constexpr maps for handlers. Each time an HLE object of a service is construed, it registers it's own handlers, over and over. Regardless of whetever it needs them at the moment or not. Additionally we don't require to keep track of different function pointers amongst each object. This can be done by overriding the given function instead, as opposed to having a separate hash map for every given object. In other words: Remove handlers (and handlers_tipc) map for every instance then read from a static defined per-class. - [x] Migrate all HLE functions to new `frozen::map` constexpr time finder - [ ] Measure if this approach actually makes better codegen Optional: - [x] Properly gate all functions (that have versions commented next to them) - [x] Maybe store `HandlerFnP<>` and `const char*` separately, version gating can go in a different map as well Information such as name can be used on debug builds, but doesn't particularly help on release as one can consult an external reference (or have an annotated IPC map) Signed-off-by: lizzie <lizzie@eden-emu.dev> - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Co-authored-by: Maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4480 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [hle/service] stub missing homebrew services, fix NPad/caps crashes (#4264)lizzie2026-08-181-1/+90
| | | | | | | | | | | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- this PR adds various missing services (acc:e, acc:e:u1) to expand homebrew compatibility notably this also fixes NPad related crashes due to nullref Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4264 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
* [hle] stubbed extra services from (parental controls and stuff) fw21 (#3175)Maufeat2025-12-181-0/+10
| | | | | | | | | | | | | | Adds more Firmware 20+ related service commands. Renames existing service commands according to switchbrew docs, Unstubs new parental service stuff. Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3175 Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: Lizzie <lizzie@eden-emu.dev> Co-authored-by: Maufeat <sahyno1996@gmail.com> Co-committed-by: Maufeat <sahyno1996@gmail.com>
* [meta] fix license headers (#2547)lizzie2025-09-211-0/+3
| | | | | | | Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2547 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [cmake] enable clang-cl and WoA builds (#348)lizzie2025-09-091-2/+2
| | | | | | | | | | | | | | Compilation and CMake fixes for both Windows on ARM and clang-cl, meaning Windows can now be built on both MSVC and clang on both amd64 and aarch64. Compiling on clang is *dramatically* faster so this should be useful for CI. Co-authored-by: crueter <crueter@eden-emu.dev> Co-authored-by: crueter <crueter@crueter.xyz> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/348 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* core: Add support for loading NSPs with personalized tickets. (#10048)Steveice102023-09-051-6/+4
| | | | Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
* service: move hle_ipc from kernelLiam2023-03-011-12/+12
|
* service: refactor server architectureLiam2023-02-211-2/+6
| | | | Converts services to have their own processes
* Revert "Merge pull request #9718 from yuzu-emu/revert-9508-hle-ipc-buffer-span"ameerj2023-02-031-1/+1
| | | | | This reverts commit 153fa289d219c37f8344bccfdf67edc6e579d8c8, reversing changes made to 20676b3b5a1a613af4e498c7cbfdc456339d85a0.
* Revert "hle_ipc: Use std::span to avoid heap allocations/copies when calling ↵liamwhite2023-02-021-1/+1
| | | | ReadBuffer"
* hle_ipc: Rename ReadBufferSpan to ReadBufferameerj2022-12-281-2/+2
|
* service: Use ReadBufferSpan where it is trivial to do soameerj2022-12-251-2/+2
|
* service: Make use of buffer element count helpersLioncash2022-11-231-15/+12
|
* core: Replace all instances of ResultCode with Resultgerman772022-06-261-2/+2
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* service/es: Update to 13.0.0german772021-09-261-0/+6
|
* general: Replace RESULT_SUCCESS with ResultSuccessMorph2021-06-021-10/+10
| | | | Transition to PascalCase for result names.
* service: Eliminate usages of the global system instanceLioncash2020-11-261-3/+3
| | | | | Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
* ipc: Allow all trivially copyable objects to be passed directly into ↵David2020-08-031-1/+1
| | | | | | | | | | | | | | | WriteBuffer (#4465) * ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer With the support of C++20, we can use concepts to deduce if a type is an STL container or not. * More agressive concept for stl containers * Add -fconcepts * Move to common namespace * Add Common::IsBaseOf
* key_manager: Correct casing of instance()Lioncash2020-07-011-1/+1
| | | | Our codebase uppercases member function names.
* Merge pull request #3967 from FearlessTobi/keys-singletonDavid2020-07-011-1/+1
|\ | | | | crypto: Make KeyManager a singleton class
| * crypto: Make KeyManager a singleton classFearlessTobi2020-05-201-1/+1
| | | | | | | | | | | | Previously, we were reading the keys everytime a KeyManager object was created, causing yuzu to reread the keys file multiple hundreds of times when loading the game list. With this change, it is only loaded once. On my system, this decreased game list loading times by a factor of 20.
* | Use better names for "Unknown"sVolcaEM2020-06-271-39/+39
| |
* | Update function namesVolcaEM2020-06-271-4/+4
| |
* | es: Update function tableVolcaEM2020-06-271-2/+41
|/ | | This was based on Switchbrew page: https://switchbrew.org/wiki/ETicket_services
* Merge pull request #3697 from lioncash/declarationsbunnei2020-04-231-0/+1
|\ | | | | CMakeLists: Enable -Wmissing-declarations on Linux builds
| * General: Resolve warnings related to missing declarationsLioncash2020-04-161-0/+1
| |
* | service: Remove unused RequestParser instancesLioncash2020-04-171-1/+0
|/ | | | | These aren't used, so they should be removed to reduce compilation warnings.
* service: Update function tablesLioncash2019-11-121-0/+2
| | | | | | Keeps the function tables up to date. Updated based off information from Switchbrew.
* Services::ES fix casting warningsFreddyFunk2019-09-291-6/+6
|
* key_manager: Convert Ticket union to std::variantZach Hilman2019-07-071-2/+2
|
* es: Populate/synthesize tickets on constructionZach Hilman2019-07-071-2/+3
|
* key_manager: Add structure for Ticket parsingZach Hilman2019-07-071-9/+9
|
* es: Implement ETicket GetPersonalizedTicketData (17)Zach Hilman2019-07-071-1/+21
| | | Copies the raw personal ticket data into the buffer provided.
* es: Implement ETicket GetCommonTicketData (16)Zach Hilman2019-07-071-1/+20
| | | Copies the raw common ticket data for the specified rights ID into the buffer provided.
* es: Implement ETicket GetPersonalizedTicketSize (15)Zach Hilman2019-07-071-1/+17
| | | Returns the size of the buffer needed to hold the personal ticket associated with the rights ID.
* es: Implement ETicket GetCommonTicketSize (14)Zach Hilman2019-07-071-1/+17
| | | Returns the size of the buffer needed to hold the common ticket associated with the rights ID.
* es: Implement ETicket ListPersonalizedTicket (12)Zach Hilman2019-07-071-1/+24
| | | Returns an application-specific number of entries of personal tickets, starting at offset 0.
* es: Implement ETicket ListCommonTicket (11)Zach Hilman2019-07-071-1/+24
| | | Returns an application specified count of entries of common tickets, starting at offset 0.
* es: Implement ETicket CountPersonalizedTicket (10)Zach Hilman2019-07-071-1/+12
| | | Returns the number of personalized (console/user-unique) tickets in the KeyManager.
* es: Implement ETicket CountCommonTicket (9)Zach Hilman2019-07-071-1/+12
| | | Returns the number of common (non-console-unique) tickets in the KeyManager.
* es: Implement ETicket GetTitleKey (8)Zach Hilman2019-07-071-1/+27
| | | Takes a rights ID as input and returns the associated title key, if it exists.
* es: Implement ETicket ImportTicket (1)Zach Hilman2019-07-071-1/+45
| | | Takes a ticket and certificate and installs it to the KeyManager.
* es: Update service function tablesLioncash2018-10-191-7/+11
| | | | Updated based off information provided by Switchbrew.
* service: Add the es serviceLioncash2018-07-251-0/+57
Adds the skeleton for the ETicket service based off the information on Switch Brew