Weiyi Wang
4add509b20
audio_core/hle: move implementation of LoadComponent
2018-12-21 20:49:21 -05:00
Weiyi Wang
df8aaee965
DSP_DSP: avoid global in ReadPipe
2018-12-21 20:49:20 -05:00
Weiyi Wang
daf23eca2e
DSP_DSP: avoid global in WriteProcessPipe
2018-12-21 20:49:20 -05:00
Weiyi Wang
c9736b3300
audio_core/hle,lle: implement SetSemaphore
2018-12-21 20:49:20 -05:00
Weiyi Wang
14eb3561de
audio_core/hle: move implementation of RecvDataIsReady
2018-12-21 20:49:19 -05:00
Weiyi Wang
7f568a3c19
DSP/HLE: move implementation of RecvData to audio_core, behind common interface
2018-12-21 20:49:19 -05:00
Pengfei Zhu
eabc9727d8
Merge pull request #4468 from citra-emu/multiplayer-v4/main
...
Multiplayer version 4
2018-12-22 09:45:28 +08:00
zhupengfei
9d062d63da
network, citra_qt: Give moderation permission to community mods
...
Based on the `roles` payload in the JWT, the rooms will now give mod permission to Citra Community Moderators. To notify the client of its permissions, a new response, IdJoinSuccessAsMod is added, and there's now a new RoomMember::State called Moderator.
2018-12-15 20:28:03 +08:00
zhupengfei
c396e3c6e5
network: check Console ID conflicts
...
As Console ID can be sensitive data sometimes, this implementation sent a SHA256 hash of it instead.
2018-12-15 11:02:47 +08:00
Weiyi Wang
b49f2d2958
APT: enable LLE applet
2018-12-10 22:25:02 -05:00
Weiyi Wang
88161b8ac6
Memory: register page tables into a list for rasterizer cache marking
2018-12-10 22:13:10 -05:00
Weiyi Wang
643b7d4dcb
Memory: move memory setup into MemorySystem
2018-12-10 22:01:09 -05:00
Lioncash
dd2cbca3f4
hle/service: Remove unnecessary using declarations
...
Only one usage of the specified objects made use of the lack of
namespacing. Given the low usage, we can just remove these.
2018-12-08 14:52:30 +01:00
Lioncash
a32725540c
hle/service, hle/sm: Use structured bindings where applicable
...
Gets rid of the need to keep the variables separate from their actual
initialization spots.
2018-12-08 14:49:53 +01:00
Lioncash
0cb7654d60
hle/service, hle/sm: Use structured bindings where applicable
...
Gets rid of the need to keep the variables separate from their actual
initialization spots.
2018-12-08 14:48:01 +01:00
bunnei
edbdbf0ba1
Merge pull request #4480 from wwylele/memory-global-2
...
Memory: eliminate global state
2018-12-06 19:17:28 -05:00
Weiyi Wang
556ac5c075
Merge pull request #4469 from shutterbug2000/httpAddSet
...
Add HTTP_C::AddPostDataAscii
2018-12-06 14:28:56 -05:00
Weiyi Wang
23bad5d398
fix clang-format
2018-12-06 13:30:58 -05:00
Weiyi Wang
7e8ba6ed8e
Memory: move memory chunk into pImpl and make them dynamically allocated
...
Otherwise MSVC would give out-of-memory error on compile time
2018-12-06 13:30:47 -05:00
Weiyi Wang
ac1cda21c3
Address code style comments
2018-12-05 20:24:37 -05:00
Weiyi Wang
c6b3186475
Memory: IsValidVirtualAddress can be global
2018-12-05 20:21:14 -05:00
Weiyi Wang
42edab01d9
Memory: move states into class
2018-12-05 20:21:14 -05:00
Weiyi Wang
2582d64fb3
Memory: move block operations into class
2018-12-05 20:21:14 -05:00
Weiyi Wang
323990d402
Memory: move Read/Write8/16/32/64 and ReadCString into class
2018-12-05 20:21:14 -05:00
Weiyi Wang
1ec9ed6827
LDR_RO: pass memory in CROHelper
2018-12-05 20:21:14 -05:00
Weiyi Wang
76e0a4ece7
Memory: move GetPointer into class
2018-12-05 20:21:14 -05:00
Weiyi Wang
405218c3a7
Memory: move IsValidVirtualAddress into class
2018-12-05 20:21:14 -05:00
Weiyi Wang
296c458e0e
Memory: move GetPhysicalPointer and IsValidPhysicalAddress into class
2018-12-05 20:21:14 -05:00
Weiyi Wang
8c618c3fc3
Memory: move PageTable functions into class
2018-12-05 20:16:42 -05:00
Weiyi Wang
b199b7ada9
Memory: move GetFCRAMOffset into MemorySystem
2018-12-05 20:16:42 -05:00
Weiyi Wang
8118be6615
Kernel: pass in MemorySystem
2018-12-05 20:16:42 -05:00
Weiyi Wang
76944ec0e0
Merge pull request #4279 from FearlessTobi/better-mii-stub
...
applets: stub mii selector to always return a standard mii
2018-12-01 19:41:21 -05:00
Weiyi Wang
7e90abec78
Merge pull request #4442 from wwylele/memory-no-kernel
...
Memory: decouple from Kernel
2018-11-28 11:24:41 -05:00
fearlessTobi
48239be22c
mii_selector: Use BitField where possible
2018-11-27 14:57:51 +01:00
Weiyi Wang
2678c1a945
Merge pull request #4462 from FearlessTobi/fix-my-shit
...
ir_user: Remove ArrayToString() calls
2018-11-26 14:43:07 -05:00
fearlessTobi
5121fadb4f
ir:/movie: Replace for-loops with fmt::join
2018-11-26 20:04:18 +01:00
shutterbug2000
a7bbe60c18
Put AddPostDataAscii in the function list
2018-11-25 15:47:37 -06:00
shutterbug2000
4c198591d5
Add HTTP_C::AddPostDataAscii
2018-11-25 15:29:04 -06:00
Lioncash
067f09b41d
kernel/shared_memory: std::move the string parameter in SetName()
...
This avoids a potential reallocation.
2018-11-24 10:07:11 -05:00
fearlessTobi
fe99e5a51e
mii_selector: map raw data to the MiiResult struct
2018-11-24 14:35:06 +01:00
Weiyi Wang
210e558bea
Merge pull request #4456 from FearlessTobi/port-1767
...
Port yuzu-emu/yuzu#1734 and yuzu-emu/yuzu#1767 : Minor changes to "kernel"
2018-11-24 00:04:42 -05:00
bunnei
dc16ba009e
Merge pull request #4444 from FearlessTobi/port-1684
...
Port yuzu-emu/yuzu#1684 : "common/string_util: Minor cleanup"
2018-11-23 23:13:39 -05:00
Lioncash
86c36cb176
kernel/shared_memory: Make Map() and Unmap() take the target process by reference rather than as a pointer
...
Both member functions assume the passed in target process will not be
null. Instead of making this assumption implicit, we can change the
functions to be references and enforce this at the type-system level.
2018-11-23 17:00:12 +01:00
Lioncash
0f544af89a
kernel/shared_memory: Add a const qualified member function overload for GetPointer()
...
Given this doesn't mutate instance state, we can provide a
const-qualified variant as well.
2018-11-23 16:38:18 +01:00
Lioncash
1cb9bea504
kernel/shared_memory: Make data members private
...
Rather than allow unfettered access to the class internals, we hide all
members by default and create and API that other code can operate
against.
2018-11-23 16:20:18 +01:00
Lioncash
662c3ff684
kernel/handle_table: Move private static functions into the cpp file
...
These don't depend on class state, and are effectively implementation
details, so they can go into the cpp file .
2018-11-23 15:58:12 +01:00
Lioncash
83f6e9ea72
kernel/handle_table: Default destructor in the cpp file
...
We don't need to potentially inline the teardown logic of all of the
handle instances.
2018-11-23 15:58:07 +01:00
fearlessTobi
fc51a6fd08
Fix functions which used Common::ArrayToString
2018-11-20 15:05:54 +01:00
Weiyi Wang
679dfd7cdf
Memory: remove CopyBlock 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
7308b8d294
Memory: remove IsValidVirtualAddress with current process
2018-11-19 11:16:55 -05:00
Weiyi Wang
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
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
803f783f07
Merge pull request #4427 from wwylele/query-memory-merge
...
SVC: QueryMemory merges similar VMA
2018-11-19 11:10:15 -05:00
Sebastian Valle
b1fa9c0a7c
Merge pull request #4434 from wwylele/shared-memory-state
...
Kernel/SharedMemory: set and reset source memory state
2018-11-18 12:23:21 -05:00
Lioncash
39fcc3a589
service: Mark MakeFunctionString with the [[maybe_unused]] attribute.
...
When yuzu is compiled in release mode this function is unused, however,
when compiled in debug mode, it's used within a LOG_TRACE statement.
This prevents erroneous compilation warnings about an unused function
(that isn't actually totally unused).
2018-11-17 16:41:10 +01:00
bunnei
7f727177bf
Merge pull request #4431 from wwylele/no-v2p
...
Memory: remove VirtualToPhysicalAddress
2018-11-16 23:28:33 -08:00
Ben
b90ff739a0
Add CheatEngine and support for Gateway cheats ( #4406 )
...
* Add CheatEngine; Add support for Gateway cheats; Add Cheat UI
* fix a potential crash on some systems
* fix substr with negative length
* Add Joker to the NonOp comp handling
* Fixup JokerOp
* minor fixup in patchop; add todo for nested loops
* Add comment for PadState member variable in HID
* fix: stol to stoul in parsing cheat file
* fix misplaced parsing of values; fix patchop code
* add missing break
* Make read_func and write_func a template parameter
2018-11-16 18:01:10 -07:00
Weiyi Wang
95bbe2302b
Kernel/IPC: fix mapped buffer target address
2018-11-16 19:47:16 -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
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
1388a44c41
GSP: uses a dedicate VirtualToPhysical converter
2018-11-13 11:24:46 -05: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
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
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
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
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
fearlessTobi
6e6c437a52
applets: stub mii selector to always return a standard mii
...
To obtain the data, the LLEd mii selector of system version 11.8.0 was used.
In AppletManager::GlanceParameter, the following code was added to write the returned buffer data to a file:
if (parameter.buffer.size() == 132) {
std::u16string name(10, '\0');
std::memcpy(name.data(), parameter.buffer.data() + 0x26, 10 * sizeof(u16));
name = std::u16string(name.data());
FileUtil::IOFile file{fmt::format("{}.mii", Common::UTF16ToUTF8(name)), "wb"};
file.WriteBytes(parameter.buffer.data(), parameter.buffer.size());
}
Then "xxd -i" was used on the file to convert it to a hex array.
2018-10-27 12:23:24 +02: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