aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2023-11-10k_page_table: fix shutdownLiam
2023-11-10k_page_table: use more precise icache invalidatesLiam
2023-11-10kernel: add KPageTableBaseLiam
Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
2023-10-21kernel: fix extraneous refLiam
2023-10-21kernel: signal thread on termination completedLiam
2023-10-21kernel: add missing TLR clearLiam
2023-10-21kernel: update KProcessLiam
2023-10-20Merge pull request #11748 from liamwhite/kern_1700Fernando S
kernel: update for 17.0.0
2023-10-20kernel: fix incorrect calculation of used non system memory valueLiam
2023-10-20kernel: fix format string errorLiam
2023-10-20kernel: make check fully constexpr for broken msvc constant foldingLiam
2023-10-20k_page_table: add MapFirstGroupLiam
2023-10-20kernel: update KMemoryRegionType valuesLiam
2023-10-20k_page_table: implement PermissionLockedLiam
2023-10-20k_page_table: add new CheckMemoryState helperLiam
2023-10-20kernel: split Io memory state, add PermissionLocked attributeLiam
2023-10-20kernel: reshuffle ini1 size, add slab clear noteLiam
2023-10-13Merge pull request #11766 from liamwhite/open-sesameliamwhite
k_page_table: add missing page group open when locking memory
2023-10-12k_page_table: add missing page group open when locking memoryLiam
2023-10-12kernel: mark TLS accessors as noinline for non-MSVC LTOLiam
2023-10-04kernel: implement transfer memoryLiam
2023-10-02ci: fix new codespell errorsLiam
2023-10-01k_page_table: skip page table clearing on finalizationLiam
2023-09-19Reduce core timing mutex contentionKelebek1
2023-09-14core: improve debug workflowLiam
2023-09-03msvc: set warning level to /W4 globallyDanila Malyutin
And fix a bunch of warnings
2023-08-25kernel: offset code entry point for 39-bit address space type (#11326)liamwhite
2023-08-14kernel: remove relative task registrationLiam
2023-08-08core: remove ResultVal typeLiam
2023-08-02Merge pull request #10839 from lat9nq/pgc-plusliamwhite
general: Reimplement per-game configurations
2023-07-26Merge pull request #10990 from comex/ubsanliamwhite
Fixes and workarounds to make UBSan happier on macOS
2023-07-22core: reduce TOCTTOU memory accessLiam
2023-07-22Merge pull request #11094 from liamwhite/getliamwhite
kernel: misc cleanup of page table accessors
2023-07-21core: remove remaining uses of dynamic_castLiam
2023-07-21k_system_control: Always return some memory sizelat9nq
2023-07-21core,common: Give memory layout setting an enumlat9nq
Allows for 6GB and 8GB layouts to be selected.
2023-07-21settings,core,config_sys: Remove optional type from custom_rtc, rng_seedlat9nq
core: Fix MSVC errors
2023-07-18general: Silence -Wshadow{,-uncaptured-local} warningslat9nq
These occur in the latest commits in LLVM Clang.
2023-07-15Fixes and workarounds to make UBSan happier on macOScomex
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-07-14kernel: reduce page table region checkingLiam
2023-07-14k_process: PageTable -> GetPageTableLiam
2023-07-08k_server_session: translate special header for non-HLE requestsLiam
2023-07-01kernel: SynchronizeMorph
2023-06-22Remove memory allocations in some hot pathsKelebek1
2023-06-21Merge pull request #10086 from Morph1984/coretiming-ng-1bunnei
core_timing: Use CNTPCT as the guest CPU tick
2023-06-17k_thread: Use a mutex and cond_var to sync boollat9nq
std::atomic<bool> is broken on MinGW and causes deadlocks there. Use a normal cond var in its stead.
2023-06-07core_timing: Fix SingleCore cycle timerMorph
2023-06-07core_timing: Use CNTPCT as the guest CPU tickMorph
Previously, we were mixing the raw CPU frequency and CNTFRQ. The raw CPU frequency (1020 MHz) should've never been used as CNTPCT (whose frequency is CNTFRQ) is the only counter available.
2023-06-03device_memory: Use smaller virtual reservation size for compatibility with ↵Liam
39-bit paging
2023-05-23k_memory_block_manager: remove auditing callsLiam