aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/k_auto_object.h
Commit message (Collapse)AuthorAgeFilesLines
* [video_core, hle] remove redundant parent references in system structs (#3908)lizzie2026-06-231-42/+39
| | | | | | | | | | reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev>
* [hle, kernel] Add support for FW21 and kernel changes (#3004)lizzie2025-11-161-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | - Adapts kernel changes from atmosphere for firmware 21.0.0. - Fixes launch error of firmware 21.0.0 applets. - Adds new commands for `prepo` (New `SaveSystemReport` & `SaveSystemReportWithUser`). - Adds new commands for `IReadOnlyApplicationControlDataInterface` (cmd 19; incomplete!) - Adds `{12010, nullptr, "SetButtonConfigLeft"},` undocumented IHidServer. - Adds new commands for `ngc:u` (`Mask2` and `Check2`) - Adds new commands for system settings server (GetHttpAuthConfig) for webapplet - Removes incompatible firmware popup warning. Signed-off-by: lizzie lizzie@eden-emu.dev Co-authored by: maufeat sahyno1996@gmail.com Co-authored-by: crueter <crueter@eden-emu.dev> Co-authored-by: JPikachu <jpikachu.eden@gmail.com> Co-authored-by: Maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3004 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [kernel] Ensure all kernel objects exist before destroying them and avoid ↵MaranBr2025-08-151-4/+10
| | | | | | | | | | | infinite loop between Open() and Close() functions (#261) This ensures that all kernel objects exist before destroying them and prevents an infinite loop between the Open() and Close() functions. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/261 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev> Co-authored-by: MaranBr <maranbr@outlook.com> Co-committed-by: MaranBr <maranbr@outlook.com>
* Fixes and workarounds to make UBSan happier on macOScomex2023-07-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are still some other issues not addressed here, but it's a start. Workarounds for false-positive reports: - `RasterizerAccelerated`: Put a gigantic array behind a `unique_ptr`, because UBSan has a [hardcoded limit](https://stackoverflow.com/questions/64531383/c-runtime-error-using-fsanitize-undefined-object-has-a-possibly-invalid-vp) of how big it thinks objects can be, specifically when dealing with offset-to-top values used with multiple inheritance. Hopefully this doesn't have a performance impact. - `QueryCacheBase::QueryCacheBase`: Avoid an operation that UBSan thinks is UB even though it at least arguably isn't. See the link in the comment for more information. Fixes for correct reports: - `PageTable`, `Memory`: Use `uintptr_t` values instead of pointers to avoid UB from pointer overflow (when pointer arithmetic wraps around the address space). - `KScheduler::Reload`: `thread->GetOwnerProcess()` can be `nullptr`; avoid calling methods on it in this case. (The existing code returns a garbage reference to a field, which is then passed into `LoadWatchpointArray`, and apparently it's never used, so it's harmless in practice but still triggers UBSan.) - `KAutoObject::Close`: This function calls `this->Destroy()`, which overwrites the beginning of the object with junk (specifically a free list pointer). Then it calls `this->UnregisterWithKernel()`. UBSan complains about a type mismatch because the vtable has been overwritten, and I believe this is indeed UB. `UnregisterWithKernel` also loads `m_kernel` from the 'freed' object, which seems to be technically safe (the overwriting doesn't extend as far as that field), but seems dubious. Switch to a `static` method and load `m_kernel` in advance.
* kernel: match calls to Register and UnregisterLiam2023-04-291-2/+2
|
* kernel: prefer std::addressofLiam2023-03-121-1/+1
|
* kernel: remove kernel_Liam2023-03-121-3/+3
|
* kernel: convert KPort, KSessionLiam2023-03-121-9/+0
|
* Move to Clang Format 15Levi Behunin2023-01-291-14/+6
| | | | | | Depends on https://github.com/yuzu-emu/build-environments/pull/69 clang-15 primary run
* kernel: fix inconsistency in AutoObjectTraits macro definitionsLiam2022-06-131-4/+7
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* Merge pull request #8165 from bunnei/ensure-session-port-cleanupbunnei2022-04-121-3/+2
|\ | | | | Kernel: Track open references to KServerPort and KServerSession.
| * hle: kernel: k_auto_object: Move unregister with kernel to after Destroy.bunnei2022-04-081-3/+2
| | | | | | | | - Destructor is no longer invoked, so our object counting was off.
* | k_auto_object: Fix data racelat9nq2022-04-031-1/+1
|/ | | | | Change the memory order to acqure-release when we decrement the reference count. Prevents a race with line 89 reported by TSan.
* general: Move deleted copy/move constructor/assignment operators to public ↵Lioncash2022-02-021-3/+4
| | | | | | | | | | interface This allows for better compiler errors, where the compiler will state a copy or move couldn't occur due to the relevant function being deleted. Previously a compiler would warn about the relevant function not being accessible (which, while true, isn't as informative as it could be).
* core: hle: kernel: k_auto_object: Add GetName method.bunnei2021-12-061-0/+4
| | | | - Useful purely for debugging.
* Revert "kernel: Various improvements to scheduler"bunnei2021-08-251-4/+0
|
* core: hle: kernel: k_auto_object: Add GetName method.bunnei2021-08-071-0/+4
| | | | - Useful purely for debugging.
* hle: kernel: Provide methods for tracking dangling kernel objects.bunnei2021-07-201-2/+10
|
* hle: kernel: KAutoObjectWithListContainer: Use boost::instrusive::rbtree.bunnei2021-06-061-4/+7
| | | | - Fixes some crashes introduced by our common intrusive red/black tree impl.
* kernel: Eliminate variable shadowingLioncash2021-05-081-5/+1
| | | | | Now that the large kernel refactor is merged, we can eliminate the remaining variable shadowing cases.
* fixup! hle: kernel: Add initial impl. of KAutoObject.bunnei2021-05-051-46/+46
|
* fixup! hle: kernel: Add initial impl. of KAutoObject.bunnei2021-05-051-1/+1
|
* common: Rename NON_COPYABLE/NON_MOVABLE with YUZU_ prefix.bunnei2021-05-051-3/+3
|
* hle: kernel: Migrate to KHandleTable.bunnei2021-05-051-2/+0
|
* hle: kernel: Rename Process to KProcess.bunnei2021-05-051-2/+2
|
* hle: kernel: Remove deprecated Object class.bunnei2021-05-051-4/+10
|
* hle: kernel: Migrate more of KThread to KAutoObject.bunnei2021-05-051-8/+20
|
* hle: kernel: Add initial impl. of KAutoObject.bunnei2021-05-051-0/+290