summaryrefslogtreecommitdiff
path: root/src/core (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2382 from lioncash/tableGravatar bunnei2019-04-1527-57/+262
|\ | | | | service: Update service function tables
| * service: Update service function tablesGravatar Lioncash2019-04-1127-57/+262
| | | | | | | | Updates function tables based off information from SwitchBrew.
* | Merge pull request #2393 from lioncash/svcGravatar bunnei2019-04-154-2/+274
|\ \ | | | | | | kernel/svc: Implement svcMapProcessCodeMemory/svcUnmapProcessCodeMemory
| * | kernel/svc: Implement svcUnmapProcessCodeMemoryGravatar Lioncash2019-04-123-1/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Essentially performs the inverse of svcMapProcessCodeMemory. This unmaps the aliasing region first, then restores the general traits of the aliased memory. What this entails, is: - Restoring Read/Write permissions to the VMA. - Restoring its memory state to reflect it as a general heap memory region. - Clearing the memory attributes on the region.
| * | kernel/svc: Implement svcMapProcessCodeMemoryGravatar Lioncash2019-04-124-1/+131
| | | | | | | | | | | | | | | This is utilized for mapping code modules into memory. Notably, the ldr service would call this in order to map objects into memory.
* | | kernel/thread: Remove BoostPriority()Gravatar Lioncash2019-04-152-11/+0
| | | | | | | | | | | | | | | This is a holdover from Citra that currently remains unused, so it can be removed from the Thread interface.
* | | Merge pull request #2378 from lioncash/roGravatar bunnei2019-04-131-65/+85
|\ \ \ | | | | | | | | ldr: Minor amendments to IPC-related parameters
| * | | ldr: Mark IsValidNROHash() as a const member functionGravatar Lioncash2019-04-101-5/+4
| | | | | | | | | | | | | | | | This doesn't modify instance state, so it can be made const.
| * | | ldr: Amend parameters for LoadNro/UnloadNro LoadNrr/UnloadNrrGravatar Lioncash2019-04-101-60/+81
| | |/ | |/| | | | | | | | | | The initial two words indicate a process ID. Also UnloadNro only specifies one address, not two.
* | | Merge pull request #2357 from zarroboogs/force-30fps-modeGravatar bunnei2019-04-132-6/+11
|\ \ \ | | | | | | | | Add a toggle to force 30FPS mode
| * | | added a toggle to force 30fps modeGravatar zarroboogs2019-04-092-6/+11
| | | |
* | | | Merge pull request #2381 from lioncash/fsGravatar bunnei2019-04-131-8/+7
|\ \ \ \ | | | | | | | | | | fsp_srv: Minor cleanup related changes
| * | | | fsp_srv: Remove unnecessary parameter popping in IDirectory's Read()Gravatar Lioncash2019-04-101-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | IDirectory's Read() function doesn't take any input parameters. It only uses the output parameters that we already provide.
| * | | | fsp_srv: Log out option values in IFile's Read and Write functionsGravatar Lioncash2019-04-101-4/+6
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | These indicate options that alter how a read/write is performed. Currently we don't need to handle these, as the only one that seems to be used is for writes, but all the custom options ever seem to do is immediate flushing, which we already do by default.
* | | | Merge pull request #2017 from jroweboy/glwidgetGravatar bunnei2019-04-131-9/+30
|\ \ \ \ | |_|_|/ |/| | | Frontend: Migrate to QOpenGLWindow and support shared contexts
| * | | QT Frontend: Migrate to QOpenGLWindowGravatar James Rowe2019-01-211-9/+30
| | | |
* | | | Merge pull request #2360 from lioncash/svc-globalGravatar bunnei2019-04-118-364/+413
|\ \ \ \ | | | | | | | | | | kernel/svc: Deglobalize the supervisor call handlers
| * | | | kernel/svc: Deglobalize the supervisor call handlersGravatar Lioncash2019-04-078-364/+413
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adjusts the interface of the wrappers to take a system reference, which allows accessing a system instance without using the global accessors. This also allows getting rid of all global accessors within the supervisor call handling code. While this does make the wrappers themselves slightly more noisy, this will be further cleaned up in a follow-up. This eliminates the global system accessors in the current code while preserving the existing interface.
* | | | Merge pull request #2388 from lioncash/constexprGravatar bunnei2019-04-1110-10/+10
|\ \ \ \ | | | | | | | | | | kernel: Make handle type declarations constexpr
| * | | | kernel: Make handle type declarations constexprGravatar Lioncash2019-04-1110-10/+10
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | Some objects declare their handle type as const, while others declare it as constexpr. This makes the const ones constexpr for consistency, and prevent unexpected compilation errors if these happen to be attempted to be used within a constexpr context.
* / | | kernel/server_session: Remove obsolete TODOsGravatar Lioncash2019-04-091-7/+2
|/ / / | | | | | | | | | These are holdovers from Citra.
* | | Merge pull request #1957 from DarkLordZach/title-providerGravatar bunnei2019-04-0915-187/+362
|\ \ \ | | | | | | | | file_sys: Provide generic interface for accessing game data
| * | | patch_manager: Dump NSO name with build IDGravatar Zach Hilman2019-03-274-9/+11
| | | |
| * | | game_list: Register content with ContentProviderGravatar Zach Hilman2019-03-261-2/+3
| | | |
| * | | core: Port current uses of RegisteredCache to ContentProviderGravatar Zach Hilman2019-03-268-27/+32
| | | |
| * | | core: Store system-wide ContentProvider for the emulatorGravatar Zach Hilman2019-03-262-0/+40
| | | |
| * | | file_sys: Create ContentProvider interface and default implementationsGravatar Zach Hilman2019-03-262-152/+279
| | | |
* | | | kernel/process: Set page table when page table resizes occur.Gravatar Lioncash2019-04-091-0/+2
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | We need to ensure dynarmic gets a valid pointer if the page table is resized (the relevant pointers would be invalidated in this scenario). In this scenario, the page table can be resized depending on what kind of address space is specified within the NPDM metadata (if it's present).
* | | Merge pull request #2361 from lioncash/pagetableGravatar bunnei2019-04-077-18/+3
|\ \ \ | | | | | | | | core/memory: Minor simplifications to page table management
| * | | core/memory: Remove GetCurrentPageTable()Gravatar Lioncash2019-04-072-6/+1
| | | | | | | | | | | | | | | | | | | | Now that nothing actually touches the internal page table aside from the memory subsystem itself, we can remove the accessor to it.
| * | | arm/arm_dynarmic: Remove unnecessary current_page_table memberGravatar Lioncash2019-04-072-8/+0
| | | | | | | | | | | | | | | | | | | | Given the page table will always be guaranteed to be that of whatever the current process is, we no longer need to keep this around.
| * | | kernel: Handle page table switching within MakeCurrentProcess()Gravatar Lioncash2019-04-073-4/+2
| | | | | | | | | | | | | | | | | | | | Centralizes the page table switching to one spot, rather than making calling code deal with it everywhere.
* | | | Merge pull request #2356 from lioncash/pairGravatar bunnei2019-04-076-18/+15
|\ \ \ \ | | | | | | | | | | kernel/{server_port, server_session}: Return pairs instead of tuples from pair creation functions
| * | | | kernel/server_session: Return a std::pair from CreateSessionPair()Gravatar Lioncash2019-04-064-11/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Keeps the return type consistent with the function name. While we're at it, we can also reduce the amount of boilerplate involved with handling these by using structured bindings.
| * | | | kernel/server_port: Return a std::pair from CreatePortPair()Gravatar Lioncash2019-04-062-7/+7
| |/ / / | | | | | | | | | | | | Returns the same type that the function name describes.
* / / / core/memory: Remove unused enum constantsGravatar Lioncash2019-04-071-10/+0
|/ / / | | | | | | | | | These are holdovers from Citra and can be removed.
* | | Merge pull request #2325 from lioncash/nameGravatar bunnei2019-04-051-0/+4
|\ \ \ | | | | | | | | kernel/server_session: Provide a GetName() override
| * | | kernel/server_session: Provide a GetName() overrideGravatar Lioncash2019-04-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Given server sessions can be given a name, we should allow retrieving it instead of using the default implementation of GetName(), which would just return "[UNKNOWN KERNEL OBJECT]".
* | | | Merge pull request #2240 from FearlessTobi/port-4651Gravatar bunnei2019-04-053-4/+5
|\ \ \ \ | | | | | | | | | | Port citra-emu/citra#4651: "gdbstub: Fix some bugs in IsMemoryBreak() and ServeBreak. Add workaround to let watchpoints break into GDB."
| * | | | gdbstub: Fix some bugs in IsMemoryBreak() and ServeBreak. Add workaround to ↵Gravatar Dimitri A2019-03-153-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | let watchpoints break into GDB. (#4651) * gdbstub: fix IsMemoryBreak() returning false while connected to client As a result, the only existing codepath for a memory watchpoint hit to break into GDB (InterpeterMainLoop, GDB_BP_CHECK, ARMul_State::RecordBreak) is finally taken, which exposes incorrect logic* in both RecordBreak and ServeBreak. * a blank BreakpointAddress structure is passed, which sets r15 (PC) to NULL * gdbstub: DynCom: default-initialize two members/vars used in conditionals * gdbstub: DynCom: don't record memory watchpoint hits via RecordBreak() For now, instead check for GDBStub::IsMemoryBreak() in InterpreterMainLoop and ServeBreak. Fixes PC being set to a stale/unhit breakpoint address (often zero) when a memory watchpoint (rwatch, watch, awatch) is handled in ServeBreak() and generates a GDB trap. Reasons for removing a call to RecordBreak() for memory watchpoints: * The``breakpoint_data`` we pass is typed Execute or None. It describes the predicted next code breakpoint hit relative to PC; * GDBStub::IsMemoryBreak() returns true if a recent Read/Write operation hit a watchpoint. It doesn't specify which in return, nor does it trace it anywhere. Thus, the only data we could give RecordBreak() is a placeholder BreakpointAddress at offset NULL and type Access. I found the idea silly, compared to simply relying on GDBStub::IsMemoryBreak(). There is currently no measure in the code that remembers the addresses (and types) of any watchpoints that were hit by an instruction, in order to send them to GDB as "extended stop information." I'm considering an implementation for this. * gdbstub: Change an ASSERT to DEBUG_ASSERT I have never seen the (Reg[15] == last_bkpt.address) assert fail in practice, even after several weeks of (locally) developping various branches around GDB. Only leave it inside Debug builds.
* | | | | Merge pull request #2340 from lioncash/viewGravatar bunnei2019-04-051-1/+3
|\ \ \ \ \ | | | | | | | | | | | | file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash
| * | | | | file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash()Gravatar Lioncash2019-04-051-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The given string instance doesn't need to be copied entirely, we can just use a view instead.
* | | | | | Merge pull request #2334 from lioncash/overrideGravatar bunnei2019-04-0513-23/+9
|\ \ \ \ \ \ | | | | | | | | | | | | | | core: Add missing override specifiers where applicable
| * | | | | | core: Add missing override specifiers where applicableGravatar Lioncash2019-04-0413-23/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Applies the override specifier where applicable. In the case of destructors that are defaulted in their definition, they can simply be removed. This also removes the unnecessary inclusions being done in audin_u and audrec_u, given their close proximity.
* | | | | | | Merge pull request #2341 from lioncash/compareGravatar bunnei2019-04-052-11/+0
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType
| * | | | | | | file_sys/nca_metadata: Remove unnecessary comparison operators for TitleTypeGravatar Lioncash2019-04-052-11/+0
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | enum class elements from the same enum can already be compared against one another without the need for explicitly defined comparison operators.
* | | | | | | Merge pull request #2339 from lioncash/rankGravatar bunnei2019-04-055-17/+29
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs
| * | | | | | | service/fsp_srv: Don't pass SaveDataDescriptor instances by value.Gravatar Lioncash2019-04-054-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Passing around a 64 byte data struct by value is kind of wasteful, instead pass a reference to the struct.
| * | | | | | | service/fsp_srv: Remove unnecessary unknown member in OpenSaveDataFileSystemGravatar Lioncash2019-04-051-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The unknown member here is actually padding due to being passed as a struct. We can do the same, and remove the need to pop a padding word.
| * | | | | | | service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structsGravatar Lioncash2019-04-053-4/+15
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | I realized that I updated the documentation on SwitchBrew a while ago, but never actually updated the structs within yuzu.