aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/ldr/ldr.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[hle] constexpr handler dispatch maps, introduce version gating ↵PavelBARABANOV2026-10-151-25/+28
| | | | | | | | | | | | | | | | | (#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-28/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-3/+6
| | | | | | | | | | | | | | | | | | 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>
* ro: add separate ro serviceLiam2023-12-091-634/+0
|
* kernel: add KPageTableBaseLiam2023-11-101-23/+22
| | | | Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
* general: fix incorrect conversionsLiam2023-08-081-1/+1
|
* core: remove ResultVal typeLiam2023-08-081-21/+25
|
* kernel: reduce page table region checkingLiam2023-07-141-3/+3
|
* k_process: PageTable -> GetPageTableLiam2023-07-141-7/+7
|
* memory: rename global memory references to application memoryLiam2023-03-231-5/+5
|
* kernel: use KTypedAddress for addressesLiam2023-03-221-2/+3
|
* service: move hle_ipc from kernelLiam2023-03-011-6/+6
|
* service: refactor server architectureLiam2023-02-211-7/+11
| | | | Converts services to have their own processes
* general: rename CurrentProcess to ApplicationProcessLiam2023-02-131-6/+7
|
* core: hle: kernel: k_memory_block: Update.bunnei2022-10-181-2/+2
|
* core: Replace all instances of ResultCode with Resultgerman772022-06-261-21/+20
|
* common: Change semantics of UNREACHABLE to unconditionally crashLiam2022-06-131-1/+1
|
* 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.
* Merge pull request #8172 from bunnei/kernel-mutexFernando S2022-04-161-1/+2
|\ | | | | hle: kernel: Use std::mutex instead of spin locks for most kernel locking.
| * core: hle: service: Allocate a service thread.bunnei2022-04-111-1/+2
| |
* | hle: kernel: Invalidate entire icache in UnmapProcessMemory and ↵tech-ticks2022-04-091-11/+19
|/ | | | UnmapCodeMemory (fixes #8174)
* core: Reduce unused includesameerj2022-03-191-1/+0
|
* hle: service: ldr: Use deterministic addresses when mapping NROs.bunnei2022-03-081-19/+59
| | | | | - Instead of randomization, choose in-order addresses for where to map NROs into memory. - This results in predictable behavior when debugging and consistent behavior when reproducing issues.
* hle: kernel: k_page_table: Update SetProcessMemoryPermission.bunnei2022-01-111-3/+4
|
* hle: service: ldr: UnmapCodeMemory BSS only when set.bunnei2022-01-111-3/+7
|
* hle: kernel: k_page_table: ReadAndWrite -> UserReadWrite.bunnei2022-01-111-1/+1
|
* hle: kernel: k_page_table: Rename *ProcessCodeMemory -> *CodeMemory.bunnei2022-01-111-14/+13
|
* kernel: KPageTable: Rename SetCodeMemoryPermission to SetProcessMemoryPermissionMorph2021-11-201-4/+4
|
* general: Get the current process program id directly from the systemMorph2021-11-041-2/+1
| | | | This allows us to avoid including KProcess' header file in files that only need to get the current process' program id.
* general: Rename GetTitleID to GetProgramIDMorph2021-11-041-1/+1
|
* general: Remove MakeResult helpersMorph2021-11-021-2/+2
| | | | This is made obsolete by the presence of implicit constructors.
* general: Replace RESULT_SUCCESS with ResultSuccessMorph2021-06-021-5/+5
| | | | Transition to PascalCase for result names.
* Merge pull request #6266 from bunnei/kautoobject-refactorbunnei2021-05-071-4/+4
|\ | | | | Kernel Rework: Migrate kernel objects to KAutoObject
| * hle: kernel: Rename Process to KProcess.bunnei2021-05-051-4/+4
| |
* | ldr: Simplify memory copy within LoadNro()Lioncash2021-05-061-5/+3
|/ | | | | | | | We can use the dedicated memory function for performing copies instead of reading into a temporary buffer and then immediately writing it back out to memory. Eliminates a bit of heap memory churn.
* ldr: Use proper namesgerman772021-04-081-16/+16
|
* hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable.bunnei2021-02-181-4/+3
|
* hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others.bunnei2021-02-181-11/+10
|
* hle: kernel: KSystemControl does not belong in Memory namespace.bunnei2021-02-181-2/+2
|
* kernel: Unify result codes (#5890)Chloe2021-02-121-3/+3
| | | | | | | | | * kernel: Unify result codes Drop the usage of ERR_NAME convention in kernel for ResultName. Removed seperation between svc_results.h & errors.h as we mainly include both most of the time anyways. * oops * rename errors to svc_results
* core: arm: Implement InvalidateCacheRange for CPU cache invalidation.bunnei2020-11-291-5/+0
|
* service: Eliminate usages of the global system instanceLioncash2020-11-261-8/+7
| | | | | 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.
* hle: service: ldr: Implement UnloadNrr.bunnei2020-10-311-1/+15
| | | | - Used by Final Fantasy X/X-2 HD Remaster.
* core: Fix clang build pt.3Lioncash2020-10-211-2/+2
| | | | Should finally resolve building with clang.
* Revert "core: Fix clang build"bunnei2020-10-201-2/+2
|
* core: Fix clang buildLioncash2020-10-171-2/+2
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* service/ldr: Resolve sign mismatch warningsLioncash2020-08-031-3/+2
| | | | | We were performing an int < size_t comparison. We can just correct the type of the induction variable.
* ldr: Cleanup NRO & NRR structsDavid Marcec2020-06-281-8/+8
|
* Move SHA256Hash to its original positionVolcaEM2020-06-181-2/+2
| | | It's not needed to have it in its previous position anymore