aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2020-11-29kernel: scheduler: Minor cleanup to remove duplicated code.bunnei
2020-11-29kernel: time_manager: Protect access with a mutex.bunnei
2020-11-29hle: kernel: thread: Remove unused "Running" state.bunnei
2020-11-29core: arm: Implement InvalidateCacheRange for CPU cache invalidation.bunnei
2020-11-29hle: kernel: time_manager: Avoid a crash on process exit.bunnei
2020-11-29hle: kernel: AddressArbiter: Remove unused code.bunnei
2020-11-29hle: kernel: SynchronizationObject: Use atomic_bool for is_signaled.bunnei
2020-11-29common: fiber: Use boost::context instead of native fibers on Windows.bunnei
2020-11-29hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.bunnei
2020-11-23svc: Remove unnecessary [[maybe_unused]] tagLioncash
The parameter is used in this function, so this suppression isn't necessary.
2020-11-08ipc_helpers: Remove usage of the global system instanceLioncash
Resolves numerous deprecation warnings throughout the codebase due to inclusion of this header. Now building core should be significantly less noisy (and also relying on less global state). This also uncovered quite a few modules that were relying on indirect includes, which have also been fixed.
2020-11-03core: Remove usage of unicornLioncash
Unicorn long-since lost most of its use, due to dynarmic gaining support for handling most instructions. At this point any further issues encountered should be used to make dynarmic better. This also allows us to remove our dependency on Python.
2020-10-29kernel/process: Add missing <ctime> includeMorph
Fixes compilation on MSVC
2020-10-28Merge pull request #4835 from lat9nq/rng-default-timebunnei
kernel: Use the current time as the default RNG seed
2020-10-27hle/kernel: Remove unused registered_core_threads to fix data racesReinUsesLisp
This member was only used on asserts and it triggered data races. Remove it to fix them.
2020-10-26kernel: Use the current time as the default RNG seedlat9nq
Use the current time, not zero, as the default RNG seed.
2020-10-20Revert "core: Fix clang build"bunnei
2020-10-20kernel: Fix build with recent compiler flag changesLioncash
This slipped through the cracks due to another change being merged before the compiler flag changes.
2020-10-20Merge pull request #4796 from lioncash/clangLC
core: Fix clang build
2020-10-19Merge pull request #4788 from ReinUsesLisp/lockfree-host-threadbunnei
kernel: Implement host thread register methods without locking
2020-10-17core: Fix clang buildLioncash
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-10-13kernel: Implement host thread register methods without lockingReinUsesLisp
Locks on GetCurrentHostThreadID were causing performance issues according to Visual Studio's profiler. It was consuming twice the time as arm_interface.Run(). The cost was not in the function itself but in the lockinig it required. Reimplement these functions using atomics and static storage instead of an unordered_map. This is a side effect to avoid locking and using linked lists for reads. Replace unordered_map with a linear search.
2020-10-13core/CMakeLists: Make some warnings errorsLioncash
Makes our error coverage a little more consistent across the board by applying it to Linux side of things as well. This also makes it more consistent with the warning settings in other libraries in the project. This also updates httplib to 0.7.9, as there are several warning cleanups made that allow us to enable several warnings as errors.
2020-09-14kernel: Remove all dependencies on the global system instanceLioncash
With this, the kernel finally doesn't depend directly on the global system instance anymore.
2020-09-11Merge pull request #4323 from ReinUsesLisp/no-spinbunnei
kernel/scheduler: Use std::mutex instead of spin lock
2020-09-03Merge pull request #4590 from ReinUsesLisp/tsan-schedbunnei
hle/scheduler: Fix data race in is_context_switch_pending
2020-08-26hle/scheduler: Fix data race in is_context_switch_pendingReinUsesLisp
As reported by tsan, SelectThreads could write to is_context_switch_pending holding a mutex while SwitchToCurrent reads it without holding any. It is assumed that the author didn't want an atomic here, so the code is reordered so that whenever is_context_switch_pending is read inside SwitchToContext, the mutex is locked.
2020-08-26hle/kernel: Fix data race in GetCurrentHostThreadIDReinUsesLisp
As reported by tsan, host_thread_ids could be read while any of the RegisterHostThread variants were called. To fix this, lock the register mutex when yuzu is running in multicore mode and GetCurrentHostThreadID is called.
2020-08-15Merge pull request #4492 from lioncash/linkagebunnei
system_control: Make functions internally linked where applicable
2020-08-14kernel/scheduler: Mark SchedulerLock constructor as nodiscardLioncash
Allows the compiler to warn about cases where the constructor is used but then immediately discarded, which is a potential cause of locking/unlocking bugs.
2020-08-13General: Tidy up clang-format warnings part 2Lioncash
2020-08-10Merge pull request #4491 from lioncash/unused-varsbunnei
kernel: Remove unused variables
2020-08-05system_control: Make functions internally linked where applicableLioncash
These functions are only ever used internally as implementation details for GenerateRandomRange(), so these can be given internal linkage.
2020-08-05kernel: Remove unused variablesLioncash
Resolves a few compiler warnings.
2020-08-05scheduler: Resolve sign conversion warningLioncash
2020-08-05address_arbiter: Resolve sign conversion warningLioncash
Makes our type conversion explicit.
2020-08-03ipc: Allow all trivially copyable objects to be passed directly into ↵David
WriteBuffer (#4465) * ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer With the support of C++20, we can use concepts to deduce if a type is an STL container or not. * More agressive concept for stl containers * Add -fconcepts * Move to common namespace * Add Common::IsBaseOf
2020-07-27core_timing: Make use of uintptr_t to represent user_dataLioncash
Makes the interface future-proofed for supporting other platforms in the event we ever support platforms with differing pointer sizes. This way, we have a type in place that is always guaranteed to be able to represent a pointer exactly.
2020-07-18Merge pull request #4348 from lioncash/nanobunnei
core_timing: Make usage of nanoseconds more consistent in the interface
2020-07-17Merge pull request #4357 from lioncash/unused4David
kernel: Remove unused variables
2020-07-17Merge pull request #4358 from lioncash/unused5David
kernel/thread: Remove unimplemented function prototype
2020-07-16Merge pull request #4327 from lioncash/desig2Rodrigo Locatti
address_space_info: Make use of designated initializers
2020-07-16kernel/thread: Remove unimplemented function prototypeLioncash
This isn't used, so it can be removed.
2020-07-16kernel: Remove unused variablesLioncash
Resolves some compiler warnings in the Linux build.
2020-07-16kernel: Add missing includeLioncash
2020-07-16cpu_manager: Mark function getters as staticLioncash
All these do are return std::function instances of static functions, so these can be used without an instance of the CPU manager.
2020-07-16Merge pull request #4346 from lioncash/threadDavid
kernel/handle_table: Remove usages of the global system instance
2020-07-15core_timing: Make TimedCallback take std::chrono::nanosecondsLioncash
Enforces our desired time units directly with a concrete type.
2020-07-15core_timing: Make use of std::chrono with ScheduleEventLioncash
2020-07-15kernel/process: Move name and system context to the bottom of the member listLioncash
These aren't directly important or commonly used within the process, so we can move these to the bottom to allow everything else to be more likely to be within a cache line.