summaryrefslogtreecommitdiff
path: root/src/core (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Merge pull request #2519 from lioncash/signGravatar bunnei2019-05-272-5/+5
|\ \ \ \ \ | |_|_|/ / |/| | | | loader/nso, core/core_timing_util: Silence sign-comparison warning
| * | | | core_timing_util: Silence sign-comparison warningsGravatar Lioncash2019-05-251-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | We can just make the conversion explicit instead of implicit here to silence -Wsign-compare warnings.
| * | | | loader/nso: Silence sign-comparison warningGravatar Lioncash2019-05-251-1/+1
| | |_|/ | |/| | | | | | | | | | | | | | This was previously performing a size_t == int comparison. Silences a -Wsign-compare warning.
* | | | Merge pull request #2509 from lioncash/aocGravatar bunnei2019-05-251-19/+50
|\ \ \ \ | |/ / / |/| | | service/aoc_u: Minor cleanup
| * | | service/aoc: Avoid allocating and discarding dataGravatar Lioncash2019-05-231-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the code was accumulating data into a std::vector and then tossing all of it away if a setting was disabled. Instead, we can just check if it's disabled and do no work at all if possible. If it's enabled, then we can append to the vector and allocate. Unlikely to impact usage much, but it is slightly less sloppy with resources.
| * | | service/aoc: Remove unnecessary includesGravatar Lioncash2019-05-221-2/+0
| | | | | | | | | | | | | | | | | | | | Removes two header dependencies related to file handling that aren't actually used within the source file.
| * | | service/aoc: Pop all passed values where applicableGravatar Lioncash2019-05-221-12/+45
| |/ / | | | | | | | | | | | | | | | A few of the aoc service stubs/implementations weren't fully popping all of the parameters passed to them. This ensures that all parameters are popped and, at minimum, logged out.
* | | Merge pull request #2489 from FearlessTobi/port-4716Gravatar bunnei2019-05-244-9/+10
|\ \ \ | |/ / |/| | Port citra-emu/citra#4716: "HLE/IPC: HLEContext can memorize the client thread and use it for SleepClientThread"
| * | Address review commentGravatar Tobias2019-05-191-1/+1
| | | | | | | | | Co-Authored-By: Mat M. <mathew1800@gmail.com>
| * | HLE/IPC: HLEContext can memorize the client thread and use it for ↵Gravatar Weiyi Wang2019-05-184-9/+10
| | | | | | | | | | | | | | | | | | SleepClientThread This reduces the boilerplate that services have to write out the current thread explicitly. Using current thread instead of client thread is also semantically incorrect, and will be a problem when we implement multicore (at which time there will be multiple current threads)
* | | Merge pull request #2410 from lioncash/affinityGravatar bunnei2019-05-192-42/+58
|\ \ \ | | | | | | | | kernel/svc: Reorganize and fix up the initial handling of svcSetThreadCoreMask()
| * | | kernel/svc: Make svcCreateThread/svcStartThread/svcSleepThread/svcExitThread ↵Gravatar Lioncash2019-04-291-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | calls show up in the debug log These are actually quite important indicators of thread lifetimes, so they should be going into the debug log, rather than being treated as misc info and delegated to the trace log.
| * | | kernel/svc: Reorganize svcSetThreadCoreMask()Gravatar Lioncash2019-04-291-32/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes the code much nicer to follow in terms of behavior and control flow. It also fixes a few bugs in the implementation. Notably, the thread's owner process shouldn't be accessed in order to retrieve the core mask or ideal core. This should be done through the current running process. The only reason this bug wasn't encountered yet is because we currently only support running one process, and thus every owner process will be the current process. We also weren't checking against the process' CPU core mask to see if an allowed core is specified or not. With this out of the way, it'll be less noisy to implement proper handling of the affinity flags internally within the kernel thread instances.
| * | | kernel/thread: Update thread processor ID flagsGravatar Lioncash2019-04-292-7/+16
| | | | | | | | | | | | | | | | Adds the missing flags to the enum and documents them.
* | | | Merge pull request #2439 from lioncash/audrenGravatar Hexagon122019-05-192-51/+299
|\ \ \ \ | | | | | | | | | | service/audren_u: Get rid of magic values within GetAudioRendererWorkBufferSize
| * | | | service/audren_u: Handle variadic command buffers in GetWorkBufferSize()Gravatar Lioncash2019-04-302-17/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also introduced in REV5 was a variable-size audio command buffer. This also affects how the size of the work buffer should be determined, so we can add handling for this as well. Thankfully, no other alterations were made to how the work buffer size is calculated in 7.0.0-8.0.0. There were indeed changes made to to how some of the actual audio commands are generated though (particularly in REV7), however they don't apply here.
| * | | | service/audren_u: Handle version 2 of performance frame info in ↵Gravatar Lioncash2019-04-302-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GetWorkBufferSize() Introduced in REV5. This is trivial to add support for, now that everything isn't a mess of random magic constant values. All this is, is a change in data type sizes as far as this function cares.
| * | | | service/audren_u: Clean up work buffer calculationsGravatar Lioncash2019-04-301-49/+214
| | |_|/ | |/| | | | | | | | | | | | | | | | | | "Unmagics" quite a few magic constants within this code, making it much easier to understand. Particularly given this factors out specific sections into their own self-contained lambda functions.
* | | | Merge pull request #2463 from lioncash/setGravatar Hexagon122019-05-191-34/+22
|\ \ \ \ | | | | | | | | | | service/set: Correct and simplify behavior related to copying language codes
| * | | | service/set: Correct and simplify behavior related to copying language codesGravatar Lioncash2019-05-091-34/+22
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This corrects cases where it was possible to write more entries into the write buffer than were requested. Now, we check the size of the buffer before actually writing into them. We were also returning the wrong value for GetAvailableLanguageCodeCount2(). This was previously returning 64, but only 17 should have been returned. 64 entries is the size of the static array used in MakeLanguageCode() within the service binary itself, but isn't the actual total number of language codes present.
* | | | Merge pull request #2487 from lioncash/service-returnGravatar Hexagon122019-05-191-0/+2
|\ \ \ \ | | | | | | | | | | service/am: Add missing return in error case for IStorageAccessor's Read/Write()
| * | | | service/am: Add missing return in error case for IStorageAccessor's ↵Gravatar Lioncash2019-05-181-0/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | Read()/Write(). Previously this would fall through and return successfully, despite being an out of bounds read or write.
* | | | Merge pull request #2490 from lioncash/floatGravatar Hexagon122019-05-191-1/+1
|\ \ \ \ | | | | | | | | | | ipc_helpers: Amend floating-point type in Pop<double> specialization
| * | | | ipc_helpers: Amend floating-point type in Pop<double> specializationGravatar Lioncash2019-05-181-1/+1
| |/ / / | | | | | | | | | | | | | | | | Currently, this overload isn't used, so this wasn't actually hit in any code, only the float overload is used.
* | | | Merge pull request #2486 from lioncash/resetnameGravatar Sebastian Valle2019-05-1918-31/+32
|\ \ \ \ | | | | | | | | | | core/kernel/object: Rename ResetType enum members for clarity
| * | | | core/kernel/object: Rename ResetType enum membersGravatar Lioncash2019-05-1818-31/+32
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renames the members to more accurately indicate what they signify. "OneShot" and "Sticky" are kind of ambiguous identifiers for the reset types, and can be kind of misleading. Automatic and Manual communicate the kind of reset type in a clearer manner. Either the event is automatically reset, or it isn't and must be manually cleared. The "OneShot" and "Sticky" terminology is just a hold-over from Citra where the kernel had a third type of event reset type known as "Pulse". Given the Switch kernel only has two forms of event reset types, we don't need to keep the old terminology around anymore.
* / / / kernel/svc: Mark GetThreadList() and UnmapProcessCodeMemory() as internally ↵Gravatar Lioncash2019-05-181-4/+4
|/ / / | | | | | | | | | | | | | | | | | | | | | linked These are only used from within this translation unit, so they don't need to have external linkage. They were intended to be marked with this anyways to be consistent with the other service functions.
* | | Merge pull request #2437 from lioncash/audctlGravatar bunnei2019-05-091-2/+2
|\ \ \ | | | | | | | | service/audctl: Update documentation comments to be relative to 8.0.0
| * | | service/audctl: Update documentation comments to be relative to 8.0.0Gravatar Lioncash2019-04-271-2/+2
| |/ / | | | | | | | | | The state of these service calls are still the same in version 8.0.0.
* | | Merge pull request #2445 from FearlessTobi/port-4749Gravatar bunnei2019-05-092-9/+9
|\ \ \ | | | | | | | | Port citra-emu/citra#4749: "web_service: Misc fixes"
| * | | core/telemetry_session: Only create the backend when we really need itGravatar zhupengfei2019-05-042-9/+9
| | | | | | | | | | | | | | | | The backend is not used until we decide to submit the testcase/telemetry, and creating it early prevents users from updating the credentials properly while the games are running.
* | | | Merge pull request #2453 from lioncash/enumGravatar bunnei2019-05-091-9/+0
|\ \ \ \ | | | | | | | | | | core/memory: Remove unused FlushMode enum
| * | | | core/memory: Remove unused FlushMode enumGravatar Lioncash2019-05-071-9/+0
| |/ / / | | | | | | | | | | | | | | | | Recent changes to memory-related code resulted in this being unused, so we can remove it.
* / / / core/frontend/emu_window: Make GraphicsContext's destructor virtualGravatar Lioncash2019-05-042-0/+4
|/ / / | | | | | | | | | | | | This class is used in a polymorphic context, so destruction of the context will lead to undefined behavior if the destructor isn't virtual.
* | | loader/nso: Remove left-in debug pragmaGravatar Lioncash2019-04-301-2/+0
| | | | | | | | | | | | Unintentionally introduced in 552d5071fa171165e4054392d8bb6bf2ecc924e2
* | | Merge pull request #2412 from lioncash/systemGravatar bunnei2019-04-283-7/+11
|\ \ \ | |/ / |/| | kernel/vm_manager: Remove usages of global system accessors
| * | kernel/vm_manager: Remove usages of global system accessorsGravatar Lioncash2019-04-163-7/+11
| | | | | | | | | | | | | | | Makes the dependency on the system instance explicit within VMManager's interface.
* | | Merge pull request #2416 from lioncash/waitGravatar bunnei2019-04-246-44/+50
|\ \ \ | | | | | | | | kernel/svc: Clean up wait synchronization related functionality
| * | | kernel/thread: Unify wait synchronization typesGravatar Lioncash2019-04-176-38/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a holdover from Citra, where the 3DS has both WaitSynchronization1 and WaitSynchronizationN. The switch only has one form of wait synchronizing (literally WaitSynchonization). This allows us to throw out code that doesn't apply at all to the Switch kernel. Because of this unnecessary dichotomy within the wait synchronization utilities, we were also neglecting to properly handle waiting on multiple objects. While we're at it, we can also scrub out any lingering references to WaitSynchronization1/WaitSynchronizationN in comments, and change them to WaitSynchronization (or remove them if the mention no longer applies).
| * | | kernel/svc: Migrate svcCancelSynchronization behavior to a thread functionGravatar Lioncash2019-04-173-7/+17
| |/ / | | | | | | | | | | | | | | | | | | The actual behavior of this function is slightly more complex than what we're currently doing within the supervisor call. To avoid dumping most of this behavior in the supervisor call itself, we can migrate this to another function.
* | | Merge pull request #2424 from FernandoS27/compatGravatar bunnei2019-04-242-0/+2
|\ \ \ | | | | | | | | Allow picking a Compatibility Profile for OpenGL.
| * | | Allow picking a Compatibility Profile for OpenGL.Gravatar Fernando Sahmkow2019-04-202-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This option allows picking the compatibility profile since a lot of bugs are fixed in it. We devs will use this option to easierly debug current problems in our Core implementation.:wq
* | | | Merge pull request #2228 from DarkLordZach/applet-manager-p1Gravatar bunnei2019-04-2421-112/+653
|\ \ \ \ | | | | | | | | | | applets: Add AppletManager and implement PhotoViewer and Error applets
| * | | | web_browser: Make OpenPage non-constGravatar Zach Hilman2019-04-1710-18/+23
| | | | |
| * | | | main: Add GMainWindow hooks for Error displayGravatar Zach Hilman2019-04-172-3/+3
| | | | |
| * | | | general_backend: Move StubApplet and add backend PhotoViewerGravatar Zach Hilman2019-04-172-1/+102
| | | | |
| * | | | general_frontend: Add frontend scaffold for PhotoViewer appletGravatar Zach Hilman2019-04-172-0/+55
| | | | |
| * | | | frontend: Add frontend receiver for Error appletGravatar Zach Hilman2019-04-173-2/+79
| | | | |
| * | | | applets: Add Error appletGravatar Zach Hilman2019-04-173-24/+224
| | | | | | | | | | | | | | | Responsible for displaying error codes and messages
| * | | | applets: Port current applets to take frontend in constructorGravatar Zach Hilman2019-04-176-14/+16
| | | | | | | | | | | | | | | As opposed to using Core::System::GetInstance()