summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* configuration/config: Use an intermediary variable for accessing playersGravatar Lioncash2018-12-051-43/+38
| | | | Avoids typing the same long accessor just to retrieve player attributes.
* Merge pull request #1859 from heapo/lut_array_codegenGravatar bunnei2018-12-041-275/+277
|\ | | | | Convert high-frequency LUT arrays from constexpr to static constexpr
| * Improve msvc codegen for hot-path array LUTsGravatar heapo2018-12-041-275/+277
| | | | | | | | | | | | | | In some constexpr functions, msvc is building the LUT at runtime (pushing each element onto the stack) out of an abundance of caution. Moving the arrays into be file-scoped constexpr's avoids this and turns the functions into simple look-ups as intended.
* | Merge pull request #1704 from DarkLordZach/oss-sysarchiveGravatar bunnei2018-12-048-1/+227
|\ \ | | | | | | file_sys: Implement open source system archives
| * | file_sys: Implement system archive synthesizer for NgWord (806)Gravatar Zach Hilman2018-11-225-6/+61
| | |
| * | fsp_srv: Add support for using open source archive if not found in NANDGravatar Zach Hilman2018-11-151-0/+10
| | |
| * | file_sys: Add framework for synthesizing open source archivesGravatar Zach Hilman2018-11-153-0/+109
| | |
| * | vfs_vector: Add VFS backend for std::arrayGravatar Zach Hilman2018-11-151-0/+52
| | | | | | | | | | | | Allows using constexpr/static const data with VFS.
* | | Merge pull request #1837 from lioncash/mapGravatar bunnei2018-12-041-59/+46
|\ \ \ | | | | | | | | yuzu/game_list_worker: Minor cleanup and code deduplication
| * | | yuzu/game_list_worker: Move std::string construction after the termination ↵Gravatar Lioncash2018-12-041-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | check in callbacks Avoids potentially allocating a std::string instance when it isn't needed.
| * | | yuzu/game_list_worker: Deduplicate game list entry creationGravatar Lioncash2018-12-011-47/+33
| | | | | | | | | | | | | | | | Avoids duplicating the same code twice verbatim.
| * | | yuzu/game_list_worker: Tidy up string handling in FillControlMap()Gravatar Lioncash2018-12-011-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't need to call out to our own file handling functions when we're going to construct a QFileInfo instance right after it. We also don't need to convert to a std::string again just to compare the file extension.
* | | | Merge pull request #1838 from lioncash/dedupGravatar bunnei2018-12-041-27/+26
|\ \ \ \ | | | | | | | | | | file_sys/registered_cache: Eliminate variable shadowing
| * | | | file_sys/registered_cache: Eliminate variable shadowingGravatar Lioncash2018-12-011-27/+26
| |/ / / | | | | | | | | | | | | | | | | Also inverts if statements where applicable to allow unindenting code a little bit.
* | | | Merge pull request #1836 from lioncash/unusedGravatar bunnei2018-12-041-1/+0
|\ \ \ \ | | | | | | | | | | crypto/key_manager: Remove unused variable in GetTicketblob()
| * | | | crypto/key_manager: Remove unused variable in GetTicketblob()Gravatar Lioncash2018-12-011-1/+0
| |/ / /
* | | | kernel/svc: Remove unused header inclusionGravatar Lioncash2018-12-041-1/+0
| | | |
* | | | kernel/svc: Implement svcSignalEvent()Gravatar Lioncash2018-12-041-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function simply does a handle table lookup for a writable event instance identified by the given handle value. If a writable event cannot be found for the given handle, then an invalid handle error is returned. If a writable event is found, then it simply signals the event, as one would expect.
* | | | kernel/svc: Implement svcCreateEvent()Gravatar Lioncash2018-12-042-1/+42
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | svcCreateEvent operates by creating both a readable and writable event and then attempts to add both to the current process' handle table. If adding either of the events to the handle table fails, then the relevant error from the handle table is returned. If adding the readable event after the writable event to the table fails, then the writable event is removed from the handle table and the relevant error from the handle table is returned. Note that since we do not currently test resource limits, we don't check the resource limit table yet.
* | | Merge pull request #1845 from lioncash/nroGravatar bunnei2018-12-045-19/+23
|\ \ \ | | | | | | | | loader/{nro, nso}: Remove dependency on the System class
| * | | loader/nso: Remove dependency on the System classGravatar Lioncash2018-12-023-8/+11
| | | | | | | | | | | | | | | | | | | | Similar to the NRO changes, we can also pass the process explicitly as a parameter from Load instead of indirecting through the System class.
| * | | loader/nro: Make the static LoadNro function internally linkedGravatar Lioncash2018-12-022-7/+5
| | | | | | | | | | | | | | | | | | | | This simply acts as a forwarding function for the Load() function, so this doesn't need to be directly exposed.
| * | | loader/nro: Remove dependency on the System classGravatar Lioncash2018-12-022-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | Load() is already given the process instance as a parameter, so instead of coupling the class to the System class, we can just forward that parameter to LoadNro()
* | | | Merge pull request #1853 from lioncash/eventGravatar bunnei2018-12-046-11/+20
|\ \ \ \ | | | | | | | | | | kernel/object: Amend handle types to distinguish between readable and writable events
| * | | | kernel/object: Amend handle types to distinguish between readable and ↵Gravatar Lioncash2018-12-046-11/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | writable events Two kernel object should absolutely never have the same handle ID type. This can cause incorrect behavior when it comes to retrieving object types from the handle table. In this case it allows converting a WritableEvent into a ReadableEvent and vice-versa, which is undefined behavior, since the object types are not the same. This also corrects ClearEvent() to check both kernel types like the kernel itself does.
* | | | | Rewrited TEX/TEXS (TEX Scalar). (#1826)Gravatar Marcos2018-12-041-259/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rewrited TEX/TEXS (TEX Scalar). * Style fixes. * Styles issues.
* | | | | Merge pull request #1857 from lioncash/res-infoGravatar bunnei2018-12-045-11/+37
|\ \ \ \ \ | | | | | | | | | | | | kernel/svc: Implement the resource limit svcGetInfo option
| * | | | | kernel/handle_table: Amend reference to CTR-OS in Create()Gravatar Lioncash2018-12-041-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Another hold-over from Citra.
| * | | | | kernel/svc: Implement the resource limit svcGetInfo optionGravatar Lioncash2018-12-044-9/+34
| |/ / / / | | | | | | | | | | | | | | | | | | | | Allows a process to register the resource limit as part of its handle table.
* | | | | Merge pull request #1854 from Subv/old_command_processorGravatar bunnei2018-12-042-142/+6
|\ \ \ \ \ | |/ / / / |/| | | | Don't try to route PFIFO methods (0-0x40) to the other engines.
| * | | | Removed unused file.Gravatar Subv2018-12-031-142/+0
| | | | | | | | | | | | | | | | | | | | This is a leftover from #1792
| * | | | GPU: Don't try to route PFIFO methods (0-0x40) to the other engines.Gravatar Subv2018-12-031-0/+6
| | |/ / | |/| |
* | | | [Kernel::CreateThread] Match format specifiers to LOG_TRACE's argumentsGravatar V.Kalyuzhny2018-12-041-1/+1
| | | |
* | | | Merge pull request #1840 from lioncash/infoGravatar bunnei2018-12-031-50/+100
|\ \ \ \ | | | | | | | | | | svc: Reorganize svcGetInfo, handle more error cases for existing implemented info categories
| * | | | svc: Use the current process' handle table for retrieving the process ↵Gravatar Lioncash2018-12-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | instance to act upon The kernel uses the handle table of the current process to retrieve the process that should be used to retrieve certain information. To someone not familiar with the kernel, this might raise the question of "Ok, sounds nice, but doesn't this make it impossible to retrieve information about the current process?". No, it doesn't, because HandleTable instances in the kernel have the notion of a "pseudo-handle", where certain values allow the kernel to lookup objects outside of a given handle table. Currently, there's only a pseudo-handle for the current process (0xFFFF8001) and a pseudo-handle for the current thread (0xFFFF8000), so to retrieve the current process, one would just pass 0xFFFF8001 into svcGetInfo. The lookup itself in the handle table would be something like: template <typename T> T* Lookup(Handle handle) { if (handle == PSEUDO_HANDLE_CURRENT_PROCESS) { return CurrentProcess(); } if (handle == PSUEDO_HANDLE_CURRENT_THREAD) { return CurrentThread(); } return static_cast<T*>(&objects[handle]); } which, as is shown, allows accessing the current process or current thread, even if those two objects aren't actually within the HandleTable instance.
| * | | | svc: Reorganize svcGetInfo, handle more error cases for existing implemented ↵Gravatar Lioncash2018-12-021-50/+99
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | info categories Our implementation of svcGetInfo was slightly incorrect in that we weren't doing proper error checking everywhere. Instead, reorganize it to be similar to how the kernel seems to do it.
* | | | Merge pull request #1842 from lioncash/slotGravatar bunnei2018-12-039-14/+12
|\ \ \ \ | | | | | | | | | | yuzu/configuration: Minor clean-up related changes
| * | | | yuzu/configuration: Make slots private where applicableGravatar Lioncash2018-12-025-7/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These slots are only ever attached to event handling mechanisms within the class itself, they're never used externally. Because of this, we can make the functions private. This also removes redundant usages of the private access specifier.
| * | | | yuzu/configuration: Add missing override specifiers to configuration-related ↵Gravatar Lioncash2018-12-027-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | classes Resolves trivial compiler warnings.
| * | | | yuzu/configuration/configure_input: Default destructor in the cpp fileGravatar Lioncash2018-12-022-0/+3
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous code could potentially be a compilation issue waiting to occur, given we forward declare the type for a std::unique_ptr. If the complete definition of the forward declared type isn't visible in a translation unit that the class is used in, then it would fail to compile. Defaulting the destructor in a cpp file ensures the std::unique_ptr's destructor is only invoked where its complete type is known.
* | | | Merge pull request #1835 from lioncash/cache-globalGravatar bunnei2018-12-038-40/+26
|\ \ \ \ | | | | | | | | | | filesystem: De-globalize registered_cache_union
| * | | | filesystem: De-globalize registered_cache_unionGravatar Lioncash2018-12-018-40/+26
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can just return a new instance of this when it's requested. This only ever holds pointers to the existing registed caches, so it's not a large object. Plus, this also gets rid of the need to keep around a separate member function just to properly clear out the union. Gets rid of one of five globals in the filesystem code.
* | | | Merge pull request #1822 from ReinUsesLisp/glsl-scopeGravatar bunnei2018-12-031-250/+213
|\ \ \ \ | | | | | | | | | | gl_shader_decompiler: Introduce a scoped object and style changes
| * | | | gl_shader_decompiler: Remove texture temporal in TLD4Gravatar ReinUsesLisp2018-11-281-3/+1
| | | | |
| * | | | gl_shader_decompiler: Flip negated if else statementGravatar ReinUsesLisp2018-11-281-3/+3
| | | | |
| * | | | gl_shader_decompiler: Use GLSL scope on instructions unrelated to texturesGravatar ReinUsesLisp2018-11-281-35/+10
| | | | |
| * | | | gl_shader_decompiler: Move texture code generation into lambdasGravatar ReinUsesLisp2018-11-281-97/+78
| | | | |
| * | | | gl_shader_decompiler: Clean up texture instructionsGravatar ReinUsesLisp2018-11-281-87/+56
| | | | |
| * | | | gl_shader_decompiler: Scope GLSL variables with a scoped objectGravatar ReinUsesLisp2018-11-281-32/+72
| | | | |
* | | | | Merge pull request #1803 from DarkLordZach/k-able-eventGravatar bunnei2018-12-0337-247/+410
|\ \ \ \ \ | | | | | | | | | | | | kernel: Divide Event into ReadableEvent and WritableEvent