aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle
AgeCommit message (Collapse)Author
2018-07-19Merge pull request #715 from lioncash/const-refbunnei
nvdrv: Take std::string by const reference in GetDevice()
2018-07-19Merge pull request #720 from Subv/getentrytype_rootSebastian Valle
Filesystem: Return EntryType::Directory for the root directory.
2018-07-19pl_u: Specify correct size for buffers in GetSharedFontInOrderOfPriority()Lioncash
This WriteBuffer overload expects its size argument to be in bytes, not elements.
2018-07-19svc: Correct always true assertion case in SetThreadCoreMaskLioncash
The reason this would never be true is that ideal_processor is a u8 and THREADPROCESSORID_DEFAULT is an s32. In this case, it boils down to how arithmetic conversions are performed before performing the comparison. If an unsigned value has a lesser conversion rank (aka smaller size) than the signed type being compared, then the unsigned value is promoted to the signed value (i.e. u8 -> s32 happens before the comparison). No sign-extension occurs here either. An alternative phrasing: Say we have a variable named core and it's given a value of -2. u8 core = -2; This becomes 254 due to the lack of sign. During integral promotion to the signed type, this still remains as 254, and therefore the condition will always be true, because no matter what value the u8 is given it will never be -2 in terms of 32 bits. Now, if one type was a s32 and one was a u32, this would be entirely different, since they have the same bit width (and the signed type would be converted to unsigned instead of the other way around) but would still have its representation preserved in terms of bits, allowing the comparison to be false in some cases, as opposed to being true all the time. --- We also get rid of two signed/unsigned comparison warnings while we're at it.
2018-07-19pl_u: Remove printf specifier in log call in a log call in ↵Lioncash
GetSharedFontInOrderOfPriority() This can just use the fmt specifiers and be type-agnostic.
2018-07-19Merge pull request #714 from lioncash/indexSebastian Valle
hle_ipc: Amend usage of buffer_index within one of HLERequestContext's WriteBuffer() overloads
2018-07-19Merge pull request #712 from lioncash/fspbunnei
fsp_srv: Misc individual changes
2018-07-19hid: Use a ranged-for loops in UpdatePadCallbackLioncash
Modernizes the loops themselves while also getting rid of a signed/unsigned comparison in a loop condition.
2018-07-19hid: Use HID_NUM_LAYOUTS constant for indicating size of the layouts arrayLioncash
Gets rid of the use of a magic constant
2018-07-19Filesystem: Return EntryType::Directory for the root directory.Subv
It is unknown if this is correct behavior, but it makes sense and fixes a regression with Stardew Valley.
2018-07-19hle/service: Make constructors explicit where applicableLioncash
Prevents implicit construction and makes these lingering non-explicit constructors consistent with the rest of the other classes in services.
2018-07-19nvflinger: Emplace Display instances directlyLioncash
We can use emplace_back to construct the Display instances directly, instead of constructing them separately and copying them, avoiding the need to copy std::string and std::vector instances that are part of the Display struct.
2018-07-19nvdrv: Take std::string by const reference in GetDevice()Lioncash
This is only ever used as a lookup into the device map, so we don't need to take the std::string instance by value here.
2018-07-19hle_ipc: Amend usage of buffer_index within one of HLERequestContext's ↵Lioncash
WriteBuffer() overloads Previously, the buffer_index parameter was unused, causing all writes to use the buffer index of zero, which is not necessarily what is wanted all the time. Thankfully, all current usages don't use a buffer index other than zero, so this just prevents a bug before it has a chance to spring.
2018-07-19fsp_srv: Remove unnecessary vector construction in IFile's Write() functionLioncash
We can avoid constructing a std::vector here by simply passing a pointer to the original data and the size of the copy we wish to perform to the backend's Write() function instead, avoiding copying the data where it's otherwise not needed.
2018-07-19fsp_srv: Remove unnecessary std::vector construction in IDirectory's Read() ↵Lioncash
function We were using a second std::vector as a buffer to convert another std::vector's data into a byte sequence, however we can just use pointers to the original data and use them directly with WriteBuffer, which avoids copying the data at all into a separate std::vector. We simply cast the pointers to u8* (which is allowed by the standard, given std::uint8_t is an alias for unsigned char on platforms that we support).
2018-07-19filesystem: std::move VirtualDir instance in VfsDirectoryServiceWrapper's ↵Lioncash
constructor Avoids unnecessary atomic reference count incrementing and decrementing
2018-07-19filesystem: Use std::string's empty() function instead of comparing against ↵Lioncash
a literal This is simply a basic value check as opposed to potentially doing string based operations (unlikely, but still, avoiding it is free).
2018-07-19filesystem: Remove pragma disabling global optimizationsLioncash
This was just an artifact missed during PR review.
2018-07-19fsp_srv: Make IStorage constructor explicitLioncash
Prevents implicit conversions.
2018-07-19fsp_srv: Add missing includesLioncash
Gets rid of relying on indirect inclusions.
2018-07-19fsp_srv: Resolve sign-mismatch warnings in assertion comparisonsLioncash
2018-07-19fsp_srv: Respect write length in Write()Lioncash
Previously we were just copying the data whole-sale, even if the length was less than the total data size. This effectively makes the actual_data vector useless, which is likely not intended. Instead, amend this to only copy the given length amount of data. At the same time, we can avoid zeroing out the data before using it by passing iterators to the constructor instead of a size.
2018-07-18Merge pull request #692 from lioncash/assignbunnei
address_arbiter: Correct assignment within an assertion statement in WakeThreads()
2018-07-18Merge pull request #690 from lioncash/movebunnei
core/memory, core/hle/kernel: Use std::move where applicable
2018-07-18Merge pull request #691 from lioncash/guardbunnei
service/prepo: Add missing header guard
2018-07-18Merge pull request #688 from lioncash/commabunnei
vm_manager: Add missing commas to string literal array elements in GetMemoryStateName()
2018-07-18Merge pull request #687 from lioncash/instancebunnei
core: Don't construct instance of Core::System, just to access its live instance
2018-07-18Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman
* Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
2018-07-18address_arbiter: Correct assignment within an assertion statement in ↵Lioncash
WakeThreads() This was introduced within 4f81bc4e1bd12e4df7410c6790ba818d8dbba9c0, and considering there's no comment indicating that this is intentional, this is very likely a bug.
2018-07-18service/prepo: Add missing header guardLioncash
2018-07-18vm_manager: Add missing commas to string literal array elements in ↵Lioncash
GetMemoryStateName() Without these, this would perform concatenation, which is definitely not what we want here.
2018-07-18core/memory, core/hle/kernel: Use std::move where applicableLioncash
Avoids pointless copies
2018-07-18core: Don't construct instance of Core::System, just to access its live instanceLioncash
This would result in a lot of allocations and related object construction, just to toss it all away immediately after the call. These are definitely not intentional, and it was intended that all of these should have been accessing the static function GetInstance() through the name itself, not constructed instances.
2018-07-18Fill in more fields in TouchScreenEntryTouchZach Hilman
2018-07-18Single touch supportZach Hilman
2018-07-17vi: Change TransactionId::CancelBuffer to LOG_CRITICAL.bunnei
2018-07-17vi: Fix size for ListDisplays default display.bunnei
2018-07-17vi: Partially implement buffer crop parameters.bunnei
2018-07-17General Filesystem and Save Data Fixes (#670)Zach Hilman
2018-07-17Merge pull request #671 from MerryMage/clear-exclusive-statebunnei
scheduler: Clear exclusive state when switching contexts
2018-07-17Merge pull request #672 from SciresM/to_address_fixbunnei
svc:: Fix bug in svcWaitForAddress
2018-07-17nvflinger: Fix for BufferQueue event handling.bunnei
2018-07-16Kernel/Arbiter: Fix bug in WaitIfLessThanMichael Scire
2018-07-16scheduler: Clear exclusive state when switching contextsMerryMage
2018-07-15HID: Update controllers less oftenJames Rowe
2018-07-14Merge pull request #663 from Subv/bsdbunnei
Services/BSD: Corrected the return for StartMonitoring according to SwIPC
2018-07-14Services/BSD: Corrected the return for StartMonitoring according to SwIPC.Subv
2018-07-14No need to use ASSERT_MSG with an empty messageDavid Marcec
2018-07-13We only need to alert for memory pool changesDavid Marcec