1
0
Fork 0
Commit Graph

6006 Commits

Author SHA1 Message Date
Weiyi Wang 560df843b1
Merge pull request #4405 from wwylele/svc-global
SVC: new wrapper template & pass system reference across the SVC barrier
2018-11-16 00:07:50 -05:00
Weiyi Wang a51d7430d7
Merge pull request #4408 from wwylele/ro-map
ldr_ro: properly map CRS/CRO buffer
2018-11-16 00:07:33 -05:00
Weiyi Wang ecc1c575d5
Merge pull request #4426 from wwylele/signed-bitfield
Common/Bitfield: store value as unsigned type
2018-11-16 00:07:16 -05:00
Weiyi Wang b1f55c9cab
Merge pull request #4429 from wwylele/io-size
Memory: IO area is at most 4MB
2018-11-13 11:09:14 -05:00
Tobias 34e1250ccc
citra_qt: Add Amiibo hotkeys, notify user of loading errors (#4387) 2018-11-13 14:58:05 +01:00
Weiyi Wang fe47243690
Merge pull request #4413 from wwylele/memory-global
Fix shared font addres; Remove global PhysicalToVirtualAddress
2018-11-13 00:14:24 -05:00
Weiyi Wang 194118011a Memory: IO area is at most 4MB 2018-11-12 15:12:12 -05:00
Weiyi Wang c57ee36222 SVC: hide details in pimpl 2018-11-12 13:59:34 -05:00
Weiyi Wang aec8b1e375 SVC: use context and generic templates 2018-11-12 13:59:34 -05:00
Weiyi Wang 28513c5177 ResultCode: use default copy assignment
Our definition of the copy assignment is equivalent to the default one, but prevents the type being trivially copyable
2018-11-12 13:59:34 -05:00
Weiyi Wang d373a6430d SVC: move function_wrappers.h into kernel
It is only used by kernel/SVC
2018-11-12 13:59:34 -05:00
Weiyi Wang 29ade3e610 Process: check source/target overlap for Map/Unmap 2018-11-11 12:39:05 -05:00
Weiyi Wang 3db8915356 ldr_ro: properly map CRS/CRO buffer 2018-11-11 12:39:05 -05:00
Weiyi Wang 617b388354 Kernel/Process: implement prvileged Map/Unmap
This is used by svcControlProcessMemory and maps memory as Locked/AliasCode pair.

Also fixed a bug where map didn't apply specified permissions to the alias memory
2018-11-11 12:39:05 -05:00
Ben f43524fff1
Merge pull request #4415 from wwylele/tls-state
Kernel: correct MemoryState for TLS
2018-11-11 17:53:18 +01:00
Weiyi Wang 3d73b8d694 Common/Bitfield: store value as unsigned type
Storing signed type causes the following behaviour: extractValue can do overflow/negative left shift. Now it only relies on two implementation-defined behaviours (which are almost always defined as we want): unsigned->signed conversion and signed right shift
2018-11-10 23:42:39 -05:00
Weiyi Wang 5179915fb4 filesys/ncch: prevent buffer overflow on calculating SHA256 2018-11-10 22:58:32 -05:00
Weiyi Wang d0edb81182 Memory: convert PAddr for N3DS FCRAM extension 2018-11-09 10:40:04 -05:00
Weiyi Wang 98ddea4ddd Kernel: correct MemoryState for TLS 2018-11-09 00:14:13 -05:00
Weiyi Wang 2654a679b3 Memory: replace PhysicalToVirtualAddress with a more dedicated function
There is no external use of PhysicalToVirtualAddress any more, so it there is no need to have a generic function that handles all physical regions. Also, the previous APT change makes it possible that linear heap has some regions mapped to old and new VAddr regions at the same time, so we need to check both region and mark cached for the mapped one. RasterizerMarkRegionCached would skip the unmapped one in its loop
2018-11-08 00:19:57 -05:00
Weiyi Wang 8c65433ab5 Kernel, APT: SharedFont/SharedMemoryOnSharedDevice should always use old linear heap VAddr 2018-11-08 00:19:19 -05:00
Valentin Vanelslande 0f4a6e39c9
ldr_ro: change std::tie to structured binding 2018-11-07 13:38:52 -05:00
Weiyi Wang 1444d60109
Merge pull request #4400 from wwylele/core-timing-global
CoreTiming: wrap into class
2018-11-06 20:04:56 -05:00
Weiyi Wang 2067946f59
Kernel: reimplement memory management on physical FCRAM (#4392)
* Kernel: reimplement memory management on physical FCRAM

* Kernel/Process: Unmap does not care the source memory permission

What game usually does is after mapping the memory, they reprotect the source memory as no permission to avoid modification there

* Kernel/SharedMemory: zero initialize new-allocated memory

* Process/Thread: zero new TLS entry

* Kernel: fix a bug where code segments memory usage are accumulated twice

It is added to both misc and heap (done inside HeapAlloc), which results a doubled number reported by svcGetProcessInfo. While we are on it, we just merge the three number misc, heap and linear heap usage together, as there is no where they are distinguished.

Question: is TLS page also added to this number?

* Kernel/SharedMemory: add more object info on mapping error

* Process: lower log level; SharedMemory: store phys offset

* VMManager: add helper function to retrieve backing block list for a range
2018-11-06 15:00:47 -05:00
Weiyi Wang 9458e4d8ec CoreTiming: wrap into class 2018-11-04 10:26:38 -05:00
Weiyi Wang 2d9dfe5bce Kernel: thread manager still has to be destructed first 2018-11-04 09:29:28 -05:00
Weiyi Wang 57e1f47a52 Kernel: destruct thread/timer managers after processes (#4399)
Processes can keep some Thread/Timer object alive while the manager is already destructed, resulting use-after-free in Thread::Stop and Timer::dtor. To resolve this, the manager objects should be destructed after all related object destructed.
Fixes a bug where quiting citra causes crash while the game is using a Timer.
2018-11-04 10:24:37 +01:00
Weiyi Wang fc84091d88 Service, Kernel: move named port list to kernel 2018-11-01 12:56:40 -04:00
Weiyi Wang ece96807c4 Kernel: move memory_regions into Kernel instance 2018-11-01 12:56:40 -04:00
Weiyi Wang 263290d48c HLE: move SharedPage into Kernel
similar to config_mem, kernel is responsible for setting up this
2018-11-01 12:56:40 -04:00
Weiyi Wang 773ec47629 Kernel: make config_mem and MapSharedPages members of KernelSystem 2018-11-01 12:56:40 -04:00
Weiyi Wang 95790218f2 HLE: move config_mem to kernel
ConfigMem is initialized in kernel and only used by kernel. It is also likely how it works on real 3DS
2018-11-01 11:21:34 -04:00
Weiyi Wang a753b9c6cc
Merge pull request #4228 from NarcolepticK/lle-mapped-buffer
LLE Mapped Buffer: Add unmapping of write buffer, zero-size, and multiple page handling
2018-10-30 19:18:11 -04:00
Weiyi Wang 445538c2cf
Merge pull request #4371 from wwylele/kernel-global-3
Kernel: eliminate global state for threads and timers
2018-10-30 00:36:10 -04:00
Weiyi Wang 2183d0d6be core: use internal kernel pointer directly 2018-10-30 00:35:37 -04:00
Weiyi Wang bd4beb6558
Merge pull request #4386 from wwylele/codeset-class
Kernel/CodeSet: change struct to class
2018-10-30 00:30:50 -04:00
NarcolepticK c97146226a LLE Mapped Buffer: Addressed comments. 2018-10-29 18:35:34 -04:00
Weiyi Wang f63098ccdf Kernel/CodeSet: change struct to class
Fix a warning where class definition and forward declaration mismatch. CodeSet is a kernel object and have ctor/dtor/private members like others, so in convention it should be a class
2018-10-28 10:35:40 -04:00
Weiyi Wang 67888f92e5
Merge pull request #4348 from B3n30/native_firm_keys
Load keys from save mode native firm
2018-10-28 10:24:29 -04:00
bunnei 9d05fbbef4
Merge pull request #4369 from FearlessTobi/compat-new
compatdb: Use a seperate endpoint for testcase submission
2018-10-28 03:53:10 -04:00
bunnei 3219bdb30d
Merge pull request #4382 from FearlessTobi/reset-defaults
configure_general: Add an option to reset defaults
2018-10-28 03:52:10 -04:00
fearlessTobi 96ee82c464 configure_general: Add an option to reset defaults 2018-10-27 22:43:29 +02:00
fearlessTobi 236a7dba7e Move "Report compatibility" button to Emulation tab 2018-10-27 12:20:03 +02:00
fearlessTobi b7117bf050 compatdb: Use a seperate endpoint for testcase submission 2018-10-27 12:20:03 +02:00
Weiyi Wang 5b7d21c3cd FileSys/DelayGenerator: add missing #include and virtual dtor (#4363)
* FileSys/DelayGenerator: add missing #include and virtual dtor

Added the needed include so that it won't cause error if another file includes this without including the depended files

Deleting a virtual class via base type without virtual dtor is UB, which happens inFileBackend.

* FileSys/DelayGenerator: move function definition into cpp file/n/nTo avoid generating vtable in all units that includes the header file

* filesys/delay_generator: rearrange #include
2018-10-27 12:46:03 +08:00
Weiyi Wang fa46dbdf0b
Merge pull request #4376 from FearlessTobi/port-1571
Port yuzu-emu/yuzu#1571: "graphic_breakpoints: Correct translation of strings in BreakpointModel's data() function"
2018-10-26 22:40:55 -04:00
Weiyi Wang 724b458a83
Merge pull request #4373 from FearlessTobi/port-1553
Port yuzu-emu/yuzu#1553: "common: Remove memory_util.h/.cpp"
2018-10-26 22:38:18 -04:00
Weiyi Wang f274340001
Merge pull request #4374 from FearlessTobi/frontend-ports
Port various frontend cleanups from yuzu
2018-10-26 22:38:07 -04:00
Weiyi Wang 477cda1a7e
Merge pull request #4364 from wwylele/gl-error-tr
citra_qt: fix translation for opengl version error
2018-10-26 22:37:47 -04:00
Weiyi Wang 59cb0ec570
Merge pull request #4359 from FearlessTobi/port-webstuff
web_service: Port yuzu-emu/yuzu#1465 and Port yuzu-emu/yuzu#1473 (Many self-contained changes)
2018-10-26 22:34:51 -04:00