aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/pm/pm.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[hle] constexpr handler dispatch maps, introduce version gating ↵PavelBARABANOV2026-10-151-51/+49
| | | | | | | | | | | | | | | | | (#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-49/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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] Enforce max_sessions, add bpc:ams service (#4394)lizzie2026-09-111-4/+4
| | | | | | | | | | | | | | | | | | As per switchbrew, as per atmosphere, and some poking around. bpc:ams stubbed for now. 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. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4394 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [core, hle, video_core, memory] Improve multi-process, display layers, ↵Maufeat2026-08-291-5/+2
| | | | | | | | | | | | | | | | | | | | | dynamic shader cache and rework overlay (#4238) - [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. ------------------- - Dynamic shader cache reloading capability for qlaunch - Multi-process improvements (thanks to @frank1734), instead of just using the main application we now respect caller process (also did it for HID devices while I was at it) - Layer stack masks & shared buffer screenshot for video core, added different masks (screenshot, recording, etc.) this was discovered as an issue due to how in qlaunch the transition was not right between applications. May not be perfect but also fixes screenshots while using qlaunch - Reworked overlay display management (input and visibility) - instead of random numbers as I've previously did, I decided to add an AppletZIndex enum for better readability. Also split capability of input by touch and gamepad. - etc. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4238 Reviewed-by: Samuel <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [hle] remove parent object reference data on Request/Response builders, pass ↵lizzie2026-06-291-1/+1
| | | | | | | | | | | | | | | | by argument (#3774) anyways this should remove a bunch of redundant code/stack usage for response builders (ahem, msvc) SHOULD help games that use IPC heavily like PKZA and whatnot biblical levels of performance greed Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3774 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Maufeat <sahyno1996@gmail.com>
* [video_core, hle] remove redundant parent references in system structs (#3908)lizzie2026-06-231-17/+16
| | | | | | | | | | reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev>
* kernel: fix debugger and process list lifetimeLiam2024-01-121-48/+37
|
* kernel: update KProcessLiam2023-10-211-1/+1
|
* kernel: convert KProcess to new styleLiam2023-03-121-10/+10
|
* service: move hle_ipc from kernelLiam2023-03-011-10/+10
|
* service: refactor server architectureLiam2023-02-211-6/+10
| | | | Converts services to have their own processes
* core: Replace all instances of ResultCode with Resultgerman772022-06-261-6/+6
|
* 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: pm: Implement AtmosphereGetProcessInfotech-ticks2022-02-041-0/+45
|
* service: pm: Implement AtmosphereGetProcessIdMorph2021-11-201-0/+24
| | | | - Used by Skyline modding framework
* service: pm: Add all relevant result codesMorph2021-11-201-3/+8
|
* service: pm: Rename title id to program idMorph2021-11-201-6/+6
|
* general: Rename GetTitleID to GetProgramIDMorph2021-11-041-2/+2
|
* general: Replace RESULT_SUCCESS with ResultSuccessMorph2021-06-021-5/+5
| | | | Transition to PascalCase for result names.
* core: Make variable shadowing a compile-time errorLioncash2021-05-161-6/+6
| | | | | | Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
* hle: kernel: Rename Process to KProcess.bunnei2021-05-051-7/+8
|
* hle: kernel: Migrate KProcess to KAutoObject.bunnei2021-05-051-7/+5
|
* service: Eliminate usages of the global system instanceLioncash2020-11-261-11/+12
| | | | | Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
* ipc_helpers: Remove usage of the global system instanceLioncash2020-11-081-0/+1
| | | | | | | | | Resolves numerous deprecation warnings throughout the codebase due to inclusion of this header. Now building core should be significantly less noisy (and also relying on less global state). This also uncovered quite a few modules that were relying on indirect includes, which have also been fixed.
* service: Update function tablesVolcaEM2020-06-291-17/+17
|
* Merge pull request #3094 from lioncash/tablesbunnei2019-11-241-1/+1
|\ | | | | service: Update function tables
| * service: Update function tablesLioncash2019-11-121-1/+1
| | | | | | | | | | | | Keeps the function tables up to date. Updated based off information from Switchbrew.
* | kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for ↵bunnei2019-11-241-6/+6
|/ | | | | | | | kernel objects. (#3154) * kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. - See https://github.com/citra-emu/citra/pull/4710 for details.
* pm: Implement pm:shell and pm:dmnt GetApplicationPidZach Hilman2019-06-261-3/+29
| | | | Returns the process ID of the current application or 0 if no app is running.
* pm: Implement pm:dmnt GetTitlePidZach Hilman2019-06-261-7/+36
| | | | Takes a title ID and searches for a matching process, returning error if it doesn't exist, otherwise the process ID.
* pm: Implement pm:info GetTitleIdZach Hilman2019-06-261-2/+47
| | | | Searches the process list for a process with the specified ID, returning the title ID if it exists.
* service: Update service function tablesLioncash2019-04-111-7/+14
| | | | Updates function tables based off information from SwitchBrew.
* service/pm: Implement SetMaintenanceBoot()Lioncash2019-01-281-1/+10
| | | | | | | This quite literally functions as a basic setter. No other error checking or anything (since there's nothing to really check against). With this, it completes the pm:bm interface in terms of functionality.
* service/pm: Tidy up functionality related to SystemBootModeLioncash2019-01-281-1/+3
| | | | Just minor tidying of interfaces.
* Changed logging to be "Log before execution", Added more error logging, all ↵David Marcec2018-11-261-2/+2
| | | | services should now log on some level
* Added GetBootMode (#1107)David2018-08-231-1/+12
| | | | | | | | * Added GetBootMode Used by homebrew * Added enum for GetBootMode
* service: Add pm servicesLioncash2018-07-251-0/+70
Adds the skeleton for the process management services based off information on Switch Brew.