| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-01-27 | kernel: clear pinned waiter list on unpin | Liam | |
| 2024-01-02 | KThread: Send termination interrupt to all cores a thread has affinity to | Merry | |
| KThread::RequestTerminate may run from a thread which is not the CurrentCore, and thus masking this out is erroneous. | |||
| 2023-12-22 | general: properly support multiple memory instances | Liam | |
| 2023-12-04 | core: refactor emulated cpu core activation | Liam | |
| 2023-10-21 | kernel: signal thread on termination completed | Liam | |
| 2023-10-21 | kernel: add missing TLR clear | Liam | |
| 2023-10-21 | kernel: update KProcess | Liam | |
| 2023-07-26 | Merge pull request #10990 from comex/ubsan | liamwhite | |
| Fixes and workarounds to make UBSan happier on macOS | |||
| 2023-07-18 | general: Silence -Wshadow{,-uncaptured-local} warnings | lat9nq | |
| These occur in the latest commits in LLVM Clang. | |||
| 2023-07-15 | Fixes and workarounds to make UBSan happier on macOS | comex | |
| 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. | |||
| 2023-06-22 | Remove memory allocations in some hot paths | Kelebek1 | |
| 2023-06-17 | k_thread: Use a mutex and cond_var to sync bool | lat9nq | |
| std::atomic<bool> is broken on MinGW and causes deadlocks there. Use a normal cond var in its stead. | |||
| 2023-03-23 | memory: rename global memory references to application memory | Liam | |
| 2023-03-22 | kernel: use KTypedAddress for addresses | Liam | |
| 2023-03-12 | kernel: additional style fixes to KThread, KProcess | Liam | |
| 2023-03-12 | kernel: convert KThread to new style | Liam | |
| 2023-03-12 | kernel: prefer std::addressof | Liam | |
| 2023-03-12 | kernel: remove kernel_ | Liam | |
| 2023-03-10 | Merge pull request #9923 from liamwhite/kht | liamwhite | |
| kernel: add timer pointer to KThreadQueue | |||
| 2023-03-07 | kernel: add timer pointer to KThreadQueue | Liam | |
| 2023-03-07 | kernel: clone fpu status on CreateThread | Liam | |
| 2023-03-01 | kernel: be more careful about kernel address keys | Liam | |
| 2023-03-01 | kernel: refactor priority inheritance to represent locks as C++ objects | Liam | |
| 2023-02-21 | service: refactor server architecture | Liam | |
| Converts services to have their own processes | |||
| 2023-02-13 | kernel: use GetCurrentProcess | Liam | |
| 2023-01-23 | kernel: split SetAddressKey into user and kernel variants | Liam | |
| 2023-01-23 | kernel: fix incorrect locking order in suspension | Liam | |
| 2022-11-09 | kernel/svc_types: refresh | Liam | |
| 2022-11-04 | service_thread: register service threads to the logical owner process | Liam | |
| 2022-10-30 | k_thread: fix single core | Liam | |
| 2022-10-24 | kernel: refactor dummy thread wakeups | Liam | |
| 2022-10-18 | core: hle: kernel: Use result macros for new/changed code. | bunnei | |
| 2022-10-18 | core: hle: kernel: k_thread: Implement thread termination DPC. | bunnei | |
| 2022-07-14 | kernel: Ensure all uses of disable_count are balanced | Liam | |
| 2022-07-14 | kernel: be more careful about initialization path for HLE threads | Liam | |
| 2022-07-14 | kernel: fix single-core preemption points | Liam | |
| 2022-07-14 | kernel: fix issues with single core mode | Liam | |
| 2022-07-14 | kernel: use KScheduler from mesosphere | Liam | |
| 2022-07-09 | kernel: fix usage of waiter_list in Finalize | Liam | |
| 2022-07-07 | Merge pull request #8502 from liamwhite/end-wait | liamwhite | |
| kernel: clean up waiting implementation | |||
| 2022-07-02 | common/fiber: make fibers easier to use | Liam | |
| 2022-06-26 | core: Replace all instances of ResultCode with Result | german77 | |
| 2022-06-25 | kernel: clean up waiting implementation | Liam | |
| 2022-06-23 | kernel: make current thread pointer thread local | Liam | |
| 2022-06-22 | Merge pull request #8483 from liamwhite/fire-emblem-three-semaphores | bunnei | |
| kernel: wait for threads to stop on pause | |||
| 2022-06-18 | kernel: wait for threads to stop on pause | Liam | |
| 2022-06-15 | kernel: fix some uses of disable_count | Liam | |
| 2022-06-14 | kernel: implement KProcess suspension | Liam | |
| 2022-06-13 | common: Change semantics of UNREACHABLE to unconditionally crash | Liam | |
| 2022-06-01 | core/debugger: Support reading guest thread names | Liam | |
