aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-03-27Use MultiLevelQueue instead of old ThreadQueueListFernando Sahmkow
2019-03-27Add MultiLevelQueue TestsFernando Sahmkow
2019-03-27Implement intrinsics CountTrailingZeroes and test it.Fernando Sahmkow
2019-03-27Implement a MultiLevelQueueFernando Sahmkow
2019-03-27gl_shader_manager: Amend Doxygen string for MaxwellUniformDataLioncash
Previously only one line of the whole comment was in proper Doxygen formatting.
2019-03-27gpu_thread: Remove unused dma_pusher class member variable from ThreadManagerLioncash
The pusher instance is only ever used in the constructor of the ThreadManager for creating the thread that the ThreadManager instance contains. Aside from that, the member is unused, so it can be removed.
2019-03-27gl_rasterizer: Remove unused reference member variable from RasterizerOpenGLLioncash
This member variable is no longer being used, so it can be removed, removing a dependency on EmuWindow from the rasterizer's interface"
2019-03-27video_core: Amend constructor initializer list order where applicableLioncash
Specifies the members in the same order that initialization would take place in. This also silences -Wreorder warnings.
2019-03-27video_core: Add missing override specifiersLioncash
Ensures that the signatures will always match with the base class. Also silences a few compilation warnings.
2019-03-27video_core/gpu: Amend typo in GPU member variable nameLioncash
smaphore -> semaphore
2019-03-26game_list: Register content with ContentProviderZach Hilman
2019-03-26core: Port current uses of RegisteredCache to ContentProviderZach Hilman
2019-03-26core: Store system-wide ContentProvider for the emulatorZach Hilman
2019-03-26file_sys: Create ContentProvider interface and default implementationsZach Hilman
2019-03-26service/am: Implement EnterFatalSection and LeaveFatalSectionLioncash
These functions act in tandem similar to how a lock or mutex require a balanced lock()/unlock() sequence. EnterFatalSection simply increments a counter for how many times it has been called, while LeaveFatalSection ensures that a previous call to EnterFatalSection has occured. If a previous call has occurred (the counter is not zero), then the counter gets decremented as one would expect. If a previous call has not occurred (the counter is zero), then an error code is returned.
2019-03-26service/am: Sort ISelfController's member functions according to table orderLioncash
Makes the declaration order of the handling functions consistent with the handler table itself.
2019-03-26Merge pull request #2285 from lioncash/unused-structbunnei
kernel/process: Remove unused AddressMapping struct
2019-03-25Merge pull request #2287 from lioncash/coretiming-cbbunnei
core/core_timing: Make callback parameters consistent
2019-03-25Merge pull request #2286 from lioncash/fwdbunnei
kernel/kernel: Remove unnecessary forward declaration
2019-03-25bootmanager: Bypass input focus issuesReinUsesLisp
2019-03-25bootmanager: Bypass resizing issueReinUsesLisp
2019-03-25bootmanager: Delete container to avoid crash on game restartingReinUsesLisp
While we are at it, remove nullptr checks for deletion, since the C++ standard defines that delete does it by its own
2019-03-24core/cheat_engine: Make MemoryReadImpl and MemoryWriteImpl internally linkedLioncash
These don't need to be visible outside of the translation unit, so they can be enclosed within an anonymous namespace.
2019-03-24core/core_timing: Make callback parameters consistentLioncash
In some cases, our callbacks were using s64 as a parameter, and in other cases, they were using an int, which is inconsistent. To make all callbacks consistent, we can just use an s64 as the type for late cycles, given it gets rid of the need to cast internally. While we're at it, also resolve some signed/unsigned conversions that were occurring related to the callback registration.
2019-03-24kernel/kernel: Remove unnecessary forward declarationLioncash
This is no longer necessary, as ResultVal isn't used anywhere in the header.
2019-03-24kernel/process: Remove unused AddressMapping structLioncash
Another leftover from citra that's now no longer necessary.
2019-03-24kernel/vm_manager: Handle shrinking of the heap size within SetHeapSize()Lioncash
One behavior that we weren't handling properly in our heap allocation process was the ability for the heap to be shrunk down in size if a larger size was previously requested. This adds the basic behavior to do so and also gets rid of HeapFree, as it's no longer necessary now that we have allocations and deallocations going through the same API function. While we're at it, fully document the behavior that this function performs.
2019-03-24kernel/vm_manager: Rename HeapAllocate to SetHeapSizeLioncash
Makes it more obvious that this function is intending to stand in for the actual supervisor call itself, and not acting as a general heap allocation function. Also the following change will merge the freeing behavior of HeapFree into this function, so leaving it as HeapAllocate would be misleading.
2019-03-24kernel/vm_manager: Handle case of identical calls to HeapAllocateLioncash
In cases where HeapAllocate is called with the same size of the current heap, we can simply do nothing and return successfully. This avoids doing work where we otherwise don't have to. This is also what the kernel itself does in this scenario.
2019-03-24kernel/vm_manager: Remove unused class variablesLioncash
Over time these have fallen out of use due to refactoring, so these can be removed.
2019-03-24kernel/vm_manager: Remove unnecessary heap_used data memberLioncash
This isn't required anymore, as all the kernel ever queries is the size of the current heap, not the total usage of it.
2019-03-24kernel/vm_manager: Tidy up heap allocation codeLioncash
Another holdover from citra that can be tossed out is the notion of the heap needing to be allocated in different addresses. On the switch, the base address of the heap will always be managed by the memory allocator in the kernel, so this doesn't need to be specified in the function's interface itself. The heap on the switch is always allocated with read/write permissions, so we don't need to add specifying the memory permissions as part of the heap allocation itself either. This also corrects the error code returned from within the function. If the size of the heap is larger than the entire heap region, then the kernel will report an out of memory condition.
2019-03-24Merge pull request #2232 from lioncash/transfer-memorybunnei
core/hle/kernel: Split transfer memory handling out into its own class
2019-03-23Merge pull request #2221 from DarkLordZach/firmware-versionbunnei
set_sys: Implement GetFirmwareVersion(2) for libnx hosversion
2019-03-23Merge pull request #2253 from lioncash/flagsbunnei
Migrate off directly modifying CMAKE_* compilation-related flags directly
2019-03-23Merge pull request #2280 from lioncash/nsobunnei
loader/nso: Minor refactoring
2019-03-22kernel/codeset: Make CodeSet's memory data member a regular std::vectorLioncash
The use of a shared_ptr is an implementation detail of the VMManager itself when mapping memory. Because of that, we shouldn't require all users of the CodeSet to have to allocate the shared_ptr ahead of time. It's intended that CodeSet simply pass in the required direct data, and that the memory manager takes care of it from that point on. This means we just do the shared pointer allocation in a single place, when loading modules, as opposed to in each loader.
2019-03-22Merge pull request #2279 from lioncash/cheat-globalbunnei
file_sys/cheat_engine: Remove use of global system accessors
2019-03-22Merge pull request #2256 from bunnei/gpu-vmmbunnei
gpu: Rewrite MemoryManager based on the VMManager implementation.
2019-03-22Merge pull request #2277 from bunnei/fix-smo-transitionsbunnei
Revert "Devirtualize Register/Unregister and use a wrapper instead."
2019-03-22loader/nso: Place translation unit specific functions into an anonymous ↵Lioncash
namespace Makes it impossible to indirectly violate the ODR in some other translation unit due to these existing.
2019-03-22file_sys/cheat_engine: Silence truncation and sign-conversion warningsLioncash
2019-03-22file_sys/cheat_engine: Remove use of global system accessorsLioncash
Instead, pass in the core timing instance and make the dependency explicit in the interface.
2019-03-22loader/nso: Clean up use of magic constantsLioncash
Now that the NSO header has the proper size, we can just use sizeof on it instead of having magic constants.
2019-03-22file_sys/patch_manager: Deduplicate NSO headerLioncash
This source file was utilizing its own version of the NSO header. Instead of keeping this around, we can have the patch manager also use the version of the header that we have defined in loader/nso.h
2019-03-22loader/nso: Fix definition of the NSO header structLioncash
The total struct itself is 0x100 (256) bytes in size, so we should be providing that amount of data. Without the data, this can result in omitted data from the final loaded NSO file.
2019-03-22file_sys/patch_manager: Remove two magic valuesLioncash
These correspond to the NSOBuildHeader.
2019-03-22video_core: Implement API agnostic view based texture cacheReinUsesLisp
Implements an API agnostic texture view based texture cache. Classes defined here are intended to be inherited by the API implementation and used in API-specific code. This implementation exposes protected virtual functions to be called from the implementer. Before executing any surface copies methods (defined in API-specific code) it tries to detect if the overlapping surface is a superset and if it is, it creates a view. Views are references of a subset of a surface, it can be a superset view (the same as referencing the whole texture). Current code manages 1D, 1D array, 2D, 2D array, cube maps and cube map arrays with layer and mipmap level views. Texture 3D slices views are not implemented. If the view attempt fails, the fast path is invoked with the overlapping textures (defined in the implementer). If that one fails (returning nullptr) it will flush and reload the texture.
2019-03-21Merge pull request #2234 from lioncash/mutexbunnei
core/hle/kernel: Make Mutex a per-process class.
2019-03-21Merge pull request #2274 from lioncash/includebunnei
core/memory: Remove unnecessary includes