fbeaa330a3
kernel/process: Remove most allocation functions from Process' interface
...
In all cases that these functions are needed, the VMManager can just be
retrieved and used instead of providing the same functions in Process'
interface.
This also makes it a little nicer dependency-wise, since it gets rid of
cases where the VMManager interface was being used, and then switched
over to using the interface for a Process instance. Instead, it makes
all accesses uniform and uses the VMManager instance for all necessary
tasks.
All the basic memory mapping functions did was forward to the Process'
VMManager instance anyways.
2018-12-27 19:08:47 -05:00
795335af0f
Merge pull request #1928 from lioncash/caps
...
kernel: Handle kernel capability descriptors
2018-12-27 11:15:34 -05:00
8e23e40a72
Merge pull request #1929 from bunnei/fix-hid
...
hid: Fix SetNpadJoyHoldType and improve logging.
2018-12-27 11:04:56 -05:00
2991c747c9
Merge pull request #1945 from bunnei/fix-hid-horiz
...
npad: Remove code to invert input in horizontal mode.
2018-12-27 11:04:40 -05:00
7477c12fe2
Merge pull request #1949 from lioncash/unmap
...
kernel/vm_manager: Reset region attributes when unmapping a VMA
2018-12-27 11:04:26 -05:00
c643f364b4
am: Implement GetSaveDataSize and ExtendSaveData
...
These functions come in a pair and are needed by Smash Ultimate, Minecraft, and Skyrim, amongst others.
2018-12-27 00:18:00 -05:00
2e6b67a079
filesystem: Populate save data sizes from control data
2018-12-27 00:18:00 -05:00
4082c4eda6
savedata_factory: Partially implement IVFC save sizes using files
...
This stores a file in the save directory called '.yuzu_save_size' which stores the two save sizes (normal area and journaled area) sequentially as u64s.
2018-12-27 00:18:00 -05:00
0756f29a2c
loader: Add accessor for game control data
2018-12-27 00:16:55 -05:00
417e1ef09c
control_metadata: Update NACP fields with latest Switchbrew data
2018-12-27 00:16:55 -05:00
5c4259ec1a
control_metadata: Use value member instead of unique_ptr to store struct
...
Serves no actual purpose in this instance besides making NACP's copy assignment deleted, which is not intended behavior.
2018-12-27 00:16:55 -05:00
4a6ba58073
vfs: Add reinterpret_casts to WriteArray and Object
...
Allows these functions to compile when T is not u8.
2018-12-27 00:16:55 -05:00
1392597ede
kernel/vm_manager: Reset region attributes when unmapping a VMA
...
Like the other members related to memory regions, the attributes need to
be reset back to their defaults as well.
2018-12-26 20:15:29 -05:00
ae582b6669
Merge pull request #1849 from encounter/svcSetThreadActivity
...
svc: Implement SetThreadActivity (thread suspension)
2018-12-26 15:54:14 -05:00
7e622c5575
npad: Remove code to invert input in horizontal mode.
...
- This was incorrect, the game appears to handle this for us.
- Fixes horizontal mode with Puyo Puyo Tetris and Super Mario Odyssey.
2018-12-26 15:47:11 -05:00
9a22a94a51
Merge pull request #1886 from FearlessTobi/port-4164
...
Port citra-emu/citra#4164 : "citra_qt, video_core: Screenshot functionality"
2018-12-23 14:36:51 -05:00
f95f6c7d86
Merge pull request #1781 from DarkLordZach/applet-profile-select
...
am: Implement HLE profile selector applet
2018-12-23 14:35:13 -05:00
e75e8b9580
Merge pull request #1921 from ogniK5377/no-unit
...
Fixed uninitialized memory due to missing returns in canary
2018-12-21 14:12:54 -05:00
59ac3346eb
Merge pull request #1925 from lioncash/pid
...
kernel/{process, thread}: Amend behavior related to IDs
2018-12-21 13:45:27 -05:00
41cbd088c2
Merge pull request #1914 from lioncash/id
...
service/am: Unstub GetAppletResourceUserId
2018-12-21 13:43:51 -05:00
1120e0b4d2
hid: Fix SetNpadJoyHoldType and improve logging.
2018-12-21 13:37:39 -05:00
002ae08bbd
kernel/process: Hook up the process capability parser to the process itself
...
While we're at it, we can also toss out the leftover capability parsing
from Citra.
2018-12-21 07:05:34 -05:00
d09fb82113
kernel/process_capability: Handle debug capability flags
2018-12-21 07:05:34 -05:00
10824c5d63
kernel/process_capability: Handle handle table capability flags
...
This just specifies the handle table size. There's also a section of
reserved bits that are checked against.
2018-12-21 07:05:34 -05:00
e0e84aede0
kernel/process_capability: Handle kernel version capability flags
2018-12-21 07:05:34 -05:00
010bc677f3
kernel/process_capability: Handle program capability flags
2018-12-21 07:05:34 -05:00
0f216d20e3
kernel/process_capability: Handle interrupt capability flags
...
Similar to the service capability flags, however, we currently don't
emulate the GIC, so this currently handles all interrupts as being valid
for the time being.
2018-12-21 07:05:34 -05:00
3dc59b74ec
kernel/process_capability: Handle syscall capability flags
2018-12-21 07:05:34 -05:00
27caf71204
kernel/process_capability: Handle the priority mask and core mask flags
...
Handles the priority mask and core mask flags to allow building up the
masks to determine the usable thread priorities and cores for a kernel
process instance.
2018-12-21 07:05:34 -05:00
6ff5135521
kernel/process: Introduce process capability parsing skeleton
...
We've had the old kernel capability parser from Citra, however, this is
unused code and doesn't actually map to how the kernel on the Switch
does it. This introduces the basic functional skeleton for parsing
process capabilities.
2018-12-21 07:05:31 -05:00
4923df10cc
Merge pull request #1923 from ogniK5377/nfp-device-list
...
Device handle should not be a random id, instead it's the current npad id
2018-12-19 13:14:43 -05:00
80d36634e1
Merge pull request #1915 from lioncash/sm
...
service/sm: Improve debug log for RegisterService
2018-12-19 13:10:11 -05:00
b74eb88c68
kernel/svc: Handle thread handles within GetProcessId
...
If a thread handle is passed to svcGetProcessId, the kernel attempts to
access the process ID via the thread's instance's owning process.
Technically, this function should also be handling the kernel debug
objects as well, however we currently don't handle those kernel objects
yet, so I've left a note via a comment about it to remind myself when
implementing it in the future.
2018-12-19 12:16:15 -05:00
e73dd39413
Merge pull request #1907 from lioncash/attribute
...
kernel/svc: Implement svcSetMemoryAttribute
2018-12-19 11:50:50 -05:00
caab838bdb
svc: Implement svcSetMemoryAttribute
...
With all the basic backing functionality implemented, we can now unstub
svcSetMemoryAttribute.
2018-12-19 10:59:40 -05:00
622242e345
vm_manager: Add member function for setting memory attributes across an address range
...
This puts the backing functionality for svcSetMemoryAttribute in place,
which will be utilized in a following change.
2018-12-19 10:59:40 -05:00
603cc72168
vm_manager: Add member function for checking a memory range adheres to certain attributes, permissions and states
2018-12-19 10:59:36 -05:00
62d4377053
kernel/kernel: Use correct initial PID for userland Process instances
...
Starts the process ID counter off at 81, which is what the kernel itself
checks against internally when creating processes. It's actually
supposed to panic if the PID is less than 81 for a userland process.
2018-12-18 22:54:01 -05:00
0906302ca9
kernel/svc: Correct output parameter for svcGetThreadId
...
The service call uses a 64-bit value, just like svcGetProcessId. This
amends the function signature accordingly.
2018-12-18 22:38:26 -05:00
8435451093
kernel/thread: Make thread_id a 64-bit value
...
The kernel uses a 64-bit value for the thread ID, so we shouldn't be
using a 32-bit value.
2018-12-18 22:37:03 -05:00
43e1189688
kernel/svc: Correct output parameter for svcGetProcessId
...
svcGetProcessId's out parameter is a pointer to a 64-bit value, not a
32-bit one.
2018-12-18 22:30:56 -05:00
9b3a38e3d3
kernel/process: Make process_id a 64-bit value
...
In the actual kernel, this is a 64-bit value, so we shouldn't be using a
32-bit type to handle it.
2018-12-18 22:28:55 -05:00
807e7640aa
Device handle should not be a random id, instead it's the current npad id
...
Found during hardware testing
2018-12-19 14:16:30 +11:00
fdd649e2ef
Fixed uninitialized memory due to missing returns in canary
...
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
2018-12-19 12:52:32 +11:00
2a533f0067
service/sm: Improve debug log for RegisterService
...
Now it also indicates the name and max session count. This also gives a
name to the unknown bool. This indicates if the created port is supposed
to be using light handles or regular handles internally. This is passed
to the respective svcCreatePort parameter internally.
2018-12-18 18:22:22 -05:00
a2be49305d
yuzu, video_core: Screenshot functionality
...
Allows capturing screenshot at the current internal resolution (native for software renderer), but a setting is available to capture it in other resolutions. The screenshot is saved to a single PNG in the current layout.
2018-12-18 22:54:41 +01:00
39262921f2
Merge pull request #1913 from MerryMage/default-fpcr
...
kernel/thread: Set default fpcr
2018-12-18 14:13:57 -05:00
5bae002aaa
Merge pull request #1918 from MerryMage/cntfrq
...
arm_dynarmic: Set CNTFRQ value
2018-12-18 14:13:35 -05:00
eef6ce79a9
kernel/thread: Set default fpcr
2018-12-18 17:37:03 +00:00
fd2c42bfcd
arm_dynarmic: Set CNTFRQ value
2018-12-18 17:28:12 +00:00