bunnei
7361eac10f
hle: kernel: Implement CloneCurrentObject and improve session management.
2021-05-20 21:41:49 -07:00
bunnei
c40e7593f5
Revert "WORKAROUND: temp. disable session resource limits while we work out issues"
...
This reverts commit fc086f93b2
.
2021-05-20 21:40:30 -07:00
bunnei
ea4e4b05e4
Merge pull request #6320 from Morph1984/get-pid
...
hle_ipc: Add a getter for PID
2021-05-20 21:40:03 -07:00
Morph
7f78b17e20
KTransferMemory: Return size instead of size * PageSize in GetSize()
...
size is already the size in bytes. We do not need to multiply it by the page size
2021-05-18 13:14:28 -04:00
Morph
049769a0c9
hle_ipc: unsigned -> u32
...
This is more concise and consistent with the rest of the codebase.
2021-05-16 04:11:00 -04:00
Morph
81a5ecdb18
hle_ipc: Add a getter for PID
2021-05-16 04:10:42 -04:00
Lioncash
9a07ed53eb
core: Make variable shadowing a compile-time error
...
Now that we have most of core free of shadowing, we can enable the
warning as an error to catch anything that may be remaining and also
eliminate this class of logic bug entirely.
2021-05-16 03:43:16 -04:00
bunnei
12d569e483
hle: kernel: hle_ipc: Fix outgoing IPC response size calculation.
2021-05-11 12:27:43 -07:00
bunnei
fc086f93b2
WORKAROUND: temp. disable session resource limits while we work out issues
2021-05-11 10:51:39 -07:00
bunnei
f2c26443f8
WORKAROUND: Do not use slab heap while we track down issues with resource management.
2021-05-11 10:27:18 -07:00
bunnei
913971417e
hle: kernel: hle_ipc: Improve IPC code and add initial support for TIPC.
...
- Fixes our move handles implementation to actually move objects.
- Simplifies the traditional IPC path.
2021-05-10 20:34:38 -07:00
bunnei
da25a59866
hle: service: Implement IPC::CommandType::Close.
...
- This was not actually closing sessions before.
2021-05-10 20:34:38 -07:00
bunnei
f54ea749a4
hle: kernel: svc: Update ConnectToNamedPort to use new CreateNamedServicePort interface.
2021-05-10 20:34:38 -07:00
bunnei
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
bunnei
75f23ad494
hle: kernel: KClientPort: Cleanup comment format.
2021-05-10 15:41:46 -07:00
bunnei
ed25191ee6
hle: kernel: Further cleanup and add TIPC helpers.
2021-05-10 15:05:10 -07:00
bunnei
d08bd3e062
hle: ipc_helpers: Update IPC response generation for TIPC.
2021-05-10 15:05:10 -07:00
bunnei
ec50a9b5b9
Merge pull request #6291 from lioncash/kern-shadow
...
kernel: Eliminate variable shadowing
2021-05-09 20:15:00 -07:00
german77
0c1bb46f0a
kernel: Delete unused files
2021-05-09 11:15:31 -05:00
Lioncash
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
bunnei
d57b12193b
hle: kernel: KPageTable: CanContain should not be constexpr.
2021-05-05 16:40:55 -07:00
bunnei
b805ee653f
hle: kernel: Move slab resource counts to Kernel.
2021-05-05 16:40:54 -07:00
bunnei
2c4615f3a6
fixup! hle: kernel: Migrate more of KThread to KAutoObject.
2021-05-05 16:40:54 -07:00
bunnei
eae107d0e9
kernel: svc: Remove unused RetrieveResourceLimitValue function.
2021-05-05 16:40:54 -07:00
bunnei
da22def511
hle: kernel: Fix un/sign mismatch errors with NUM_CPU_CORES.
2021-05-05 16:40:54 -07:00
bunnei
f23760b1e1
fixup! hle: kernel: Add initial impl. of slab setup.
2021-05-05 16:40:54 -07:00
bunnei
1e983b19df
fixup! hle: kernel: Migrate to KHandleTable.
2021-05-05 16:40:54 -07:00
bunnei
ad5a5ef43f
fixup! hle: kernel: Migrate more of KThread to KAutoObject.
2021-05-05 16:40:54 -07:00
bunnei
9434603450
fixup! hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.
2021-05-05 16:40:54 -07:00
bunnei
703d7aaab6
fixup! hle: kernel: Migrate to KHandleTable.
2021-05-05 16:40:54 -07:00
bunnei
9beb239634
fixup! hle: kernel: Add initial impl. of KLinkedList.
2021-05-05 16:40:54 -07:00
bunnei
2cdc7142b0
fixup! hle: kernel: Migrate to KHandleTable.
2021-05-05 16:40:54 -07:00
bunnei
34abe4a905
fixup! hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject.
2021-05-05 16:40:54 -07:00
bunnei
f6d45b747e
fixup! hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject.
2021-05-05 16:40:53 -07:00
bunnei
1b074b8984
fixup! hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject.
2021-05-05 16:40:53 -07:00
bunnei
50d2dc3b51
fixup! hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject.
2021-05-05 16:40:53 -07:00
bunnei
d23f9f75ff
fixup! hle: kernel: Migrate to KHandleTable.
2021-05-05 16:40:53 -07:00
bunnei
4356361faf
fixup! hle: kernel: Add initial impl. of KAutoObjectWithListContainer.
2021-05-05 16:40:53 -07:00
bunnei
51aa5a5364
fixup! hle: kernel: Add initial impl. of KAutoObjectWithListContainer.
2021-05-05 16:40:53 -07:00
bunnei
25538db150
fixup! hle: kernel: Add initial impl. of KAutoObject.
2021-05-05 16:40:53 -07:00
bunnei
9bae3992e6
fixup! hle: kernel: Add initial impl. of KAutoObject.
2021-05-05 16:40:53 -07:00
bunnei
91d8657959
fixup! hle: kernel: Add initial impl. of slab setup.
2021-05-05 16:40:53 -07:00
bunnei
d3c166d4d5
common: Rename NON_COPYABLE/NON_MOVABLE with YUZU_ prefix.
2021-05-05 16:40:53 -07:00
bunnei
0536004d91
fixup! hle: kernel: Rename Process to KProcess.
2021-05-05 16:40:53 -07:00
bunnei
57f80c74b6
fixup! hle: kernel: Migrate to KHandleTable.
2021-05-05 16:40:53 -07:00
bunnei
caa11748c6
fixup! hle: kernel: Improve MapSharedMemory and implement UnmapSharedMemory.
2021-05-05 16:40:53 -07:00
bunnei
7866eb03bb
hle: kernel: svc: ConnectToNamedPort: Use KHandleTable::Reserve.
2021-05-05 16:40:53 -07:00
bunnei
4b03e6e776
hle: kernel: Migrate to KHandleTable.
2021-05-05 16:40:53 -07:00
bunnei
8f5052a514
hle: kernel: KClassToken: Ensure class tokens are correct.
2021-05-05 16:40:53 -07:00
bunnei
0b27c721c9
hle: kernel: Improve MapSharedMemory and implement UnmapSharedMemory.
2021-05-05 16:40:52 -07:00
bunnei
2a7eff57a8
hle: kernel: Rename Process to KProcess.
2021-05-05 16:40:52 -07:00
bunnei
bf380b8584
hle: kernel: Remove deprecated Object class.
2021-05-05 16:40:52 -07:00
bunnei
864841eb9e
hle: kernel: Do not shutdown twice on emulator close.
2021-05-05 16:40:52 -07:00
bunnei
39a8dba9a6
hle: kernel: Cleanup shutdown of persistent kernel objects.
2021-05-05 16:40:52 -07:00
bunnei
626f746971
hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject.
2021-05-05 16:40:52 -07:00
bunnei
7a06864100
hle: kernel: Migrate KServerPort to KAutoObject.
2021-05-05 16:40:52 -07:00
bunnei
0297448fbc
hle: kernel: Migrate KClientPort to KAutoObject.
2021-05-05 16:40:52 -07:00
bunnei
aa2844bcf9
hle: kernel: HandleTable: Remove deprecated APIs.
2021-05-05 16:40:52 -07:00
bunnei
b57c5a9b54
hle: kernel: Migrate KResourceLimit to KAutoObject.
2021-05-05 16:40:52 -07:00
bunnei
674122038a
hle: kernel: svc: Migrate WaitSynchronization.
2021-05-05 16:40:51 -07:00
bunnei
126aaeb6d3
hle: kernel: svc: Use new handle table API for Process.
2021-05-05 16:40:51 -07:00
bunnei
c7d8b7421c
hle: kernel: Migrate KTransferMemory to KAutoObject.
2021-05-05 16:40:51 -07:00
bunnei
7444963bbb
hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject.
2021-05-05 16:40:51 -07:00
bunnei
2cb6106523
hle: kernel: svc: Migrate GetThreadContext, GetThreadCoreMask.
2021-05-05 16:40:51 -07:00
bunnei
76a0814142
hle: kernel: svc: Migrate GetProcessId, CancelSynchronization, SetThreadActivity.
2021-05-05 16:40:51 -07:00
bunnei
84bb772003
hle: kernel: KThread: Remove incorrect resource release.
2021-05-05 16:40:51 -07:00
bunnei
269d233a94
hle: kernel: svc_results: Update naming..
2021-05-05 16:40:51 -07:00
bunnei
c2f6f2ba7a
hle: kernel: KThread: Add missing resource hint release.
2021-05-05 16:40:51 -07:00
bunnei
2e8d6fe9a0
hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.
2021-05-05 16:40:51 -07:00
bunnei
cfa7b92563
hle: kernel: Move slab heaps to their own container.
2021-05-05 16:40:51 -07:00
bunnei
89edbe8aa2
hle: kernel: Refactor several threads/events/sharedmemory to use slab heaps.
2021-05-05 16:40:51 -07:00
bunnei
b6156e735c
hle: kernel: Move slab heap management to KernelCore.
2021-05-05 16:40:51 -07:00
bunnei
ab704acab8
hle: kernel: Ensure all kernel objects with KAutoObject are properly created.
2021-05-05 16:40:51 -07:00
bunnei
722195cf70
hle: kernel: Use unique_ptr for suspend and dummy threads.
2021-05-05 16:40:50 -07:00
bunnei
addc0bf037
hle: kernel: Migrate KEvent to KAutoObject.
2021-05-05 16:40:50 -07:00
bunnei
086db71e94
hle: kernel: Migrate KSharedMemory to KAutoObject.
2021-05-05 16:40:50 -07:00
bunnei
7ccbdd4d8d
hle: kernel: Migrate KProcess to KAutoObject.
2021-05-05 16:40:50 -07:00
bunnei
5e5933256b
hle: kernel: Refactor IPC interfaces to not use std::shared_ptr.
2021-05-05 16:40:50 -07:00
bunnei
da7e9553de
hle: kernel: Migrate more of KThread to KAutoObject.
2021-05-05 16:40:50 -07:00
bunnei
6fca1c82fd
hle: kernel: svc: Migrate GetThreadPriority, StartThread, and ExitThread.
2021-05-05 16:40:50 -07:00
bunnei
de4746ff69
hle: kernel: svc: Migrate CreateThread.
2021-05-05 16:40:50 -07:00
bunnei
0eeecde67c
hle: kernel: Migrate idle threads.
2021-05-05 16:40:50 -07:00
bunnei
479bd50b96
hle: kernel: Migrate KThread to KAutoObject.
2021-05-05 16:40:50 -07:00
bunnei
d3d0f2f451
hle: kernel: Add initial impl. of slab setup.
2021-05-05 16:40:50 -07:00
bunnei
34bed1ab41
hle: kernel: Refactor out various KThread std::shared_ptr usage.
2021-05-05 16:40:50 -07:00
bunnei
66f2ad716b
hle: kernel: Add initial impl. of KLinkedList.
2021-05-05 16:40:49 -07:00
bunnei
f93d939426
hle: kernel: Add initial impl. of KSlabAllocated.
2021-05-05 16:40:49 -07:00
bunnei
34ce1dd7c7
hle: kernel: Add initial impl. of KAutoObjectWithListContainer.
2021-05-05 16:40:49 -07:00
bunnei
b8751630e2
hle: kernel: Add initial impl. of KAutoObject.
2021-05-05 16:40:49 -07:00
german77
c19ad21ae8
hid: Implement SevenSixAxis and ConsoleSixAxisSensor
2021-04-23 22:12:41 -05:00
Morph
e3e6a11ab8
hle_ipc: Add helper functions to get copy/move handles
2021-04-15 01:53:16 -04:00
bunnei
de5bf640b7
Merge pull request #6196 from bunnei/asserts-setting
...
core: settings: Add setting for debug assertions and disable by default.
2021-04-14 17:47:18 -07:00
bunnei
a4c6712a4b
common: Move settings to common from core.
...
- Removes a dependency on core and input_common from common.
2021-04-14 16:24:03 -07:00
ameerj
2067115c78
k_resource_limit: Minor cleanup of member variables/headers
2021-04-14 00:40:33 -04:00
bunnei
bb922d6ff6
Merge pull request #6185 from ameerj/process-reslimit
...
kernel/process: Replace process resource limit instance with the kernel's resource limit
2021-04-13 21:08:59 -07:00
ameerj
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
Lioncash
0fb3773924
k_thread: Remove [[nodiscard]] attribute from ClearWaitCancelled()
...
This function has a void return value, so this attribute doesn't apply
to it.
2021-04-12 10:17:38 -04:00
bunnei
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
bunnei
c6d2af16b5
Merge pull request #6156 from lioncash/lock-discard
...
kernel: Mark lock helper classes as [[nodiscard]]
2021-04-09 21:42:26 -07:00
bunnei
701b6c2fb8
Merge pull request #6155 from ameerj/kernel-12-rescnt
...
kernel: Increase event and session counts
2021-04-08 18:21:00 -07:00
bunnei
415dfb6cd3
Merge pull request #6154 from lioncash/svcrange2
...
svc: Expand SVC tables
2021-04-08 09:21:55 -07:00
Lioncash
530a5a1d09
Amend bizarre clang-format suggestions
2021-04-07 01:52:08 -04:00
Lioncash
1e964604bb
k_scoped_scheduler_lock_and_sleep: Mark class as [[nodiscard]]
...
Prevents logic bugs from slipping through.
2021-04-07 01:45:04 -04:00
Lioncash
c018769016
k_scoped_lock: delete copy and move assignment operators
...
If we delete the copy and move constructor, we should also be deleting
the copy and move assignment operators (and even if this were intended,
it would be pretty odd to not document why it's done this way).
2021-04-07 01:25:57 -04:00
Lioncash
bc30aa8249
k_scoped_lock: Mark class as [[nodiscard]]
...
Prevents logic bugs of the kind described in the previous commit from
slipping through.
2021-04-07 01:23:08 -04:00
Lioncash
97e2604575
k_scheduler: Mark KScopedSchedulerLock as [[nodiscard]]
...
Prevents logic bugs like:
KScopedSchedulerLock{kernel};
instead of:
KScopedSchedulerLock lk{kernel};
from slipping through.
2021-04-07 01:19:29 -04:00
ameerj
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
Lioncash
55fc808d64
svc: Expand SVC tables
...
12.x expanded the range of SVC entries from 0x7F to 0xBF (with all new
entries being unused), so we can expand it to also match.
2021-04-07 00:55:33 -04:00
Lioncash
03dda80e2b
process_capability: Handle extended SVC range
...
12.x extended the range of SVC IDs, so we need to expand the range of
bits that need to be tested.
The upside of this is that we can eliminate a range check, given the
whole range is used.
2021-04-07 00:35:49 -04:00
bunnei
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
bunnei
10d6e9f32b
hle: kernel: Breakup InitializeMemoryLayout.
2021-03-23 18:47:16 -07:00
bunnei
fb91647bca
hle: kernel: k_memory_region_type: Minor code cleanup.
2021-03-23 18:42:04 -07:00
bunnei
4eac8703d2
hle: kernel: k_memory_region: Minor code cleanup.
2021-03-23 18:37:39 -07:00
bunnei
9032d21365
hle: kernel: k_memory_layout: Use pair instead of tuple.
2021-03-23 18:35:01 -07:00
bunnei
a32190d0c2
hle: kernel: k_system_control: Remove unnecessary inline.
2021-03-23 18:33:29 -07:00
bunnei
ab5995c7ae
common: common_sizes: Move sizes to the Common namespace.
2021-03-23 18:31:46 -07:00
bunnei
1d78190843
hle: kernel: Merge KMemoryRegionAttr and KMemoryRegionType.
...
- Fixes clang errors with mixed enum arithmetic.
2021-03-21 15:53:21 -07:00
bunnei
3ffbe50e7d
hle: kernel: Remove unused variable.
2021-03-21 15:47:24 -07:00
bunnei
fc5205fc84
hle: kernel: k_memory_region_type: Remove extra ".
2021-03-21 15:47:05 -07:00
bunnei
1996cae9cb
hle: kernel: k_memory_layout: Move KMemoryRegionAllocator out of global.
2021-03-21 14:45:13 -07:00
bunnei
343eaecd38
hle: kernel: k_memory_layout: Derive memory regions based on board layout.
2021-03-21 14:45:13 -07:00
bunnei
8d0ba7ee49
common: common_sizes: Move Invalid to Size_* prefix and add missing values.
2021-03-21 14:45:03 -07:00
bunnei
80688362cf
hle: kernel: k_memory_region: Refactor to simplify code.
2021-03-21 14:45:03 -07:00
bunnei
edbc505e52
hle: kernel: board: k_system_control: Extend to include memory region sizes.
2021-03-21 14:45:03 -07:00
bunnei
10265ad0e4
hle: kernel: board: Add secure_monitor module.
2021-03-21 14:45:03 -07:00
bunnei
28be8aec9a
common: Move common sizes to their own header for code reuse.
2021-03-21 14:45:03 -07:00
bunnei
01f04fee32
hle: kernel: k_address_space_info: Cleanup.
2021-03-21 14:45:02 -07:00
bunnei
f2e1441567
hle: kernel: Add k_trace module.
2021-03-21 14:45:02 -07:00
bunnei
5762517728
hle: kernel: KSystemControl: Update to reflect board-specific behavior.
2021-03-21 14:45:02 -07:00
bunnei
a439867f2c
hle: kernel: KMemoryManager: Add CalculateManagementOverheadSize.
2021-03-21 14:45:02 -07:00
bunnei
43a29b5803
hle: kernel: KMemoryManager: Add aliases.
2021-03-21 14:45:02 -07:00
bunnei
c17beefe3d
hle: kernel: Add architecture and board specific memory regions.
2021-03-21 14:45:02 -07:00
bunnei
3fb64da452
hle: kernel: KMemoryRegion: Derive region values.
2021-03-21 14:45:02 -07:00
bunnei
5872561077
hle: kernel: Migrate some code from Common::SpinLock to KSpinLock.
2021-03-21 14:45:02 -07:00
bunnei
541b4353e4
hle: kernel: Add initial KMemoryRegionType module.
2021-03-21 14:45:02 -07:00
bunnei
778e0f8ec1
hle: kernel: Move KMemoryRegion to its own module and update.
2021-03-21 14:45:02 -07:00
bunnei
8f7eb194af
common: Fiber: use a reference for YieldTo.
...
- Fixes another small leak.
2021-03-07 13:46:53 -08:00
bunnei
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
bunnei
a5ab85ac37
Revert "core: Switch to unique_ptr for usage of Common::Fiber."
2021-03-05 17:08:17 -08:00
bunnei
51fb0a6f96
core: Switch to unique_ptr for usage of Common::Fiber.
...
- With using unique_ptr instead of shared_ptr, we have more explicit ownership of the context.
- Fixes a memory leak due to circular reference of the shared pointer.
2021-02-27 11:56:04 -08:00
bunnei
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
ameerj
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
bunnei
93e20867b0
hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable.
2021-02-18 16:16:25 -08:00
bunnei
b1e27890e8
hle: kernel: Migrate MemoryManager to KMemoryManager.
2021-02-18 16:16:25 -08:00
bunnei
93109c870e
hle: kernel: Migrate PageLinkedList to KPageLinkedList.
2021-02-18 16:16:25 -08:00
bunnei
65e0178cc0
hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others.
2021-02-18 16:16:25 -08:00
bunnei
9e520e8f12
hle: kernel: Migrate SlabHeap to KSlabHeap.
2021-02-18 16:16:25 -08:00
bunnei
1d162f28d1
hle: kernel: Migrate MemoryLayout to KMemoryLayout.
2021-02-18 16:16:25 -08:00
bunnei
7ed5dd0d62
hle: kernel: Migrate AddressSpaceInfo to KAddressSpaceInfo.
2021-02-18 16:16:25 -08:00
bunnei
701ef616b2
hle: kernel: memory_manager: Rename AllocateContinuous to AllocateContinuous.
2021-02-18 16:16:24 -08:00