aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/nfp/nfp.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[hle] constexpr handler dispatch maps, introduce version gating ↵PavelBARABANOV2026-10-151-136/+140
| | | | | | | | | | | | | | | | | (#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-140/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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] Implement I{User,Debug,System}::StartDetectionWithFilter (#4425)lizzie2026-09-141-0/+3
| | | | | | | | | | | | | | | | On fw23 it just uses the same thunk as StartDetection. 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/4425 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
* [hle] remove parent object reference data on Request/Response builders, pass ↵lizzie2026-06-291-3/+3
| | | | | | | | | | | | | | | | 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>
* [common/logging] Simplify logging logic and fix issues when logging before ↵lizzie2026-03-121-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | system is created (#3688) - our logging code was bigger than spdlog itself, why???? just keep it simple - fix issues when logging before logging system is even started - removes the "initialized logging twice" issue - removes uneeded indirection in file logging - uses direct formatting instead of jumping hoopla-around the fmt::format() ressult - code duplication and dead code removal as usual I did explore dup2() but I think it's not worth the hassle I did try `fwopen()` but it's better if things are just kept as-is. there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <chimera@dravee.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* service: nfc: Merge device interfaces and create the device managerNarr the Reg2023-05-051-6/+6
|
* service: nfc: Create interfaceNarr the Reg2023-04-231-21/+3
|
* service: nfp: Implement debug InterfaceNarr the Reg2023-04-141-6/+6
|
* service: nfp: Implement system interfaceNarr the Reg2023-04-141-16/+16
|
* service: nfp: Use an unique interfaceNarr the Reg2023-04-131-1/+186
|
* service: move hle_ipc from kernelLiam2023-03-011-2/+2
|
* service: refactor server architectureLiam2023-02-211-2/+6
| | | | Converts services to have their own processes
* service: nfp: Rewrite and implement applet callsgerman772022-10-021-1074/+19
|
* chore: fix some typosAndrea Pappacoda2022-09-231-2/+2
| | | | Fix some typos reported by Lintian
* core: nfp: Workaround for lack of multiple nfp interfacesgerman772022-09-071-1/+3
|
* core: nfp: Correct date and amiibo nameNarr the Reg2022-09-071-9/+20
|
* core: nfp: Implement Convert and RecreateApplicationArea, accuracy fixesNarr the Reg2022-09-071-15/+80
|
* core: nfp: Implement amiibo encryptiongerman772022-09-071-136/+345
|
* core: Replace all instances of ResultCode with Resultgerman772022-06-261-16/+16
|
* 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: Move mii enums and structs into its own fileMorph2022-03-211-0/+1
| | | | Moves these into types.h, since other files also make use of these types.
* nfp: Allow files without password datagerman772022-02-131-6/+16
|
* nfp: Separate nfc tag from amiibo dataNarr the Reg2022-02-101-31/+43
|
* nfp: Address compiler issuesgerman772022-02-081-25/+26
|
* nfp: Validate amiibo filesNarr the Reg2022-02-081-31/+84
|
* nfp: Improve implementationgerman772022-02-081-115/+549
|
* nfp: Move IUser class to header and add missing enum and structsgerman772022-02-071-257/+197
|
* nfp: Sort functions by command numbergerman772022-02-071-79/+79
|
* core: hle: Remove global HLE lock.bunnei2021-12-171-2/+0
| | | | | - This was added early on as a hack to protect against some concurrency issues. - It's not clear that this serves any purpose anymore, and if it does, individual components should be fixed rather than using a global recursive mutex.
* core: Remove unused includesameerj2021-11-031-2/+0
|
* service: Replace service event creation with ServiceContext::CreateEventMorph2021-10-011-21/+28
| | | | The service context helps to manage all created events and allows us to close them upon destruction.
* general: Replace RESULT_SUCCESS with ResultSuccessMorph2021-06-021-20/+20
| | | | Transition to PascalCase for result names.
* hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.bunnei2021-05-051-5/+5
|
* hle: kernel: Ensure all kernel objects with KAutoObject are properly created.bunnei2021-05-051-0/+4
|
* hle: kernel: Migrate KEvent to KAutoObject.bunnei2021-05-051-18/+13
|
* hle: kernel: Refactor IPC interfaces to not use std::shared_ptr.bunnei2021-05-051-1/+1
|
* nfp: Correct uninitialized size being used within GetTagInfo()Lioncash2021-02-091-1/+1
| | | | | We were previously the name of the object being initialized within its own initializer, which results in uninitialized data being read.
* hle: kernel: Reimplement KReadableEvent and KWritableEvent.bunnei2021-02-051-11/+14
|
* hle: kernel: Rename WritableEvent to KWritableEvent.bunnei2021-02-051-4/+4
|
* hle: kernel: Rename ReadableEvent to KReadableEvent.bunnei2021-02-051-2/+2
|
* core: hle: kernel: Rename Thread to KThread.bunnei2021-01-281-1/+1
|
* hle: service: nfp: Remove incorrect signaling behavior in GetDeviceState.bunnei2021-01-111-6/+0
|
* service: Eliminate usages of the global system instanceLioncash2020-11-261-4/+5
| | | | | Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
* Revert "core: Fix clang build"bunnei2020-10-201-1/+1
|
* core: Fix clang buildLioncash2020-10-171-1/+1
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* nfp: Eliminate two unnecessary copiesLioncash2020-09-171-10/+13
| | | | | GetAmiiboBuffer() returns by const reference, so we can use a reference instead of taking the returned buffer by value.
* ipc: Allow all trivially copyable objects to be passed directly into ↵David2020-08-031-4/+4
| | | | | | | | | | | | | | | 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
* kernel: Implement a more accurate IPC dispatch.bunnei2019-11-281-1/+1
|
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for ↵bunnei2019-11-241-1/+1
| | | | | | | | 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.
* service: Resolve sign conversion errorsLioncash2019-11-121-3/+0
| | | | | These are fairly trivial to resolve and most of the changes entail using RESULT_UNKNOWN over ResultCode(-1).