Weiyi Wang
a854b23d9b
RPC: add missing include
2018-11-19 11:16:55 -05:00
Weiyi Wang
679dfd7cdf
Memory: remove CopyBlock with current process
2018-11-19 11:16:55 -05:00
Weiyi Wang
185a83f06d
Memory: remove ZeroBlock with current process
2018-11-19 11:16:55 -05:00
Weiyi Wang
4e99641a3b
Memory: remove WriteBlock with current process
2018-11-19 11:16:55 -05:00
Weiyi Wang
8871f5a4ac
Memory: remove ReadBlock with current process
2018-11-19 11:16:55 -05:00
Weiyi Wang
524364d95a
ldr_ro: pass process reference to memory operation
...
Note that not all memory operation is fixed. Specifically, u8/u16/u32 Read/Write is still using the current page tabel
2018-11-19 11:16:55 -05:00
Weiyi Wang
d4ba87d90a
Memory: remove GetMMIOHandler with current process
2018-11-19 11:16:55 -05:00
Weiyi Wang
7308b8d294
Memory: remove IsValidVirtualAddress with current process
2018-11-19 11:16:55 -05:00
Weiyi Wang
36cf104a02
Memory: replace GetPointerFromVMA with GetPointerForRasterizerCache
...
All usage of GetPointerFromVMA is to recover the pointer that is nulled by changing page type to RasterizerCachedMemory. Our rasterizer cache only works on linear heap and vram, so we can recover the pointer directly by address computation, instead of going through VMA table. Also removed a sanity check pointer!=nullptr in RasterizerMarkRegionCached(RasterizerCachedMemory=>Memory), as now the pointer is never null. The sanity check was added in f2a5a77 (#2797 ), which was originally necessary during VMA unmapping process, because the function is invloked by VMA after unmapping the page, which in turn invokes back to query the memory, forming a circular dependency. Now the dependency is resolved so the check is not necessary
2018-11-19 11:16:55 -05:00
Weiyi Wang and GitHub
2b768da531
Merge pull request #4433 from wwylele/vmmanager-simple
...
VMManager: remove shared_ptr<vector> backing type
2018-11-19 11:13:22 -05:00
Weiyi Wang and GitHub
a7d6bc4e84
Merge pull request #4441 from FearlessTobi/port-1688
...
Port yuzu-emu/yuzu#1688 : "service: Mark MakeFunctionString with the [[maybe_unused]] attribute."
2018-11-19 11:10:51 -05:00
Weiyi Wang and GitHub
803f783f07
Merge pull request #4427 from wwylele/query-memory-merge
...
SVC: QueryMemory merges similar VMA
2018-11-19 11:10:15 -05:00
Weiyi Wang and GitHub
471b4cf44f
Merge pull request #4436 from wwylele/p2ptr-boundary
...
Memory: GetPhysicalPointer should accept right open bound address
2018-11-19 11:05:42 -05:00
Weiyi Wang and GitHub
0d96c0b44e
Merge pull request #4439 from FearlessTobi/actually-port-1649
...
Port yuzu-emu/yuzu#1649 and yuzu-emu/yuzu#1653 : Changes to gl_resource_manager and gl_rasterizer
2018-11-19 11:05:10 -05:00
Weiyi Wang and GitHub
9d87360c01
Merge pull request #4440 from FearlessTobi/port-1705
...
Port yuzu-emu/yuzu#1705 : "Include QT imageformat dependencies with releases"
2018-11-19 11:01:54 -05:00
Weiyi Wang and GitHub
1bc253f1be
Merge pull request #4353 from zaksabeast/ips-patches
...
Add IPS patching
2018-11-18 13:39:41 -05:00
Weiyi Wang and GitHub
4d1c4f898b
Merge pull request #4324 from BreadFish64/android1
...
android: add initial android app
2018-11-16 21:40:57 -05:00
Weiyi Wang
95bbe2302b
Kernel/IPC: fix mapped buffer target address
2018-11-16 19:47:16 -05:00
Weiyi Wang
365eeb889f
Memory: GetPhysicalPointer should accept right open bound address
...
Also removed IO region check in GetPhysicalPointer as it doesn't make sense to get a pointer to MMIO
2018-11-16 10:27:30 -05:00
Weiyi Wang
d90094e8a7
Service: release shared memory object when finalize
...
Since last commit SharedMemory only reset source memory set on dtor, service should always release the ref as soon as possible to make the reset happen
2018-11-16 00:24:13 -05:00
Weiyi Wang
cfa9a322c7
Kernel/SharedMemory: set and reset source memory state
2018-11-16 00:24:08 -05:00
Weiyi Wang
b6ab4e466b
VMManager: remove all backing block related functions
...
The shared_ptr<vector> type backing memory is unused now, and is not expected to be used in the future
2018-11-16 00:16:13 -05:00
Weiyi Wang
7f9873d7ec
VMManager: change MapMemoryBlockToBase to use raw backing memory
...
And let ServerSession.MappedBufferContext hold the mapped memory
2018-11-16 00:16:13 -05:00
Weiyi Wang
0b8d2ecabe
IPC: store mapped buffer info in session context
...
So that it doesn't have to scan over the request buffer again on reply. This also allow us to store additional info like memory mapping
2018-11-16 00:16:13 -05:00
Weiyi Wang
7a564b904b
tests: use VMManager::MapBackingMemory
2018-11-16 00:16:13 -05:00
Weiyi Wang and GitHub
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 and GitHub
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 and GitHub
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
9e8d149ca7
Memory: remove unused VirtualToPhysical
2018-11-13 11:56:05 -05:00
Weiyi Wang
1388a44c41
GSP: uses a dedicate VirtualToPhysical converter
2018-11-13 11:24:46 -05:00
Weiyi Wang
12daaeedf1
Memory: Use the fixed PAddr directly in RasterizerFlushVirtualRegion
2018-11-13 11:24:46 -05:00
Weiyi Wang
248106d972
Skyeye: unstub cp15 virtual to physical address
2018-11-13 11:24:46 -05:00
Weiyi Wang and GitHub
b1f55c9cab
Merge pull request #4429 from wwylele/io-size
...
Memory: IO area is at most 4MB
2018-11-13 11:09:14 -05:00
Weiyi Wang and GitHub
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
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
5325388e24
SVC: QueryMemory merges similar VMA
2018-11-08 20:42:21 -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
Weiyi Wang and GitHub
1444d60109
Merge pull request #4400 from wwylele/core-timing-global
...
CoreTiming: wrap into class
2018-11-06 20:04:56 -05:00
Weiyi Wang and GitHub
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 and GitHub
f852f9f219
Merge pull request #4395 from Hexagon12/tx-update-181102
...
dist/languages: Updated translations
2018-11-06 11:42:18 -05:00
Weiyi Wang and GitHub
4228cd8b60
Merge pull request #4403 from wwylele/kernel-dtor-2
...
Kernel: thread manager still has to be destructed first
2018-11-04 12:08:40 -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 and Ben
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 and GitHub
7c3d325aff
Merge pull request #4389 from wwylele/kernel-global-4
...
Kernel: clean up the rest of global states
2018-11-01 14:09:27 -04: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 and GitHub
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 and GitHub
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 and GitHub
bd4beb6558
Merge pull request #4386 from wwylele/codeset-class
...
Kernel/CodeSet: change struct to class
2018-10-30 00:30:50 -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 and GitHub
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
Weiyi Wang and Pengfei Zhu
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 and GitHub
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 and GitHub
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 and GitHub
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 and GitHub
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 and GitHub
dd626bb5db
Merge pull request #4368 from FreddyFunk/unused-import
...
scripting/citra: Removed unused import binascii
2018-10-26 22:37:31 -04:00
Weiyi Wang and GitHub
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
Weiyi Wang and GitHub
27ab61f963
Merge pull request #4375 from FearlessTobi/port-1542
...
Port yuzu-emu/yuzu#1542 : "CMakeLists: Use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR"
2018-10-26 22:34:00 -04:00
Weiyi Wang
e5b93741d3
kernel/timer: add TimerManager for timer system states
2018-10-26 16:07:45 -04:00
Weiyi Wang
20ae37ba4f
kernel/Thread: move thread list into the manager
2018-10-26 16:07:45 -04:00
Weiyi Wang
7fc61920cc
kernel/Thread: move thread wake up table and callback handle into the manager
2018-10-26 16:07:45 -04:00
Weiyi Wang
0478bc3dee
Kernel/Thread: move thread queue, current thread, and scheduling related function into the manager
...
As we touched it, remove IPC::GetCommandBuffer
2018-10-26 16:07:11 -04:00
Weiyi Wang
876729ab52
kernel/thread: move next_thread_id into manager
2018-10-26 16:07:11 -04:00
Weiyi Wang
34f1fe088c
kernel/thread: add ThreadManager
2018-10-26 16:07:11 -04:00
Weiyi Wang and GitHub
f3ee5feb02
Merge pull request #4358 from wwylele/kernel-global-2
...
kernel: Eliminate global state in process and handle_table
2018-10-26 15:51:36 -04:00
Weiyi Wang and GitHub
902f7b51ac
Merge pull request #4367 from wwylele/cubeb-fix
...
cubeb_sink: ignore null-name device when selecting
2018-10-26 10:18:47 -04:00
Weiyi Wang
8ad6cbfde2
kernel/thread: change owner_process parameter to reference
...
To enforce a valid process object
2018-10-26 09:37:46 -04:00
Weiyi Wang
b4062abc11
cubeb_sink: ignore null-name device when selecting
...
We already ignore them on listing devices. We should do the same when selecting devices. This fix a crash when opening a specific device while there is a null device in the list
2018-10-26 09:17:44 -04:00
Weiyi Wang and GitHub
fa0e82b812
SeedDB: replace seek(tell, set) with seek(cur) ( #4344 )
2018-10-25 21:39:26 -04:00
Weiyi Wang
e5c5d1ecce
Kernel: change owner_process in Thread/SharedMemory to raw pointer
...
Otherwise circular ownership would form in Process->handle_table->thread->owner_process
2018-10-25 19:54:06 -04:00
Weiyi Wang
92b1a5c546
citra_qt: fix translation for opengl version error
...
variable in tr() won't trigger linguist to generate translation entry. Instead it needs a string literal
2018-10-25 14:30:46 -04:00
Weiyi Wang and GitHub
6742472133
Merge pull request #4235 from FearlessTobi/port-1259
...
Port various game_list changes from yuzu
2018-10-24 20:57:58 -04:00
Weiyi Wang and GitHub
218cbd7289
Merge pull request #4360 from FearlessTobi/cmakelists-changes
...
Port yuzu-emu/yuzu#1543 : "CMakeLists: Use target_compile_definitions instead of add_definitions to define CITRA_ENABLE_COMPATIBILITY_REPORTING"
2018-10-24 09:56:12 -04:00
Weiyi Wang
8d32843d68
thread/kernel: remove unused callback_id
...
we use the thread id for the same purpose now
2018-10-23 10:06:32 -04:00
Weiyi Wang
eb285c33fd
kernel: make handle table per-process
2018-10-22 21:32:34 -04:00
Weiyi Wang
fda2a5cf54
kernel/thread: use std::unordered_map for callback record
2018-10-22 21:32:34 -04:00
Weiyi Wang
5b45a3e1b5
Kernel/Timer: use unordered_map for callback recording
2018-10-22 21:32:34 -04:00
Weiyi Wang
8fb3d8ff38
kernel/process: move current process to kernel instance
...
Two functional change:
QueryProcessMemory uses the process passed from handle instead current_process
Thread::Stop() uses TLS from owner_process instead of current_process
2018-10-22 21:32:34 -04:00
Weiyi Wang
d9342622b0
kennel/process: move process list to kernel instance
2018-10-22 21:32:34 -04:00
Weiyi Wang
4238754d8c
kernel/process: move next_process_id to kernel instance
2018-10-22 09:30:48 -04:00
Weiyi Wang and GitHub
129ca865b3
Merge pull request #4355 from lioncash/query
...
svc: Correct vma_map boundary check within QueryProcessMemory
2018-10-22 09:27:46 -04:00
Weiyi Wang and GitHub
57ce5079bc
Merge pull request #4336 from wwylele/file-util-mingw
...
Only redefine some 64-bit file operation for MSVC
2018-10-21 20:34:48 -04:00