aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
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
2023-05-03Merge pull request #10117 from liamwhite/sync-registerbunnei
kernel: match calls to Register and Unregister
2023-05-03Merge pull request #10124 from liamwhite/pebkacMorph
settings: rename extended memory layout to unsafe, move from general to system
2023-04-30settings: rename extended memory layout to unsafe, move from general to systemLiam
2023-04-29kernel: remove general boost listsLiam
2023-04-29kernel: match calls to Register and UnregisterLiam
2023-04-09kernel: move more memory to application in 8GB arrangementLiam
2023-04-08kernel: switch extended memory setting to 8GB arrangementLiam
2023-03-28kernel: fix unbounded stack usage in atomicsLiam
2023-03-23memory: rename global memory references to application memoryLiam
2023-03-23Merge pull request #9964 from liamwhite/typed-addressliamwhite
kernel: use KTypedAddress for addresses
2023-03-22kernel: use KTypedAddress for addressesLiam
2023-03-19kernel: fix LOG_TRACE in ipcLiam
2023-03-12kernel: additional style fixes to KThread, KProcessLiam
2023-03-12kernel: fix clang buildLiam
2023-03-12kernel: remove unnecessary finalize callsLiam
2023-03-12kernel: convert KProcess to new styleLiam
2023-03-12kernel: convert KThread to new styleLiam
2023-03-12kernel: prefer std::addressofLiam
2023-03-12kernel: convert KResourceLimitLiam
2023-03-12kernel: remove kernel_Liam
2023-03-12kernel: remove gratitutous attribute usageLiam
2023-03-12kernel/svc: convert to new styleLiam
2023-03-12kernel: convert miscellaneousLiam
2023-03-12kernel: conver KScopedLock, KScopedResourceReservation, KSessionRequest, ↵Liam
KSharedMemory, KSpinLock
2023-03-12kernel: convert KAbstractSchedulerLockLiam