aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2021-06-24common: Replace common_sizes into user-literalsWunkolo
Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals.
2021-06-18kernel: Fix missing peak set in KResourceLimit::SetLimitValueMorph
2021-06-11kernel: Unconditionally set thread state when appropriateMorph
2021-06-11kernel: KLightConditionVariable: Update implementation to 12.xMorph
Updates the implementation of KLightConditionVariable to FW 12.x
2021-06-09hle: kernel: KClientPort: Add an assert for session count.bunnei
- Prevents us from over decrementing num_sessions.
2021-06-09hle: service: sm: Fix GetService setup of session & port.bunnei
2021-06-09hle: kernel: KServerSession: Fix client disconnected.bunnei
- Prevents a cloned session's handler from being overwritten by another disconnected session. - Fixes session handler nullptr asserts with Pokemon Sword & Shield.
2021-06-09kernel: svc: Add missing error check to CancelSynchronization.bunnei
- Avoids a potential crash if the handle is invalid, and also makes this code accurate to real kernel behavior.
2021-06-08hle: kernel: KServerSession: Work-around scenario where session is closed ↵bunnei
too early.
2021-06-07hle: kernel: hle_ipc: Ensure SessionRequestHandler is valid.bunnei
2021-06-07hle: kernel: Remove service thread manager and use weak_ptr.bunnei
- We no longer need to queue up service threads to be destroyed. - Fixes a race condition where a thread could be destroyed too early, which caused a crash in Pokemon Sword/Shield.
2021-06-06hle: kernel: KServerSession: Use ASSERT_MSG where appropriate.bunnei
2021-06-06hle: kernel: k_server_session: Return service thread by strong pointer.bunnei
2021-06-06hle: kernel: k_server_session: Ensure service thread is valid before ↵bunnei
dereference.
2021-06-06hle: kernel: hle_ipc: Use default destructor for SessionRequestManager.bunnei
2021-06-06hle: kernel: KAutoObjectWithListContainer: Use boost::instrusive::rbtree.bunnei
- Fixes some crashes introduced by our common intrusive red/black tree impl.
2021-06-04hle: kernel: Refactor to allocate a ServiceThread per service handler.bunnei
- Previously, we would allocate a thread per session, which adds new threads on CloneCurrentObject. - This results in race conditions with N sessions queuing requests to the same service interface. - Fixes Pokken Tournament DX crashes/softlocks, which were regressed by #6347.
2021-06-02general: Replace RESULT_UNKNOWN with ResultUnknownMorph
Transition to PascalCase for result names.
2021-06-02general: Replace RESULT_SUCCESS with ResultSuccessMorph
Transition to PascalCase for result names.
2021-05-29Merge pull request #6387 from lioncash/class-tokenbunnei
k_class_token: Use variable templates where applicable
2021-05-29k_class_token: Use variable templates where applicableLioncash
Same behavior, less code.
2021-05-29Merge pull request #6384 from lioncash/virtualbunnei
kernel: Add missing override specifiers
2021-05-29Merge pull request #6382 from lioncash/nullbunnei
k_thread: Move dereference after null check in Initialize()
2021-05-29Merge pull request #6373 from bunnei/use-slabheap-tlsbunnei
hle: kernel: KSlabHeap: Allow host or guest allocations.
2021-05-29kernel: Add missing override specifiersLioncash
Over the course of the kernel refactoring a tiny bit of missing overrides slipped through review, so we can add these. While we're at it, we can remove redundant virtual keywords where applicable as well.
2021-05-29Fix two GCC 11 warnings: Unneeded copies.Markus Wick
std::move created an unneeded copy. iterating without reference also created copies.
2021-05-29k_thread: Move dereference after null check in Initialize()Lioncash
Prevents a -Wnonnull warning on GCC.
2021-05-28hle: kernel: KSlabHeap: Allow host or guest allocations.bunnei
- Use host allocations for kernel memory, as this is not properly emulated yet. - Use guest allocations for TLS, as this needs to be backed by DeviceMemory.
2021-05-27core/arm_interface: Call SVC after end of dynarmic block.Markus Wick
So we can modify all of dynarmic states within SVC without ExceptionalExit. Especially as the ExceptionalExit hack is dropped on upstream dynarmic.
2021-05-25kernel: process_capability: Add MapRegion capabilityMorph
- Used by nx-hbloader
2021-05-20hle: kernel: service_thread: Take reference to KServerSession on service ↵bunnei
request.
2021-05-20hle: kernel: k_port: Use AcceptSession to ensure SessionList state is correct.bunnei
- Fixes a use-after-free, work-around until we fixup session/port management.
2021-05-20hle: kernel: Use host memory allocations for KSlabMemory.bunnei
- There are some issues with the current workaround, we will just use host memory until we have a complete kernel memory implementation.
2021-05-20Revert "WORKAROUND: Do not use slab heap while we track down issues with ↵bunnei
resource management." This reverts commit f2c26443f85a3c3fd43137509368ba5c7ab80ee7.
2021-05-20hle: kernel: hle_ipc: Simplify incoming/outgoing move/copy/domain objects.bunnei
2021-05-20hle: kernel: Implement CloneCurrentObject and improve session management.bunnei
2021-05-20Revert "WORKAROUND: temp. disable session resource limits while we work out ↵bunnei
issues" This reverts commit fc086f93b2165b5c210cb7dcd6c18ebe17f1fd7b.
2021-05-20Merge pull request #6320 from Morph1984/get-pidbunnei
hle_ipc: Add a getter for PID
2021-05-18KTransferMemory: Return size instead of size * PageSize in GetSize()Morph
size is already the size in bytes. We do not need to multiply it by the page size
2021-05-16hle_ipc: unsigned -> u32Morph
This is more concise and consistent with the rest of the codebase.
2021-05-16hle_ipc: Add a getter for PIDMorph
2021-05-16core: Make variable shadowing a compile-time errorLioncash
Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
2021-05-11hle: kernel: hle_ipc: Fix outgoing IPC response size calculation.bunnei
2021-05-11WORKAROUND: temp. disable session resource limits while we work out issuesbunnei
2021-05-11WORKAROUND: Do not use slab heap while we track down issues with resource ↵bunnei
management.
2021-05-10hle: kernel: hle_ipc: Improve IPC code and add initial support for TIPC.bunnei
- Fixes our move handles implementation to actually move objects. - Simplifies the traditional IPC path.
2021-05-10hle: service: Implement IPC::CommandType::Close.bunnei
- This was not actually closing sessions before.
2021-05-10hle: kernel: svc: Update ConnectToNamedPort to use new ↵bunnei
CreateNamedServicePort interface.
2021-05-10hle: kernel: Implement named service ports using service interface factory.bunnei
- This allows us to create a new interface each time ConnectToNamedPort is called, removing the assumption that these are static.
2021-05-10hle: kernel: KClientPort: Cleanup comment format.bunnei