summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-12-05Merge pull request #1866 from lioncash/cachebunnei
service/ldr: Deduplicate instruction cache clearing code in LoadNro()
2018-12-05Call shrink_to_fit after page-table vector resizing to cause crt to actually ↵heapo
lower vector capacity. For 36-bit titles saves 800MB of commit.
2018-12-05service/ldr: Deduplicate instruction cache clearing code in LoadNro()Lioncash
We don't need to specify all of the ARM interfaces explicitly.
2018-12-04Merge pull request #1859 from heapo/lut_array_codegenbunnei
Convert high-frequency LUT arrays from constexpr to static constexpr
2018-12-04Improve msvc codegen for hot-path array LUTsheapo
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.
2018-12-04Merge pull request #1704 from DarkLordZach/oss-sysarchivebunnei
file_sys: Implement open source system archives
2018-12-04Merge pull request #1837 from lioncash/mapbunnei
yuzu/game_list_worker: Minor cleanup and code deduplication
2018-12-04yuzu/game_list_worker: Move std::string construction after the termination ↵Lioncash
check in callbacks Avoids potentially allocating a std::string instance when it isn't needed.
2018-12-04Merge pull request #1838 from lioncash/dedupbunnei
file_sys/registered_cache: Eliminate variable shadowing
2018-12-04Merge pull request #1836 from lioncash/unusedbunnei
crypto/key_manager: Remove unused variable in GetTicketblob()
2018-12-04kernel/svc: Remove unused header inclusionLioncash
2018-12-04kernel/svc: Implement svcSignalEvent()Lioncash
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.
2018-12-04kernel/svc: Implement svcCreateEvent()Lioncash
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.
2018-12-04Merge pull request #1845 from lioncash/nrobunnei
loader/{nro, nso}: Remove dependency on the System class
2018-12-04Merge pull request #1853 from lioncash/eventbunnei
kernel/object: Amend handle types to distinguish between readable and writable events
2018-12-04Rewrited TEX/TEXS (TEX Scalar). (#1826)Marcos
* Rewrited TEX/TEXS (TEX Scalar). * Style fixes. * Styles issues.
2018-12-04Merge pull request #1857 from lioncash/res-infobunnei
kernel/svc: Implement the resource limit svcGetInfo option
2018-12-04Merge pull request #1854 from Subv/old_command_processorbunnei
Don't try to route PFIFO methods (0-0x40) to the other engines.
2018-12-04kernel/object: Amend handle types to distinguish between readable and ↵Lioncash
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.
2018-12-04kernel/handle_table: Amend reference to CTR-OS in Create()Lioncash
Another hold-over from Citra.
2018-12-04kernel/svc: Implement the resource limit svcGetInfo optionLioncash
Allows a process to register the resource limit as part of its handle table.
2018-12-03Removed unused file.Subv
This is a leftover from #1792
2018-12-03GPU: Don't try to route PFIFO methods (0-0x40) to the other engines.Subv
2018-12-04[Kernel::CreateThread] Match format specifiers to LOG_TRACE's argumentsV.Kalyuzhny
2018-12-03Merge pull request #1840 from lioncash/infobunnei
svc: Reorganize svcGetInfo, handle more error cases for existing implemented info categories
2018-12-03Merge pull request #1842 from lioncash/slotbunnei
yuzu/configuration: Minor clean-up related changes
2018-12-03Merge pull request #1835 from lioncash/cache-globalbunnei
filesystem: De-globalize registered_cache_union
2018-12-03Merge pull request #1822 from ReinUsesLisp/glsl-scopebunnei
gl_shader_decompiler: Introduce a scoped object and style changes
2018-12-03Merge pull request #1803 from DarkLordZach/k-able-eventbunnei
kernel: Divide Event into ReadableEvent and WritableEvent
2018-12-03Merge pull request #1833 from lioncash/cleanbunnei
service/fsp_srv: Implement CleanDirectoryRecursively
2018-12-03Merge pull request #1839 from lioncash/initbunnei
service/audio/audout_u: Amend constructor initialization list order
2018-12-03Merge pull request #1841 from ogniK5377/npad-mode-fixbunnei
Fixed crash with SetNpadMode
2018-12-02loader/nso: Remove dependency on the System classLioncash
Similar to the NRO changes, we can also pass the process explicitly as a parameter from Load instead of indirecting through the System class.
2018-12-02loader/nro: Make the static LoadNro function internally linkedLioncash
This simply acts as a forwarding function for the Load() function, so this doesn't need to be directly exposed.
2018-12-02loader/nro: Remove dependency on the System classLioncash
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()
2018-12-02service/usb: Update function tableLioncash
Updates the function table for IClientEpSession based off information provided by SwitchBrew.
2018-12-02service/erpt: Update function tableLioncash
Updates the function table according to information provided by SwitchBrew.
2018-12-02yuzu/configuration: Make slots private where applicableLioncash
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.
2018-12-02yuzu/configuration: Add missing override specifiers to configuration-related ↵Lioncash
classes Resolves trivial compiler warnings.
2018-12-02yuzu/configuration/configure_input: Default destructor in the cpp fileLioncash
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.
2018-12-03Fixed crash with SetNpadModeDavid Marcec
fixed crash due to handheld
2018-12-02svc: Use the current process' handle table for retrieving the process ↵Lioncash
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.
2018-12-02svc: Reorganize svcGetInfo, handle more error cases for existing implemented ↵Lioncash
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.
2018-12-01service/audio/audout_u: Amend constructor initialization list orderLioncash
Orders the constructor initializer list the same way the members of the class are declared. Prevents -Wreorder warnings
2018-12-01Merge pull request #1827 from ReinUsesLisp/clip-and-shaderbunnei
gl_rasterizer: Enable clip distances when set in register and in shader
2018-12-01file_sys/registered_cache: Eliminate variable shadowingLioncash
Also inverts if statements where applicable to allow unindenting code a little bit.
2018-12-01Merge pull request #1825 from ReinUsesLisp/shader-pipeline-cachebunnei
gl_shader_manager: Update pipeline when programs have changed
2018-12-01Merge pull request #1795 from ReinUsesLisp/vc-cleanupbunnei
video_core: Minor style changes
2018-12-01Merge pull request #1823 from bunnei/fix-surface-copybunnei
gl_rasterizer_cache: Fix several surface copy issues.
2018-12-01filesystem: De-globalize registered_cache_unionLioncash
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.