854c7a3c28
hle: kernel: Ensure current running process is closed.
2021-07-20 18:54:56 -07:00
ecf3653444
hle: kernel: Ensure global handle table is finalized before closing.
2021-07-20 18:54:56 -07:00
fe402d3506
hle: kernel: Ensure global handle table is initialized.
2021-07-20 18:54:55 -07:00
929994132a
hle: kernel: Provide methods for tracking dangling kernel objects.
2021-07-20 18:54:55 -07:00
4569f39c7c
common: Replace common_sizes into user-literals
...
Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc
user-literals within literals.h.
To keep the global namespace clean, users will have to use:
```
using namespace Common::Literals;
```
to access these literals.
2021-06-24 09:27:40 -07:00
a493ab2678
hle: kernel: Remove service thread manager and use weak_ptr.
...
- We no longer need to queue up service threads to be destroyed.
- Fixes a race condition where a thread could be destroyed too early, which caused a crash in Pokemon Sword/Shield.
2021-06-07 21:10:51 -07:00
5388e6db84
Merge pull request #6373 from bunnei/use-slabheap-tls
...
hle: kernel: KSlabHeap: Allow host or guest allocations.
2021-05-29 00:17:24 -07:00
5a8cd1b118
Fix two GCC 11 warnings: Unneeded copies.
...
std::move created an unneeded copy.
iterating without reference also created copies.
2021-05-29 08:57:44 +02:00
ee099b2697
hle: kernel: KSlabHeap: Allow host or guest allocations.
...
- Use host allocations for kernel memory, as this is not properly emulated yet.
- Use guest allocations for TLS, as this needs to be backed by DeviceMemory.
2021-05-28 17:42:41 -07:00
c6de9657be
hle: kernel: Implement named service ports using service interface factory.
...
- This allows us to create a new interface each time ConnectToNamedPort is called, removing the assumption that these are static.
2021-05-10 20:34:38 -07:00
2f62bae9e3
kernel: Eliminate variable shadowing
...
Now that the large kernel refactor is merged, we can eliminate the
remaining variable shadowing cases.
2021-05-08 12:33:26 -04:00
b805ee653f
hle: kernel: Move slab resource counts to Kernel.
2021-05-05 16:40:54 -07:00
da22def511
hle: kernel: Fix un/sign mismatch errors with NUM_CPU_CORES.
2021-05-05 16:40:54 -07:00
4b03e6e776
hle: kernel: Migrate to KHandleTable.
2021-05-05 16:40:53 -07:00
0b27c721c9
hle: kernel: Improve MapSharedMemory and implement UnmapSharedMemory.
2021-05-05 16:40:52 -07:00
2a7eff57a8
hle: kernel: Rename Process to KProcess.
2021-05-05 16:40:52 -07:00
864841eb9e
hle: kernel: Do not shutdown twice on emulator close.
2021-05-05 16:40:52 -07:00
39a8dba9a6
hle: kernel: Cleanup shutdown of persistent kernel objects.
2021-05-05 16:40:52 -07:00
0297448fbc
hle: kernel: Migrate KClientPort to KAutoObject.
2021-05-05 16:40:52 -07:00
b57c5a9b54
hle: kernel: Migrate KResourceLimit to KAutoObject.
2021-05-05 16:40:52 -07:00
cfa7b92563
hle: kernel: Move slab heaps to their own container.
2021-05-05 16:40:51 -07:00
89edbe8aa2
hle: kernel: Refactor several threads/events/sharedmemory to use slab heaps.
2021-05-05 16:40:51 -07:00
ab704acab8
hle: kernel: Ensure all kernel objects with KAutoObject are properly created.
2021-05-05 16:40:51 -07:00
722195cf70
hle: kernel: Use unique_ptr for suspend and dummy threads.
2021-05-05 16:40:50 -07:00
086db71e94
hle: kernel: Migrate KSharedMemory to KAutoObject.
2021-05-05 16:40:50 -07:00
7ccbdd4d8d
hle: kernel: Migrate KProcess to KAutoObject.
2021-05-05 16:40:50 -07:00
da7e9553de
hle: kernel: Migrate more of KThread to KAutoObject.
2021-05-05 16:40:50 -07:00
34bed1ab41
hle: kernel: Refactor out various KThread std::shared_ptr usage.
2021-05-05 16:40:50 -07:00
2067115c78
k_resource_limit: Minor cleanup of member variables/headers
2021-04-14 00:40:33 -04:00
5e85bc3d23
kernel/process: Replace process resource limit instance with the kernel's resource limit
...
This commit addresses the inaccurate behavior of kernel processes creating their own resource limit, rather than utilizing the kernel's system-wide resource limit instance.
2021-04-12 16:14:19 -04:00
b04877dd95
Merge pull request #6099 from bunnei/derive-mem
...
Kernel Rework: Derive memory regions from board layout.
2021-04-10 00:02:52 -07:00
24900674b7
kernel: Increase event and session counts
...
12.x increased the number of available sessions and event resource counts
2021-04-07 01:01:05 -04:00
cb7f2e5616
hle: kernel: Initialize preemption task after schedulers.
...
- Fixes a startup crash that occurs if CoreTiming tries to preempt before kernel initialization completes.
2021-03-27 10:04:13 -07:00
10d6e9f32b
hle: kernel: Breakup InitializeMemoryLayout.
2021-03-23 18:47:16 -07:00
ab5995c7ae
common: common_sizes: Move sizes to the Common namespace.
2021-03-23 18:31:46 -07:00
3ffbe50e7d
hle: kernel: Remove unused variable.
2021-03-21 15:47:24 -07:00
343eaecd38
hle: kernel: k_memory_layout: Derive memory regions based on board layout.
2021-03-21 14:45:13 -07:00
778e0f8ec1
hle: kernel: Move KMemoryRegion to its own module and update.
2021-03-21 14:45:02 -07:00
47af34003b
hle: kernel: KThread: Rework dummy threads & fix memory leak.
...
- Dummy threads are created on thread local storage for all host threads.
- Fixes a leak by removing creation of fibers, which are not applicable here.
2021-03-05 17:10:57 -08:00
09f7c355c6
Merge pull request #5953 from bunnei/memory-refactor-1
...
Kernel Rework: Memory updates and refactoring (Part 1)
2021-02-27 12:48:35 -07:00
8e4c9c9852
kernel: Fix resource release exception on exit
...
After rewriting the resource limit, objects releasing reserved resources require a live kernel instance.
This commit fixes exceptions that occur due to the kernel being destroyed before some objects released their resources, allowing for a graceful exit.
2021-02-20 20:51:11 -05:00
b1e27890e8
hle: kernel: Migrate MemoryManager to KMemoryManager.
2021-02-18 16:16:25 -08:00
65e0178cc0
hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others.
2021-02-18 16:16:25 -08:00
9e520e8f12
hle: kernel: Migrate SlabHeap to KSlabHeap.
2021-02-18 16:16:25 -08:00
1d162f28d1
hle: kernel: Migrate MemoryLayout to KMemoryLayout.
2021-02-18 16:16:25 -08:00
0d62f30b00
hle: kernel: Rename SharedMemory to KSharedMemory.
2021-02-18 16:16:12 -08:00
ec9b6641b1
kernel: More accurately reserve and release resources
2021-02-12 19:05:24 -05:00
37939482fb
kernel: Unify result codes ( #5890 )
...
* kernel: Unify result codes
Drop the usage of ERR_NAME convention in kernel for ResultName. Removed seperation between svc_results.h & errors.h as we mainly include both most of the time anyways.
* oops
* rename errors to svc_results
2021-02-12 15:43:01 -08:00
2c6e940493
Simplify limitableresource names
2021-02-03 12:55:16 +11:00
3be1a565f8
kernel: Rewrite resource limit to be more accurate
...
Matches closer to hardware
2021-01-30 20:40:49 +11:00