| Age | Commit message (Collapse) | Author |
|
kernel/server_port: Make data members private
|
|
core/hle/result: Tidy up the base error code result header.
|
|
service/vi: Unstub GetDisplayService
|
|
Similarly, like svcMapTransferMemory, we can also implement
svcUnmapTransferMemory fairly trivially as well.
|
|
Now that transfer memory handling is separated from shared memory, we
can implement svcMapTransferMemory pretty trivially.
|
|
Within the kernel, shared memory and transfer memory facilities exist as
completely different kernel objects. They also have different validity
checking as well. Therefore, we shouldn't be treating the two as the
same kind of memory.
They also differ in terms of their behavioral aspect as well. Shared
memory is intended for sharing memory between processes, while transfer
memory is intended to be for transferring memory to other processes.
This breaks out the handling for transfer memory into its own class and
treats it as its own kernel object. This is also important when we
consider resource limits as well. Particularly because transfer memory
is limited by the resource limit value set for it.
While we currently don't handle resource limit testing against objects
yet (but we do allow setting them), this will make implementing that
behavior much easier in the future, as we don't need to distinguish
between shared memory and transfer memory allocations in the same place.
|
|
Now that we pass in a reference to the system instance, we can utilize
it to eliminate the global accessors in Process-related code.
|
|
kernel: Make the address arbiter instance per-process
|
|
|
|
With this, all kernel objects finally have all of their data members
behind an interface, making it nicer to reason about interactions with
other code (as external code no longer has the freedom to totally alter
internals and potentially messing up invariants).
|
|
After doing a little more reading up on the Opus codec, it turns out
that the multistream API that is part of libopus can handle regular
packets. Regular packets are just a degenerate case of multistream Opus
packets, and all that's necessary is to pass the number of streams as 1
and provide a basic channel mapping, then everything works fine for
that case.
This allows us to get rid of the need to use both APIs in the future
when implementing multistream variants in a follow-up PR, greatly
simplifying the code that needs to be written.
|
|
|
|
|
|
|
|
operator
Previously this was required, as BitField wasn't trivially copyable.
BitField has since been made trivially copyable, so now this isn't
required anymore.
|
|
Gets rid of another holdover from Citra, and describes the OS on the
Switch instead.
|
|
Now that the final stray ErrorDescription member was relocated, we can
finally remove it and its relevant constructor in the ResultCode union.
|
|
Relocates the error code to where it's most related, similar to how all
the other error codes are. Previously we were including a non-generic
error in the main result code header.
|
|
These can just be passed regularly, now that we use fmt instead of our
old logging system.
While we're at it, make the parameters to MakeFunctionString
std::string_views.
|
|
service/audio/hwopus: Move decoder state to its own class
|
|
kernel/scheduler: Pass in system instance in constructor
|
|
Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
|
|
|
|
|
|
kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional
|
|
There's no real need to use a shared lifetime here, since we don't
actually expose them to anything else. This is also kind of an
unnecessary use of the heap given the objects themselves are so small;
small enough, in fact that changing over to optionals actually reduces
the overall size of the HLERequestContext struct (818 bytes to 808
bytes).
|
|
Now that we have the address arbiter extracted to its own class, we can
fix an innaccuracy with the kernel. Said inaccuracy being that there
isn't only one address arbiter. Each process instance contains its own
AddressArbiter instance in the actual kernel.
This fixes that and gets rid of another long-standing issue that could
arise when attempting to create more than one process.
|
|
Similar to how WaitForAddress was isolated to its own function, we can
also move the necessary conditional checking into the address arbiter
class itself, allowing us to hide the implementation details of it from
public use.
|
|
Rather than let the service call itself work out which function is the
proper one to call, we can make that a behavior of the arbiter itself,
so we don't need to directly expose those implementation details.
|
|
kernel/shared_memory: Get rid of the use of global accessor functions within Create()
|
|
kernel/client_session, kernel/server_session: Make data members private
|
|
service/audio/audout_u: Only actually stop the audio stream in StopAudioOut if the stream is playing
|
|
Asynchronous GPU command processing
|
|
Moves the non-multistream specific state to its own class. This will be
necessary to support the multistream variants of opus decoding.
|
|
This indicates the entropy coder's final range.
|
|
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.
|
|
Makes it impossible to violate the ODR, as well as providing a place for
future changes.
|
|
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.
|
|
core/hle/ipc: Remove unnecessary includes
|
|
|
|
|
|
core: Remove the global telemetry accessor function
|
|
|
|
|
|
|
|
|
|
kernel/address_arbiter: Convert the address arbiter into a class
|
|
AppendAudioOutBufferImpl()
Previously we were overwriting the error case with a success code
further down (which is definitely not what we should be doing here).
|
|
svc: Move memory range checking functions to the VMManager class
|
|
hle/service/audio: Extract audio error codes to a header
|