aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2023-11-26general: fix mac compileLiam
2023-11-25Address more review commentsGPUCode
2023-11-25core: Define HAS_NCE macroGPUCode
2023-11-25Address some review commentsGPUCode
2023-11-25arm: Implement native code execution backendLiam
2023-11-25kernel: Manually specify aslr region startLiam
2023-11-25core: Respect memory permissions in MapGPUCode
2023-11-14fix apple clang build againLiam
2023-11-11k_capabilities: ignore map region when KTrace is disabledLiam
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