aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle
AgeCommit message (Collapse)Author
2018-09-24process/vm_manager: Amend API to allow reading parameters from NPDM metadataLioncash
Rather than hard-code the address range to be 36-bit, we can derive the parameters from supplied NPDM metadata if the supplied exectuable supports it. This is the bare minimum necessary for this to be possible. The following commits will rework the memory code further to adjust to this.
2018-09-23Implemented fatal:u properly (#1347)David
* Implemented fatal:u properly fatal:u now is properly implemented with all the ipc cmds. Error reports/Crash reports are also now implemented for fatal:u. Crash reports save to yuzu/logs/crash_reports/ The register dump is currently known as sysmodules send all zeros. If there are any non zero values for the "registers" or the unknown values, let me know! * Fatal:U fixups * Made fatal:u execution break more clear * Fatal fixups
2018-09-23Stubbed IRS (#1349)David
* Stubbed IRS Currently we have no ideal way of implementing IRS. For the time being we should have the functions stubbed until we come up with a way to emulate IRS properly. * Added IRS to logging backend * Forward declared shared memory for irs
2018-09-23Merge pull request #1354 from ogniK5377/ssl-versionbunnei
Corrected SSL::SetInterfaceVersion
2018-09-23stream: Preserve enum class type in GetState()Lioncash
Preserves the meaning/type-safetiness of the stream state instead of making it an opaque u32. This makes it usable for other things outside of the service HLE context.
2018-09-23svc: Updated svc namestech4me
2018-09-23Added audren:u#GetAudioRendererStateDavid Marcec
2018-09-21filesystem: Add LayeredFS VFS directory getterZach Hilman
2018-09-21svc: Move most process termination code to its own function within ProcessLioncash
Reduces the use of Process class members externally and keeps most code related to tearing down a process with the rest of the process code.
2018-09-21thread/process: Move TLS slot marking/freeing to the process classLioncash
Allows making several members of the process class private, it also avoids going through Core::CurrentProcess() just to retrieve the owning process.
2018-09-20Merge pull request #1372 from lioncash/threadbunnei
kernel/thread: Use owner_process when setting the page table in SetupMainThread()
2018-09-20Merge pull request #1371 from lioncash/fwd-armbunnei
arm_interface: Replace kernel vm_manager include with a forward declaration
2018-09-20Merge pull request #1368 from ogniK5377/nifm-fixbunnei
Added IRequest::Submit
2018-09-21Revert GetRequestStateDavid Marcec
Even though setting this value to 3 is more correct. We break more games than we fix due to missing implementations. We should keep this as 0 for the time being
2018-09-20kernel/thread: Use owner_process when setting the page table in ↵Lioncash
SetupMainThread() The owning process of a thread is required to exist before the thread, so we can enforce this API-wise by using a reference. We can also avoid the reliance on the system instance by using that parameter to access the page table that needs to be set.
2018-09-20arm_interface: Replace kernel vm_manager include with a forward declarationLioncash
Avoids an unnecessary inclusion and also uncovers three places where indirect inclusions were relied upon, which allows us to also resolve those.
2018-09-21Fixed submitDavid Marcec
2018-09-21Added IRequest::SubmitDavid Marcec
This fixes updated versions of SMO. Currently unable to test as I don't have an updated version
2018-09-20Removed unneeded event clearDavid Marcec
2018-09-20Implemented NTC & IEnsureNetworkClockAvailabilityServiceDavid Marcec
Needed because of the recent nim fixes
2018-09-19Reworked incorrect nifm stubs (#1355)David
* Reworked incorrect nifm stubs Need confirmation on `CreateTemporaryNetworkProfile`, unsure which game uses it but according to reversing. It should return a uuid which we currently don't do. Any 0 client id is considered an invalid client id. GetRequestState 0 is considered invalid. * Fixups for nifm
2018-09-19Merge pull request #1359 from ogniK5377/nesbunnei
Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision
2018-09-19Fixed GetAccountId stub, Added error code for OpenDirectory and added ↵David Marcec
ActivateNpadWithRevision With these, `Nintendo Entertainment System - Nintendo Switch Online` loads
2018-09-19Corrected SSL::SetInterfaceVersionDavid Marcec
Should be a single u32
2018-09-19Removed MakeBuilder as it's not needed anymoreDavid Marcec
2018-09-19Removed the use of rp.MakeBuilderDavid Marcec
Due to keeping the code style consistent in the yuzu codebase. `rb = rp.MakeBuilder(...)` was replaced with `rb{ctx, ...}`
2018-09-18Merge pull request #1348 from ogniK5377/GetImageSizebunnei
Implemented IProfile::GetImageSize
2018-09-18Merge pull request #1351 from ogniK5377/GetDefaultDisplayResolutionbunnei
Implemented GetDefaultDisplayResolution
2018-09-18Merge pull request #1346 from lioncash/svcbunnei
svc_wrap: Convert the PARAM macro into a function
2018-09-18Merge pull request #1350 from ogniK5377/Six-Axis-Stubbunnei
Stubbed ActivateConsoleSixAxisSensor & StartConsoleSixAxisSensor
2018-09-18Invalid default value of username in yuzu_cmd (#1334)Philippe Babin
* Fix bug where default username value for yuzu_cmd create an userprofile with uninitialize data as username * Fix format * Apply code review changes * Remove nullptr check
2018-09-18Merge pull request #1343 from lioncash/mutexbunnei
kernel/svc: Handle invalid address cases within svcArbitrateLock() and svcArbitrateUnlock()
2018-09-19Added ActivateGestureDavid Marcec
2018-09-19Implemented GetDefaultDisplayResolutionDavid Marcec
2018-09-19Added StopSixAxisSensorDavid Marcec
2018-09-19Stubbed ActivateConsoleSixAxisSensor & StartConsoleSixAxisSensorDavid Marcec
2018-09-19Implemented GetImageSizeDavid Marcec
2018-09-18svc_wrap: Convert the PARAM macro into a functionLioncash
This can just be a regular function, getting rid of the need to also explicitly undef the define at the end of the file. Given FuncReturn() was already converted into a function, it's #undef can also be removed.
2018-09-18arm_interface: Remove ARM11-isms from the CPU interfaceLioncash
This modifies the CPU interface to more accurately match an AArch64-supporting CPU as opposed to an ARM11 one. Two of the methods don't even make sense to keep around for this interface, as Adv Simd is used, rather than the VFP in the primary execution state. This is essentially a modernization change that should have occurred from the get-go.
2018-09-17kernel/mutex: Replace ResultCode construction for invalid addresses with the ↵Lioncash
named variant We already have a ResultCode constant for the case of an invalid address, so we can just use it instead of re-rolling that ResultCode type.
2018-09-17kernel/svc: Handle error cases for svcArbitrateLock() and svcArbitrateUnlock()Lioncash
The kernel does the equivalent of the following check before proceeding: if (address + 0x8000000000 < 0x7FFFE00000) { return ERR_INVALID_MEMORY_STATE; } which is essentially what our IsKernelVirtualAddress() function does. So we should also be checking for this. The kernel also checks if the given input addresses are 4-byte aligned, however our Mutex::TryAcquire() and Mutex::Release() functions already handle this, so we don't need to add code for this case.
2018-09-17Merge pull request #1312 from lioncash/fwdbunnei
service/vi: Replace includes with forward declarations where applicable
2018-09-17Merge pull request #1313 from lioncash/errorbunnei
kernel/errors: Amend error code for ERR_NOT_FOUND
2018-09-17Merge pull request #1318 from lioncash/errors-smbunnei
services/sm: Amend error code constants
2018-09-17Merge pull request #1315 from lioncash/sizebunnei
kernel/svc: Handle a few error cases within memory-related functions
2018-09-17Merge pull request #1328 from FearlessTobi/port-4192bunnei
Port #4192 from Citra: "svc: change unknown to thread in CreateThread"
2018-09-15Port # #4192 from Citra: "svc: change unknown to thread in CreateThread"Valentin Vanelslande
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi
2018-09-14services/sm: Amend error code constantsLioncash
Courtesy of @ogniK5377. This also moves them into the cpp file and limits the visibility to where they're directly used. It also gets rid of unused or duplicate error codes.
2018-09-13kernel/svc: Sanitize creation of shared memory via svcCreateSharedMemory()Lioncash
The kernel caps the size limit of shared memory to 8589930496 bytes (or (1GB - 512 bytes) * 8), so approximately 8GB, where every GB has a 512 byte sector taken off of it. It also ensures the shared memory is created with either read or read/write permissions for both permission types passed in, allowing the remote permissions to also be set as "don't care".