Commit Graph

7679 Commits

Author SHA1 Message Date
fe47243690 Merge pull request #4413 from wwylele/memory-global
Fix shared font addres; Remove global PhysicalToVirtualAddress
2018-11-13 00:14:24 -05:00
194118011a Memory: IO area is at most 4MB 2018-11-12 15:12:12 -05:00
c57ee36222 SVC: hide details in pimpl 2018-11-12 13:59:34 -05:00
aec8b1e375 SVC: use context and generic templates 2018-11-12 13:59:34 -05:00
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
d373a6430d SVC: move function_wrappers.h into kernel
It is only used by kernel/SVC
2018-11-12 13:59:34 -05:00
29ade3e610 Process: check source/target overlap for Map/Unmap 2018-11-11 12:39:05 -05:00
3db8915356 ldr_ro: properly map CRS/CRO buffer 2018-11-11 12:39:05 -05:00
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
Ben
7ac444447a Merge pull request #4425 from wwylele/fix-seed
filesys/ncch: prevent buffer overflow on calculating SHA256
2018-11-11 17:51:27 +01:00
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
5179915fb4 filesys/ncch: prevent buffer overflow on calculating SHA256 2018-11-10 22:58:32 -05:00
31c394e9b5 qt: Add help option to open yuzu folder 2018-11-09 17:00:14 +01:00
d0edb81182 Memory: convert PAddr for N3DS FCRAM extension 2018-11-09 10:40:04 -05:00
98ddea4ddd Kernel: correct MemoryState for TLS 2018-11-09 00:14:13 -05:00
5325388e24 SVC: QueryMemory merges similar VMA 2018-11-08 20:42:21 -05:00
a59920ed35 Merge pull request #4412 from tgsm/update-contributingmd
CONTRIBUTING.md: migrate to the wiki
2018-11-08 20:56:47 +05:30
39cbd4166c Merge pull request #4409 from valentinvanelslande/cro
ldr_ro: change std::tie to structured binding
2018-11-08 21:39:56 +08:00
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
8c65433ab5 Kernel, APT: SharedFont/SharedMemoryOnSharedDevice should always use old linear heap VAddr 2018-11-08 00:19:19 -05:00
df1ffeb34f CONTRIBUTING.md: migrate to the wiki 2018-11-08 00:15:55 -05:00
81cbc3fa15 Flatpak support (#4383)
* Initial flatpak support

* Fix compatibility list directory

* Hard-code SSH mount location

* Add workaround documentation

* Change SSH repo directory

* Change SSH repo directory (again)

* Fix variable name

* Remove temporary testing branch placeholder

* Use a flatpak-specific docker image

* Enable network access during the flatpak build so we can download compatibility list the right way

* Fix flatpak tag support

* Fix typo

* Use cloned git for the build

* Change SSH repo location

* Disable shallow git cloning, needed for tagged building
2018-11-07 21:33:36 -05:00
0f4a6e39c9 ldr_ro: change std::tie to structured binding 2018-11-07 13:38:52 -05:00
1444d60109 Merge pull request #4400 from wwylele/core-timing-global
CoreTiming: wrap into class
2018-11-06 20:04:56 -05:00
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
f852f9f219 Merge pull request #4395 from Hexagon12/tx-update-181102
dist/languages: Updated translations
2018-11-06 11:42:18 -05:00
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
9458e4d8ec CoreTiming: wrap into class 2018-11-04 10:26:38 -05:00
2d9dfe5bce Kernel: thread manager still has to be destructed first 2018-11-04 09:29:28 -05:00
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
ab07d44193 citra_qt/configuration: fix language configuration issues 2018-11-03 09:34:01 +08:00
edb7ef5e5f Updated translations (18/11/02) 2018-11-02 19:07:29 +02:00
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
fc84091d88 Service, Kernel: move named port list to kernel 2018-11-01 12:56:40 -04:00
ece96807c4 Kernel: move memory_regions into Kernel instance 2018-11-01 12:56:40 -04:00
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
773ec47629 Kernel: make config_mem and MapSharedPages members of KernelSystem 2018-11-01 12:56:40 -04:00
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
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
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
2183d0d6be core: use internal kernel pointer directly 2018-10-30 00:35:37 -04:00
bd4beb6558 Merge pull request #4386 from wwylele/codeset-class
Kernel/CodeSet: change struct to class
2018-10-30 00:30:50 -04:00
c97146226a LLE Mapped Buffer: Addressed comments. 2018-10-29 18:35:34 -04:00
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
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
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
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
96ee82c464 configure_general: Add an option to reset defaults 2018-10-27 22:43:29 +02:00
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