aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle
AgeCommit message (Collapse)Author
2019-03-28Merge pull request #2266 from FernandoS27/arbitrationbunnei
Kernel: Fixes to Arbitration and SignalProcessWideKey Management
2019-03-28Merge pull request #2265 from FernandoS27/multilevelqueuebunnei
Replace old Thread Queue for a new Multi Level Queue
2019-03-28Merge pull request #2284 from lioncash/heap-allocbunnei
kernel/vm_manager: Unify heap allocation/freeing functions
2019-03-27Fixes and corrections on formatting.Fernando Sahmkow
2019-03-27Use MultiLevelQueue instead of old ThreadQueueListFernando Sahmkow
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-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-22Merge pull request #2256 from bunnei/gpu-vmmbunnei
gpu: Rewrite MemoryManager based on the VMManager implementation.
2019-03-21Merge pull request #2234 from lioncash/mutexbunnei
core/hle/kernel: Make Mutex a per-process class.
2019-03-21Merge pull request #2275 from lioncash/memflagsbunnei
kernel/vm_manager: Amend flag value for code data
2019-03-21Merge pull request #2276 from lioncash/ambunnei
service/am: Add function table for IDebugFunctions
2019-03-21Merge pull request #1933 from DarkLordZach/cheat-enginebunnei
file_sys: Implement parser and interpreter for game memory cheats
2019-03-21service/am: Add function table for IDebugFunctionsLioncash
We already have the service related stuff set up for this, however, it's missing the function table.
2019-03-21kernel/vm_manager: Rename CodeStatic/CodeMutable to Code and CodeData ↵Lioncash
respectively Makes it more evident that one is for actual code and one is for actual data. Mutable and static are less than ideal terms here, because read-only data is technically not mutable, but we were mapping it with that label.
2019-03-21kernel/vm_manager: Amend flag values for CodeMutableLioncash
This should actually be using the data flags, rather than the code flags.
2019-03-20Merge pull request #2090 from FearlessTobi/port-4599bunnei
Port citra-emu/citra#4244 and citra-emu/citra#4599: Changes to BitField
2019-03-20Merge pull request #2268 from lioncash/codesetbunnei
core/kernel: Migrate CodeSet to its own source files
2019-03-20gpu: Rewrite virtual memory manager using PageTable.bunnei
2019-03-20gpu: Move GPUVAddr definition to common_types.bunnei
2019-03-20Merge pull request #2267 from FernandoS27/fix-2238bunnei
Fix crash caused by #2238.
2019-03-20Merge pull request #2224 from lioncash/opusbunnei
hwopus: Leverage multistream API for decoding regular Opus packets
2019-03-20kernel/process: Make MapSegment lambda reference parameter constLioncash
The segment itself isn't actually modified.
2019-03-20kernel: Move CodeSet structure to its own source filesLioncash
Given this is utilized by the loaders, this allows avoiding inclusion of the kernel process definitions where avoidable. This also keeps the loading format for all executable data separate from the kernel objects.
2019-03-19Fix crash caused by 2238.Fernando Sahmkow
2019-03-19Fix small bug that kept a thread as a condvar thread after being signalled.Fernando Sahmkow
2019-03-19Add CondVar Thread State.Fernando Sahmkow
2019-03-19Small fixes to address_arbiter to better match the IDB.Fernando Sahmkow
2019-03-18Merge pull request #2258 from lioncash/ambunnei
service/am: Supply remaining missing IAudioController functions
2019-03-18fsp_srv: Unstub SetCurrentProcessLioncash
This just acts as a basic setter for a given PID value and performs no further checking, so we can just store the passed in value.
2019-03-18service/am: Add basic implementation of ChangeMainAppletMasterVolumeLioncash
All this does is supply a new volume level and a fade time in nanoseconds for the volume transition to occur within.
2019-03-18service/am: Unstub SetTransparentVolumeRate()Lioncash
Like the other volume setter, this mainly just sets a data member within the service, nothing too special.
2019-03-18service/am: Unstub SetExpectedMasterVolume()Lioncash
This function passes in the desired main applet and library applet volume levels. We can then just pass those values back within the relevant volume getter functions, allowing us to unstub those as well. The initial values for the library and main applet volumes differ. The main applet volume is 0.25 by default, while the library applet volume is initialized to 1.0 by default in the services themselves.
2019-03-17Merge pull request #2238 from lioncash/threadbunnei
kernel/thread: Amend conditional test and assignment within UpdatePriority()
2019-03-17Merge pull request #2252 from bunnei/move-page-tablebunnei
core: Move PageTable struct into Common.
2019-03-16Merge pull request #2249 from lioncash/ipcbunnei
ipc_helpers: Allow pushing and popping floating-point values
2019-03-16core: Move PageTable struct into Common.bunnei
2019-03-16ipc_helpers: Allow pushing and popping floating-point valuesLioncash
Certain values that are passed through the IPC buffer are actually floating point values, not solely integral values.
2019-03-16kernel/thread: Actually remove the definition of ExitCurrentThread()Lioncash
This was intended to be removed in 51d7f6bffcc0498a47abc7de27bf0906fc523dae, but I guess I forgot to actually save the file like a dingus.
2019-03-16Merge pull request #2242 from lioncash/thread-fnbunnei
kernel/thread: Remove WaitCurrentThread_Sleep() and ExitCurrentThread()