aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/nfp
AgeCommit message (Collapse)Author
2022-06-26core: Replace all instances of ResultCode with Resultgerman77
2022-04-23general: Convert source file copyright comments over to SPDXMorph
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.
2022-03-21service: Move mii enums and structs into its own fileMorph
Moves these into types.h, since other files also make use of these types.
2022-02-13nfp: Allow files without password datagerman77
2022-02-10nfp: Separate nfc tag from amiibo dataNarr the Reg
2022-02-08nfp: Address compiler issuesgerman77
2022-02-08nfp: Validate amiibo filesNarr the Reg
2022-02-08nfp: Improve implementationgerman77
2022-02-07nfp: Move IUser class to header and add missing enum and structsgerman77
2022-02-07nfp: Sort functions by command numbergerman77
2021-12-17core: hle: Remove global HLE lock.bunnei
- 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.
2021-11-03core: Remove unused includesameerj
2021-10-01service: Replace service event creation with ServiceContext::CreateEventMorph
The service context helps to manage all created events and allows us to close them upon destruction.
2021-06-02general: Replace RESULT_SUCCESS with ResultSuccessMorph
Transition to PascalCase for result names.
2021-05-05hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.bunnei
2021-05-05hle: kernel: Ensure all kernel objects with KAutoObject are properly created.bunnei
2021-05-05hle: kernel: Migrate KEvent to KAutoObject.bunnei
2021-05-05hle: kernel: Refactor IPC interfaces to not use std::shared_ptr.bunnei
2021-02-09nfp: Correct uninitialized size being used within GetTagInfo()Lioncash
We were previously the name of the object being initialized within its own initializer, which results in uninitialized data being read.
2021-02-05hle: kernel: Reimplement KReadableEvent and KWritableEvent.bunnei
2021-02-05hle: kernel: Rename WritableEvent to KWritableEvent.bunnei
2021-02-05hle: kernel: Rename ReadableEvent to KReadableEvent.bunnei
2021-01-28core: hle: kernel: Rename Thread to KThread.bunnei
2021-01-11hle: service: nfp: Remove incorrect signaling behavior in GetDeviceState.bunnei
2020-11-26service: Eliminate usages of the global system instanceLioncash
Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
2020-10-20Revert "core: Fix clang build"bunnei
2020-10-17core: Fix clang buildLioncash
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-09-17nfp: Eliminate two unnecessary copiesLioncash
GetAmiiboBuffer() returns by const reference, so we can use a reference instead of taking the returned buffer by value.
2020-08-03ipc: Allow all trivially copyable objects to be passed directly into ↵David
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
2019-11-28kernel: Implement a more accurate IPC dispatch.bunnei
2019-11-24kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for ↵bunnei
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.
2019-11-12service: Resolve sign conversion errorsLioncash
These are fairly trivial to resolve and most of the changes entail using RESULT_UNKNOWN over ResultCode(-1).
2019-11-03kernel: events: Remove ResetType::Automatic.bunnei
- This does not actually seem to exist in the real kernel - games reset these automatically. # Conflicts: # src/core/hle/service/am/applets/applets.cpp # src/core/hle/service/filesystem/fsp_srv.cpp
2019-10-04service/nfp: Silence -Wunused and -WswitchReinUsesLisp
2019-09-22Deglobalize System: NFPDavid Marcec
2019-05-18core/kernel/object: Rename ResetType enum membersLioncash
Renames the members to more accurately indicate what they signify. "OneShot" and "Sticky" are kind of ambiguous identifiers for the reset types, and can be kind of misleading. Automatic and Manual communicate the kind of reset type in a clearer manner. Either the event is automatically reset, or it isn't and must be manually cleared. The "OneShot" and "Sticky" terminology is just a hold-over from Citra where the kernel had a third type of event reset type known as "Pulse". Given the Switch kernel only has two forms of event reset types, we don't need to keep the old terminology around anymore.
2019-04-01general: Use deducation guides for std::lock_guard and std::unique_lockLioncash
Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future.
2019-01-04Return no application area when games try to open an application areaDavid Marcec
This will prompt CreateApplicationArea
2018-12-31core/kernel: Remove unnecessary inclusionsLioncash
Gets rid of a few unnecessary header dependencies in some source files.
2018-12-19Device handle should not be a random id, instead it's the current npad idDavid Marcec
Found during hardware testing
2018-11-29hle_ipc: Refactor SleepClientThread to avoid ReadableEventZach Hilman
2018-11-29kernel/event: Reference ReadableEvent from WritableEventZach Hilman
2018-11-29core: Port all current usages of Event to Readable/WritableEventZach Hilman
2018-11-26Changed logging to be "Log before execution", Added more error logging, all ↵David Marcec
services should now log on some level
2018-11-14nfp: Correct erroneous sizeof expression within GetTagInfo()Lioncash
The previous expression would copy sizeof(size_t) amount of bytes (8 on a 64-bit platform) rather than the full 10 bytes comprising the uuid member. Given the source and destination types are the same, we can just use an assignment here instead.
2018-10-24yuzu/main: Notify user of loading errors with Amiibo dataLioncash
We shouldn't silently continue if loading failed, since the general assumption is that no messages showing up implicitly indicates success.
2018-10-23Added Amiibo support (#1390)David
* Fixed conflict with nfp * Few fixups for nfc * Conflict 2 * Fixed AttachAvailabilityChangeEvent * Conflict 3 * Fixed byte padding * Refactored amiibo to not reside in "System" * Removed remaining references of nfc from system * used enum for Nfc GetStateOld * Added missing newline * Moved file operations to front end * Conflict 4 * Amiibos now use structs and added mutexes * Removed amiibo_path
2018-10-10"Better Hid" rework part 1David Marcec
2018-09-25service: Add missing headers inclusions where applicableLioncash
Gets rid of a few indirect inclusions.
2018-09-10hle/service: Default constructors and destructors in the cpp file where ↵Lioncash
applicable When a destructor isn't defaulted into a cpp file, it can cause the use of forward declarations to seemingly fail to compile for non-obvious reasons. It also allows inlining of the construction/destruction logic all over the place where a constructor or destructor is invoked, which can lead to code bloat. This isn't so much a worry here, given the services won't be created and destroyed frequently. The cause of the above mentioned non-obvious errors can be demonstrated as follows: ------- Demonstrative example, if you know how the described error happens, skip forwards ------- Assume we have the following in the header, which we'll call "thing.h": \#include <memory> // Forward declaration. For example purposes, assume the definition // of Object is in some header named "object.h" class Object; class Thing { public: // assume no constructors or destructors are specified here, // or the constructors/destructors are defined as: // // Thing() = default; // ~Thing() = default; // // ... Some interface member functions would be defined here private: std::shared_ptr<Object> obj; }; If this header is included in a cpp file, (which we'll call "main.cpp"), this will result in a compilation error, because even though no destructor is specified, the destructor will still need to be generated by the compiler because std::shared_ptr's destructor is *not* trivial (in other words, it does something other than nothing), as std::shared_ptr's destructor needs to do two things: 1. Decrement the shared reference count of the object being pointed to, and if the reference count decrements to zero, 2. Free the Object instance's memory (aka deallocate the memory it's pointing to). And so the compiler generates the code for the destructor doing this inside main.cpp. Now, keep in mind, the Object forward declaration is not a complete type. All it does is tell the compiler "a type named Object exists" and allows us to use the name in certain situations to avoid a header dependency. So the compiler needs to generate destruction code for Object, but the compiler doesn't know *how* to destruct it. A forward declaration doesn't tell the compiler anything about Object's constructor or destructor. So, the compiler will issue an error in this case because it's undefined behavior to try and deallocate (or construct) an incomplete type and std::shared_ptr and std::unique_ptr make sure this isn't the case internally. Now, if we had defaulted the destructor in "thing.cpp", where we also include "object.h", this would never be an issue, as the destructor would only have its code generated in one place, and it would be in a place where the full class definition of Object would be visible to the compiler. ---------------------- End example ---------------------------- Given these service classes are more than certainly going to change in the future, this defaults the constructors and destructors into the relevant cpp files to make the construction and destruction of all of the services consistent and unlikely to run into cases where forward declarations are indirectly causing compilation errors. It also has the plus of avoiding the need to rebuild several services if destruction logic changes, since it would only be necessary to recompile the single cpp file.