aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2019-03-07service/audio/hwopus: Move Opus packet header out of the ↵Lioncash
IHardwareOpusDecoderManager This will be utilized by more than just that class in the future. This also renames it from OpusHeader to OpusPacketHeader to be more specific about what kind of header it is.
2019-03-07service/audio/hwopus: Enclose internals in an anonymous namespaceLioncash
Makes it impossible to violate the ODR, as well as providing a place for future changes.
2019-03-07service/audio/audout_u: Only actually stop the audio stream in StopAudioOut ↵Lioncash
if the stream is playing The service itself only does further actions if the stream is playing. If the stream is already stopped, then it just exits successfully.
2019-03-06Merge pull request #2197 from lioncash/includebunnei
core/hle/ipc: Remove unnecessary includes
2019-03-06gpu: Refactor a/synchronous implementations into their own classes.bunnei
2019-03-06gpu: Move command processing to another thread.bunnei
2019-03-06Merge pull request #2190 from lioncash/ogl-globalbunnei
core: Remove the global telemetry accessor function
2019-03-06gpu: Refactor command and swap buffers interface for asynch.bunnei
2019-03-06gpu: Refactor to take RendererBase instead of RasterizerInterface.bunnei
2019-03-06settings: Add new graphics setting for use_asynchronous_gpu_emulation.bunnei
2019-03-06core: Set is_powered_on before GPU is initialized.bunnei
2019-03-06Merge pull request #2199 from lioncash/arbiterbunnei
kernel/address_arbiter: Convert the address arbiter into a class
2019-03-06hle/service/audio/audout_u: Correct lack of return in failure case of ↵Lioncash
AppendAudioOutBufferImpl() Previously we were overwriting the error case with a success code further down (which is definitely not what we should be doing here).
2019-03-06Merge pull request #2194 from lioncash/membunnei
svc: Move memory range checking functions to the VMManager class
2019-03-06Merge pull request #2200 from lioncash/audiobunnei
hle/service/audio: Extract audio error codes to a header
2019-03-05kernel/server_session: Make data members privateLioncash
Makes it much nicer to locally reason about server session behavior, as part of its functionality isn't placed around other classes.
2019-03-05kernel/client_session: Make data members privateLioncash
These can be made private, as they aren't accessed in contexts that require them to be public.
2019-03-05hle/service/audio: Extract audio error codes to a headerLioncash
Places all error codes in an easily includable header. This also corrects the unsupported error code (I accidentally used the hex value when I meant to use the decimal one).
2019-03-05kernel/address_arbiter: Pass in system instance to constructorLioncash
Allows getting rid of reliance on the global accessor functions and instead operating on the provided system instance.
2019-03-05kernel/address_arbiter: Minor tidying upLioncash
- Invert conditions into guard clases where applicable. - Mark std::vector parameter of WakeThreads as const
2019-03-05kernel/address_arbiter: Convert the address arbiter into a classLioncash
Places all of the functions for address arbiter operation into a class. This will be necessary for future deglobalizing efforts related to both the memory and system itself.
2019-03-05kernel/thread: Remove obsolete TODO in Create()Lioncash
This is a TODO carried over from Citra that doesn't apply here.
2019-03-05core/hle/ipc: Remove unnecessary includesLioncash
Removes a few inclusion dependencies from the headers or replaces existing ones with ones that don't indirectly include the required headers. This allows removing an inclusion of core/memory.h, meaning that if the memory header is ever changed in the future, it won't result in rebuilding the entirety of the HLE services (as the IPC headers are used quite ubiquitously throughout the HLE service implementations).
2019-03-04vm_manager: Use range helpers in HeapAlloc() and HeapFree()Lioncash
Significantly tidies up two guard conditionals.
2019-03-04vm_manager: Provide address range checking functions for other memory regionsLioncash
Makes the interface uniform when it comes to checking various memory regions.
2019-03-04kernel/scheduler: Pass in system instance in constructorLioncash
Avoids directly relying on the global system instance and instead makes an arbitrary system instance an explicit dependency on construction. This also allows removing dependencies on some global accessor functions as well.
2019-03-04kernel/shared_memory: Get rid of the use of global accessor functions within ↵Lioncash
Create() Given we already pass in a reference to the kernel that the shared memory instance is created under, we can just use that to check the current process, rather than using the global accessor functions. This allows removing direct dependency on the system instance entirely.
2019-03-04svc: Migrate address range checking functions to VMManagerLioncash
Provides a bit of a more proper interface for these functions.
2019-03-04core/core: Remove the global telemetry accessor functionLioncash
With all usages converted off of it, this function can be removed.
2019-03-04core/core: Replace direct usage of the global system telemetry accessor from ↵Lioncash
Shutdown() The telemetry instance is actually a member of the class itself, so we can access it directly instead of going through the global accessor.
2019-03-02Memory: don't lock hle mutex in memory read/writeWeiyi Wang
The comment already invalidates itself: neither MMIO nor rasterizer cache belongsHLE kernel state. This mutex has a too large scope if MMIO or cache is included, which is prone to dead lock when multiple thread acquires these resource at the same time. If necessary, each MMIO component or rasterizer should have their own lock.
2019-03-01Merge pull request #2180 from lioncash/audrenbunnei
service/audio: Provide an implementation of ExecuteAudioRendererRendering
2019-03-01service/audio/audren_u: Implement OpenAudioRendererAutoLioncash
This currently has the same behavior as the regular OpenAudioRenderer API function, so we can just move the code within OpenAudioRenderer to an internal function that both service functions call.
2019-03-01service/audio: Provide an implementation of ExecuteAudioRendererRenderingLioncash
This service function appears to do nothing noteworthy on the switch. All it does at the moment is either return an error code or abort the system. Given we obviously don't want to kill the system, we just opt for always returning the error code.
2019-02-27Merge pull request #2174 from lioncash/fwdbunnei
service/hid: Amend forward declaration of ServiceManager
2019-02-27Speed up memory page mapping (#2141)Annomatg
- Memory::MapPages total samplecount was reduced from 4.6% to 1.06%. - From main menu into the game from 1.03% to 0.35%
2019-02-27service/hid: Amend forward declaration of ServiceManagerLioncash
The SM namespace is within the Service namespace, so this was forward declaring a type that didn't exist.
2019-02-27Merge pull request #2169 from lioncash/namingbunnei
audio_core/audio_renderer: Provide names for some parameters of AudioRendererParameter
2019-02-27Merge pull request #2170 from lioncash/emu-windowbunnei
core/frontend/emu_window: Make ClipToTouchScreen a const member function
2019-02-27Merge pull request #2161 from lioncash/handle-tablebunnei
kernel/handle_table: Allow process capabilities to limit the handle table size
2019-02-27core/frontend/emu_window: Make ClipToTouchScreen a const member functionLioncash
This member function doesn't modify instance state, so it can have the const specifier applied to it.
2019-02-27audio_core/audio_renderer: Name previously unknown parameters of ↵Lioncash
AudioRendererParameter Provides names for previously unknown entries (aside from the two u8 that appear to be padding bytes, and a single word that also appears to be reserved or padding). This will be useful in subsequent changes when unstubbing behavior related to the audio renderer services.
2019-02-27common/math_util: Move contents into the Common namespaceLioncash
These types are within the common library, so they should be within the Common namespace.
2019-02-26common/vector_math: Move Vec[x] types into the Common namespaceLioncash
These types are within the common library, so they should be using the Common namespace.
2019-02-26service/vi: Unstub GetDisplayServiceLioncash
This function is also supposed to check its given policy type with the permission of the service itself. This implements the necessary machinery to unstub these functions. Policy::User seems to just be basic access (which is probably why vi:u is restricted to that policy), while the other policy seems to be for extended abilities regarding which displays can be managed and queried, so this is assumed to be for a background compositor (which I've named, appropriately, Policy::Compositor).
2019-02-26core/ipc_helper: Allow popping all signed value types with RequestParserLioncash
There's no real reason this shouldn't be allowed, given some values sent via a request can be signed. This also makes it less annoying to work with popping enum values, given an enum class with no type specifier will work out of the box now. It's also kind of an oversight to allow popping s64 values, but nothing else.
2019-02-26service/vi: Remove use of a module classLioncash
This didn't really provide much benefit here, especially since the subsequent change requires that the behavior for each service's GetDisplayService differs in a minor detail. This also arguably makes the services nicer to read, since it gets rid of an indirection in the class hierarchy.
2019-02-25Merge pull request #2156 from FreddyFunk/patch-1bunnei
file_sys/vfs_vector: Fix ignored offset on Write
2019-02-25kernel/handle_table: Make local variables as const where applicableLioncash
Makes immutable state explicit.
2019-02-25kernel/handle_table: Allow process capabilities to limit the handle table sizeLioncash
The kernel allows restricting the total size of the handle table through the process capability descriptors. Until now, this functionality wasn't hooked up. With this, the process handle tables become properly restricted. In the case of metadata-less executables, the handle table will assume the maximum size is requested, preserving the behavior that existed before these changes.