Commit Graph

3858 Commits (3476f5b4d38d31d6f17a335311a2fa814be8bf25)

Author SHA1 Message Date
Lioncash ce5ad45278 kernel/vm_manager: Use the VAddr type alias in CarveVMA()
These two variables correspond to address ranges.
7 years ago
Lioncash 6058c84b79 kernel/thread: Make GetFreeThreadLocalSlot()'s loop indices size_t
Avoids using a u32 to compare against a range of size_t, which can be a
source of warnings. While we're at it, compress a std::tie into a
structured binding.
7 years ago
Lioncash fac0e42b2f kernel/thread: Make GetFreeThreadLocalSlot() reference parameter a const reference
This function only reads the data being referenced, it doesn't modify
it, so we can turn the reference into a const reference.
7 years ago
Lioncash 9a50a4f2cc kernel/thread: Make GetFreeThreadLocalSlot() internally linked
This function isn't used outside of this translation unit, so we can
make it internally linked.
7 years ago
Lioncash 42a4c6b79e vfs_vector: Remove unused variable in FindAndRemoveVectorElement()
This wasn't being used for anything, so it can be removed.
7 years ago
Lioncash cec9e9b811 vfs_vector: Avoid unnecessary copies where applicable
The lambda elements should be taken by const reference here, and we can
move the virtual directory passed to ReplaceFileWithSubdirectory()
7 years ago
Lioncash c6db1c390b hw: Remove unused files
None of these files are used in any meaningful way. They're just
leftovers from citra. Also has the benefit of getting rid of an unused
global variable.
7 years ago
Lioncash 7469e26e5e service: Add migration services
Adds the basic skeleton for the mig:usr service based off information
provided by Switch Brew.
7 years ago
Lioncash bf45092c61 kernel: Move object class to its own source files
General moving to keep kernel object types separate from the direct
kernel code. Also essentially a preliminary cleanup before eliminating
global kernel state in the kernel code.
7 years ago
Lioncash 5233040ab4 service: Add psc services
Adds the basic skeleton for the psc services based off the information
provided by Switch Brew.
7 years ago
Lioncash 0f2ac928f2 video_core: Make global EmuWindow instance part of the base renderer class
Makes the global a member of the RendererBase class. We also change this
to be a reference. Passing any form of null pointer to these functions
is incorrect entirely, especially given the code itself assumes that the
pointer would always be in a valid state.

This also makes it easier to follow the lifecycle of instances being
used, as we explicitly interact the renderer with the rasterizer, rather
than it just operating on a global pointer.
7 years ago
bunnei 746d7d4d28
Merge pull request #888 from lioncash/caps
service: Add capture services
7 years ago
bunnei 9bb8720289
Merge pull request #890 from lioncash/logger
lm: Amend name of ILogger
7 years ago
bunnei 16b2fd9fc8
Merge pull request #889 from lioncash/fsp
service/filesystem: Add fsp:ldr and fsp:pr services
7 years ago
Lioncash 48acb764a4 service/ns: Add missing ns services
Implements the basic skeleton of ns:am2, ns:ec, ns:rid, ns:rt, ns:su,
ns:vm, and ns:web based off the information provided by Switch Brew and
SwIPC.
7 years ago
Lioncash f77cfab516 lm: Amend name of ILogger
Previously this was being registered with the name "Logger". While we're
at it, also change the name of the class to match it.
7 years ago
Lioncash 208a457909 service/filesystem: Add fsp:ldr and fsp:pr services
Adds the basic skeleton for the remaining fsp services based off
information provided by Switch Brew.
7 years ago
Lioncash e39294c267 service: Add capture services
Adds the basic skeleton for the capture services based off information
provided by Switch Brew.
7 years ago
Lioncash d109279543 service: Add bpc and pcv services
Adds the basic skeleton for the remaining pcv-related services based off
information on Switch Brew.
7 years ago
bunnei 703663d761
Merge pull request #882 from lioncash/unused
kernel/thread: Remove unimplemented function prototype
7 years ago
Zach Hilman 13cdf1f159 Add missing parameter to files.push_back() 7 years ago
Zach Hilman 0497bb5528 Fix merge conflicts with opus and update docs 7 years ago
Zach Hilman 187d8e215f Use more descriptive error codes and messages 7 years ago
Zach Hilman 9d59b96ef9 Use static const instead of const static 7 years ago
Zach Hilman a9c921a41d Use ErrorEncrypted where applicable and fix no keys crash 7 years ago
Zach Hilman 03149d3e4a Add missing includes and use const where applicable 7 years ago
Zach Hilman 150527ec19 Allow key loading from %YUZU_DIR%/keys in addition to ~/.switch 7 years ago
Zach Hilman 239a3113e4 Make XCI comply to review and style guidelines 7 years ago
Zach Hilman 22342487e8 Extract mbedtls to cpp file 7 years ago
Zach Hilman 83c3ae8be8 Add missing string.h include 7 years ago
Zach Hilman c54a10cb4f Update mbedtls and fix compile error 7 years ago
Zach Hilman df5b75694f Remove files that are not used 7 years ago
bunnei d2ad279a32
Merge pull request #871 from bunnei/audio-config
audio_core: Add configuration settings.
7 years ago
Lioncash 49e198b20d kernel/thread: Remove unimplemented function prototype
Given there's no implementation, we may as well remove the code
entirely.
7 years ago
bunnei ff2c1b0a94
Merge pull request #877 from lioncash/remove
kernel: Remove unused object_address_table.cpp/.h
7 years ago
bunnei 98af269415
Merge pull request #880 from lioncash/audio
service/audio: Add missing services
7 years ago
bunnei ca84b530a3 audio_core: Add configuration settings. 7 years ago
bunnei f5efac3442
Merge pull request #876 from lioncash/include
kernel: Remove unnecessary includes
7 years ago
Lioncash bba63b33a1 service/audio: Add missing services
Adds the missing audctl service, as well as the :a and :d services for
audin, audout, audrec, and audren.
7 years ago
bunnei da07faebfe
Merge pull request #879 from lioncash/audio
audout_u: Remove std::move in OpenAudioOutImpl()
7 years ago
bunnei 3575c076cb
Merge pull request #869 from Subv/ubsan
Corrected a few error cases detected by asan/ubsan
7 years ago
bunnei fd020ad52a
Merge pull request #875 from lioncash/fgm
service: Add fgm services
7 years ago
bunnei 3a2581cc7d
Merge pull request #874 from lioncash/am
service/am: Add missing am services
7 years ago
Lioncash 369f6e58aa kernel: Remove unused object_address_table.cpp/.h
These source files were entirely unused throughout the rest of the
codebase. This also has the benefit of getting rid of a global variable
as well.
7 years ago
Lioncash 1ced7bbea5 audout_u: Remove std::move in OpenAudioOutImpl()
Previously the code was using the values from params further below after
it was std::moved. Thankfully, given AudoutParams is a trivially
copyable struct, the values would have simply been copied in this
instance and not invalidated to garbage values.
7 years ago
Lioncash a2304fad16 kernel: Remove unnecessary includes
Removes unnecessary direct dependencies in some headers and also gets
rid of indirect dependencies that were being relied on to be included.
7 years ago
bunnei b79362b9da
Merge pull request #870 from lioncash/init
arm_dynarmic: Correct initializer list order
7 years ago
Lioncash 7da8f15461 service/am: Add missing am services
Adds the basic skeleton for missing am services idle:sys, omm, and spsm
based off the information provided by Switch Brew.
7 years ago
Lioncash 268eeeb406 service: Add fgm services
Adds the basic skeleton for the fgm services based off the information
provided by Switch Brew.
7 years ago
Lioncash f08c0520a4 arm_dynarmic: Make SetTlsAddress() prototype and definition consistent
Makes the definition use the same type aliases as in its prototype.
7 years ago
Lioncash 9d6aa7bff7 arm_dynarmic: Remove unnecessary qualifying of ThreadContext
Given the ARM_Dynarmic class inherits from ARM_Interface, we don't need
to qualify here.
7 years ago
Lioncash 444a01afa6 arm_dynarmic: Correct initializer list order
Amends the initializer list to be in the same order that each variable
would be initialized in. We also do this to ensure we don't use a bogus
uninitialized instance of the exclusive monitor within MakeJit()

We can also remove the jit member from the initializer list as this is
initialized by PageTableChanged()
7 years ago
Lioncash e373027a73 service: Add the pcie service
Adds the basic skeleton of the pcie service based off information on
Switch Brew.
7 years ago
Subv e119e17d18 nvhost_gpu: Added checks to ensure we don't read past the end of the entries when handling a GPU command list. 7 years ago
Subv 2482aca7c3 nvhost_ctrl_gpu: Only read the input parameters if they are actually there.
Passing nullptr to memcpy is undefined behavior.
7 years ago
bunnei eaf66b4c9f audio_core: Move to audout_u impl.
- This is necessary so streams are created on the same thread.
7 years ago
David a483e5e28d Implemented various hwopus functions (#853) 7 years ago
bunnei 45d1438530
Merge pull request #858 from lioncash/cast
partition_filesystem: Remove dynamic_cast in PrintDebugInfo()
7 years ago
bunnei c5fa3560a6
Merge pull request #857 from lioncash/wlan
service: Add wlan services
7 years ago
bunnei 2c4bb11015
Merge pull request #856 from lioncash/btm
service: Add btm services
7 years ago
Hexagon12 fd797e2424 Add some HID commands (#843)
* Added some HID commands

* Addressed comments
7 years ago
Lioncash 57c4d7aa00 partition_filesystem: Remove dynamic_cast in PrintDebugInfo()
We shouldn't be upcasting our file instances. Given a
PartitionFilesystem is currently designed to accept any arbitrary
VfsFile instances, casting to a more specific type than that is just bad
design, and shows an interface design issue.
7 years ago
Lioncash 6ea416091e service: Add wlan services
Adds the basic skeleton for the wlan services based off the information
on Switch Brew.
7 years ago
Lioncash 7ce6858086 service/btm: Add basic implementation of GetCoreImpl()
Based off information on SwIPC and Switch Brew.
7 years ago
Lioncash ca7655be3a service: Add btm services
Adds the skeleton for the btm services based off the information on
Switch Brew.
7 years ago
bunnei 458fdda700
Merge pull request #847 from lioncash/ncm
service: Add ncm services
7 years ago
bunnei d00dcdb1be
Merge pull request #846 from lioncash/mii
service: Add mii services
7 years ago
bunnei e1d66ea794
Merge pull request #842 from bunnei/audio-core
Initial implementation of Audio Core
7 years ago
bunnei f1c519f2cb audout: Implement IAudioOut interface with AudioCore. 7 years ago
bunnei 2a742229ee core: Add AudioCore to global state. 7 years ago
bunnei ab756fd068 audio_core: Add initial code for keeping track of audout state. 7 years ago
Zach Hilman 906d785c73 RomFS Extraction 7 years ago
Lioncash 7931cc0ceb service: Add ncm services
Adds the basic skeleton for the ncm services based off information on
Switch Brew.
7 years ago
bunnei 0191a1e526
Merge pull request #845 from lioncash/nfc
service: Add nfc services
7 years ago
bunnei 833ebbb626
Merge pull request #844 from lioncash/lbl
service: Add the lbl service
7 years ago
bunnei d2749ef0ed
Merge pull request #841 from lioncash/btdrv
service: Add the btdrv service
7 years ago
Lioncash f46bfdd77d service: Add mii services
Adds the skeleton for the mii services based off information provided by
Switch Brew
7 years ago
Lioncash 50dadc33e3 service/nfc: Implement Create[x]Interface functions
These simply return the respective interface.
7 years ago
Lioncash 04d144aa40 service: Add nfc services
Adds the skeleton of the nfc service based off the information provided
on Switch Brew.
7 years ago
Lioncash ea8dd8b650 service/lbl: Implement EnableVrMode, DisableVrMode and GetVrMode
Implements these functions according to the information available on
Switch Brew.
7 years ago
Lioncash c2c543e8f7 service: Add the lbl service
Adds the skeleton of the lbl service based off the information provided
by Switch Brew.
7 years ago
bunnei dc4e5f9159
Merge pull request #837 from lioncash/priv
kernel/timer: Make data members private where applicable
7 years ago
Lioncash f49248437e service: Add the btdrv service
Adds the skeleton for the btdrv service based off the information provided by Switch Brew
7 years ago
Lioncash 1121622dc1 service/hid: Add the hidbus, hid:dbg, hid:sys, and hid:tmp services 7 years ago
Lioncash 7550c2c866 service/hid: Add the xcd:sys service 7 years ago
Lioncash 82cb5f030d service/hid: Add irs services 7 years ago
bunnei 8440b814bc
Merge pull request #834 from lioncash/grc
service: Add the grc:c service
7 years ago
bunnei 41d7b020a8
Merge pull request #832 from lioncash/nim
service: Add the nim services
7 years ago
bunnei e4191b624c
Merge pull request #831 from lioncash/ldn
service: Add ldn services
7 years ago
bunnei 40eb243f86
Merge pull request #830 from lioncash/socket
service/sockets: Add missing socket services
7 years ago
Lioncash b28af1f6c9 service: Add the grc:c service
Adds the basic skeleton for the grc:c service based off the information
provided by Switch Brew.
7 years ago
Lioncash 0cd843151f kernel/timer: Make data members private where applicable
Instead, we can just expose functions that return the queryable state
instead of letting anything modify it.
7 years ago
Lioncash f916611e32 service: Add the nim services
Adds the skeleton for the nim services based off information from Switch
Brew.
7 years ago
Lioncash 8781beaf0d service: Add ldn services
Adds ldn services based off information provided by Switch Brew.
7 years ago
bunnei 57cd80c410
Merge pull request #827 from lioncash/log
service/lm: Minor changes
7 years ago
Lioncash 3f5dfc4d96 service/sockets: Add ethc:c and ethc:i services 7 years ago
Lioncash 165e7645e1 service/sockets: Add missing bsdcfg socket service 7 years ago
Sebastian Valle 1958d07d7d
Merge pull request #828 from lioncash/ldr
service: Add ldr services
7 years ago
Sebastian Valle 8ac52c6b56
Merge pull request #826 from lioncash/erpt
service: Add erpt and eupld services
7 years ago
Sebastian Valle 0e05f98be2
Merge pull request #823 from lioncash/nifm
service/nifm: Deduplicate interface code
7 years ago
Lioncash 3fb124961e service: Add ldr services
Adds the skeleton for the ldr-related services based off the information
provided on Switch Brew.
7 years ago
Lioncash 91d86df920 lm: Move LM's class declaration into the cpp file
This isn't used directly outside of this translation unit, so we can
hide it from external use.
7 years ago
Lioncash 6f4d3d8163 lm: Amend names of Initialize() in Logger and Initialize() in LM
Amends these to match the information on Switch Brew.
7 years ago
Lioncash 8650be1020 lm: Add missing function entry to Logger's function table 7 years ago
Lioncash 7458e71f24 service: Add eupld services
Adds the skeleton for the eupld services based off information on Switch
Brew.
7 years ago
Lioncash 821f2c03cb service: Add the erpt services
Adds the basic skeleton of the erpt service based off information on
Switch Brew.
7 years ago
bunnei b0adb9a3d9
Merge pull request #824 from lioncash/nvdrv
service/nvdrv: Minor changes
7 years ago
bunnei 851089b482
Merge pull request #822 from lioncash/pm
service: Add pm services
7 years ago
Lioncash f9951352f6 service/nvdrv: Take std::string in Open() by const reference
Avoids copies from being made, since the string is only ever used for
lookup, the data is never transfered anywhere.

Ideally, we'd use a std::string_view here, but devices is a
std::unordered_map, not a std::map, so we can't use heterogenous lookup
here.
7 years ago
Lioncash a2cd07d094 service/nvdrv: Use std::move where applicable
Avoids unnecessary reference count increments and decrements.

In one case, we don't need to make a shared_ptr copy at all,
just to call a member function.
7 years ago
Lioncash 85ed42a1d2 service/nifm: Deduplicate interface code
Rather than having the same code for each nifm service variant, we can
centralize it on one class and get rid of a bit of extra code.
7 years ago
Lioncash c664f8a257 service: Add pm services
Adds the skeleton for the process management services based off
information on Switch Brew.
7 years ago
Lioncash 4175712976 service: Add the es service
Adds the skeleton for the ETicket service based off the information on
Switch Brew
7 years ago
Mat M 1e4935c3a0
Merge pull request #801 from lioncash/time
time: Add the time:a service
7 years ago
Mat M d3fd0351a7
Merge pull request #804 from lioncash/log
svc: Log parameters in SetMemoryAttribute()
7 years ago
Lioncash 3c1cb3b11e time: Add the time:a service
Given we already have time:s and time:u, we should also have time:a
7 years ago
bunnei 657bd113e3
Merge pull request #803 from MerryMage/core_timing_util
core_timing: Split off utility functions into core_timing_util
7 years ago
bunnei 5c42cadbc9
Merge pull request #800 from lioncash/set
set_sys: Implement SetColorSetId()
7 years ago
bunnei 340771ccd7
Merge pull request #806 from lioncash/friend
friend: Deduplicate interfaces
7 years ago
bunnei ea0bc8c002
Merge pull request #805 from lioncash/sign
svc: Resolve sign comparison warnings in WaitSynchronization()
7 years ago
Lioncash 4cf2185e81 deconstructed_rom_directory: Remove unused FindRomFS() function 7 years ago
Lioncash 07c2d057bd friend: Add friend:m, friend:s, and friend:v services
Given we already have friend:a and friend:u, we should add the remaining
services as well.
7 years ago
Lioncash 9539a1eadd friend/interface: Add missing CreateDaemonSuspendSessionService() to the function handler table 7 years ago
Lioncash 77daef44b0 friend: Deduplicate interfaces 7 years ago
Lioncash c73410bf2c svc: Resolve sign comparison warnings in WaitSynchronization()
The loop's induction variable was signed, but we were comparing against
an unsigned variable.
7 years ago
Lioncash 8e8e906432 svc: Log parameters in SetMemoryAttribute()
Provides slightly more context than only logging out the address value.
7 years ago
bunnei 316c994f55
Merge pull request #798 from lioncash/const
arm_dynarmic: Make MakeJit() a const member function
7 years ago
bunnei 23e85b6b9f
Merge pull request #797 from lioncash/explicit
core: Make converting constructors explicit where applicable
7 years ago
bunnei 1cbf7ac6ea
Merge pull request #795 from lioncash/decl
apm/interface: Remove redundant declaration of InstallInterfaces()
7 years ago
bunnei d092ea0870
Merge pull request #794 from lioncash/ref
mutex: Pass SharedPtr to GetHighestPriorityMutexWaitingThread() by reference
7 years ago
Lioncash a61124a9e7 time: Simplify interface creation
We can use one instance of the interface instead of duplicating code.
7 years ago
MerryMage 44646e2ea0 core_timing: Split off utility functions into core_timing_util 7 years ago
MerryMage b8459d2778 CMakeLists: Sort filenames 7 years ago
Lioncash 63c605c04a set_sys: Implement SetColorSetId() 7 years ago
Lioncash 76f191ce36 ipc_helper: Add helper member function for popping enum values to RequestParser 7 years ago
bunnei 2f029577c7
Merge pull request #793 from lioncash/priv
ipc_helpers: Make member variables of ResponseBuilder private
7 years ago
bunnei bc5b65a1b0
Merge pull request #785 from lioncash/fs
partition_filesystem: Use std::move where applicable
7 years ago
Lioncash 7d124ec82b arm_dynarmic: Make MakeJit() a const member function
This functions doesn't modify instance state, so it can be a made a
const member function.
7 years ago
Lioncash 1d755abce4 core: Make converting constructors explicit where applicable
Avoids unwanted implicit conversions. Thankfully, given the large amount
of cleanup in past PRs, only this tiny amount is left over to cover.
7 years ago
Lioncash 8b83adfed6 apm/interface: Remove redundant declaration of InstallInterfaces()
This is already declared in apm/apm.h
7 years ago
Lioncash 42b5158c96 mutex: Pass SharedPtr to GetHighestPriorityMutexWaitingThread() by reference
The pointed to thread's members are simply observed in this case, so we
don't need to copy it here.
7 years ago
Zach Hilman 59cb258409 VFS Regression and Accuracy Fixes (#776)
* Regression and Mode Fixes

* Review Fixes

* string_view correction

* Add operator& for FileSys::Mode

* Return std::string from SanitizePath

* Farming Simulator Fix

* Use != With mode operator&
7 years ago
Lioncash 22fd3f0026 hle_ipc: Make constructors explicit where applicable 7 years ago
Lioncash 2a1daf8f83 ipc_helpers: Make member variables of ResponseBuilder private
These aren't used externally at all, so they can be made private.
7 years ago
bunnei 25635907a2
Merge pull request #786 from lioncash/exclusive
exclusive_monitor: Use consistent type alias for u64
7 years ago
bunnei 84cc5dd35d
Merge pull request #784 from lioncash/loader
loader: Minor cleanup
7 years ago
bunnei 1ce5e04be8
Merge pull request #783 from lioncash/linker
linker: Remove unused parameter from WriteRelocations()
7 years ago
bunnei 10dd03dec5
Merge pull request #782 from lioncash/file
loader/nro: Minor changes
7 years ago
bunnei 52ec1840f5
Merge pull request #780 from lioncash/move
vi: Minor changes
7 years ago
bunnei e0b6771e25
Merge pull request #779 from lioncash/shared
hle: Remove unused config_mem and shared_page source files
7 years ago
Lioncash e12c84d5c5 exclusive_monitor: Use consistent type alias for u64
Uses the same type aliases we use for virtual addresses, and converts
one lingering usage of std::array<uint64_t, 2> to u128 for consistency.
7 years ago
Lioncash db48ebb9c9 partition_filesystem: Use std::move where applicable
Avoids copying a std::string instance and avoids unnecessary atomic
reference count incrementing and decrementing.
7 years ago
Lioncash a147fa5825 loader: Remove unnecessary constructor call in IdentifyFile()
RealVfsFile inherits from VfsFile, the instance from std::make_shared is
already compatible with the function argument type, making the copy
constructor call unnecessary.
7 years ago
Lioncash 184c516182 linker: Remove unused parameter from WriteRelocations()
is_jump_relocation is never used within the function, so we can just
remove it.
7 years ago
Lioncash 1b4d0ac20e nro: Replace inclusion with a forward declaration
It's sufficient to use a forward declaration instead of a direct
inclusion here.
7 years ago
Lioncash 2b497e5830 nro: Make bracing consistent
Makes the code more uniform, and also braces cases where the body of an
unbraced conditional travels more than one line.
7 years ago
Lioncash ac8133b9ee nro: Make constructor explicit
Makes it consistent with the other Apploader constructors, and prevents
implicit conversions.
7 years ago
Lioncash 1c16700372 nro: Remove unused forward declaration
This isn't used anywhere in the header.
7 years ago
bunnei 07e5319d55
Merge pull request #695 from DarkLordZach/nro-asset
NRO Assets and NACP File Format
7 years ago
Lioncash 1432912ae8 vi: Add std::is_trivially_copyable checks to Read and Write functions
It's undefined behavior to memcpy an object that isn't considered
trivially copyable, so put a compile-time check in to make sure this
doesn't occur.
7 years ago
Lioncash 344a0c91f2 vi: std::move std::vector in constructors where applicable
Allows avoiding unnecessary copies of the vector depending on the
calling code.

While we're at it, remove a redundant no-parameter base constructor call
7 years ago
Lioncash cbe841c9c9 hle: Remove config_mem.h/.cpp
This is just an unused hold-over from citra, so we can get rid of this
to trim off an exposed global, among other things.
7 years ago
Lioncash 1f3889a290 hle: Remove shared_page.h/.cpp
This is a holdover from citra that's essentially unused.
7 years ago
Lioncash e85308cd90 set: Add missing log call in GetAvailableLanguageCodeCount()
Forgot to include this in 22f448b632
7 years ago
Zach Hilman e8f641a52d NRO Assets and NACP file format
Cleanup

Review fixes
7 years ago
bunnei a85366a40c
Merge pull request #777 from lioncash/lang
set: Amend return value of GetAvailableLanguageCodes()
7 years ago
Lioncash 22f448b632 set: Implement GetAvailableLanguageCodeCount()
This just returns the size of the language code buffer.
7 years ago
Lioncash 37aeecd29f set: Correct return code size of value in GetAvailableLanguageCodes()
The return code should be 32-bit in size.
7 years ago
bunnei a4b2af7382
Merge pull request #774 from Subv/atomic_signal
Kernel/SVC: Perform atomic accesses in SignalProcessWideKey as per the real kernel.
7 years ago
bunnei 5ee4c49c30
Merge pull request #768 from lioncash/string-view
file_util, vfs: Use std::string_view where applicable
7 years ago
Subv 7841447cf0 Kernel/SVC: Perform atomic accesses in SignalProcessWideKey as per the real kernel. 7 years ago
MerryMage 0b1c2e5505 Implement exclusive monitor 7 years ago
Lioncash 0081252d31 vfs: Correct file_p variable usage within InterpretAsDirectory()
ReplaceFileWithSubdirectory() takes a VirtualFile and a VirtualDir, but
it was being passed a string as one of its arguments. The only reason
this never caused issues is because this template isn't instantiated
anywhere yet.

This corrects an issue before it occurs.
7 years ago
Lioncash 398444e676 file_util, vfs: Use std::string_view where applicable
Avoids unnecessary construction of std::string instances where
applicable.
7 years ago
Lioncash 0ba7fe4ab1 file_util: Use a u64 to represent number of entries
This avoids a truncating cast on size. I doubt we'd ever traverse a
directory this large, however we also shouldn't truncate sizes away.
7 years ago
bunnei 9533875eeb
Merge pull request #760 from lioncash/path
file_util: Use an enum class for GetUserPath()
7 years ago
Subv 5c49e56d41 GPU: Implement the NVGPU_IOCTL_CHANNEL_KICKOFF_PB ioctl2 command.
This behaves quite similarly to the SubmitGPFIFO command. Referenced from Ryujinx.
Many thanks to @gdkchan for investigating this!
7 years ago
Lioncash d66b43dadf file_util: Use an enum class for GetUserPath()
Instead of using an unsigned int as a parameter and expecting a user to
always pass in the correct values, we can just convert the enum into an
enum class and use that type as the parameter type instead, which makes
the interface more type safe.

We also get rid of the bookkeeping "NUM_" element in the enum by just
using an unordered map. This function is generally low-frequency in
terms of calls (and I'd hope so, considering otherwise would mean we're
slamming the disk with IO all the time) so I'd consider this acceptable
in this case.
7 years ago
bunnei 0f20fa5a1e
Merge pull request #754 from lioncash/part
partition_filesystem, vfs_real: Minor changes
7 years ago
bunnei de7cb91995
Merge pull request #750 from lioncash/ctx
arm_interface: Remove unused tls_address member of ThreadContext
7 years ago
bunnei 89cc8c1617
Merge pull request #755 from lioncash/ctor
file_sys/errors: Remove redundant object constructor calls
7 years ago
bunnei fe2498a650
Merge pull request #751 from Subv/tpidr_el0
CPU: Save and restore the TPIDR_EL0 system register on every context switch
7 years ago
bunnei 3d938b8c60
Merge pull request #753 from lioncash/const
vfs: Minor changes
7 years ago
bunnei d85cfc94e2
Merge pull request #752 from Subv/vfs_load
Loader: Only print the module names and addresses if they actually exist.
7 years ago
Lioncash 459e158340 file_sys/errors: Remove redundant object constructor calls
Given we're already constructing the error code, we don't need to call
the constructor inside of it.
7 years ago
Lioncash b46c0ed1fa vfs_real: Remove redundant copying of std::vector instances in GetFiles() and GetSubdirectories()
We already return by value, so we don't explicitly need to make the
copy.
7 years ago
Lioncash ec71915ede partition_filesystem, vfs_real: Add missing standard includes 7 years ago
Lioncash d36e327ba6 partition_filesystem, vfs_real: Use std::move in ReplaceFileWithSubdirectory() where applicable
Avoids unnecessary atomic increment and decrement operations.
7 years ago
Lioncash 2b91386e15 partition_filesystem, vfs_real: Use std::distance() instead of subtraction
This is a little bit more self-documenting on what is being done here.
7 years ago
Lioncash 3e0727df1b vfs_offset: Simplify TrimToFit()
We can simply use std::clamp() here, instead of using an equivalent
with std::max() and std::min().
7 years ago
Lioncash 894b0de0f2 vfs: Make WriteBytes() overload taking a std::vector pass the std::vector by const reference
Given the data is intended to be directly written, there's no need to
take the std::vector by value and copy the data.
7 years ago
Lioncash dd09439fee vfs: Use variable template variants of std::is_trivially_copyable
Provides the same behavior, but with less writing
7 years ago
Lioncash 05231d8b08 vfs: Amend constness on pointers in WriteBytes() and WriteArrays() member functions to be const qualified
These functions don't modify the data being pointed to, so these can be
pointers to const data
7 years ago
Subv 966874e357 Loader: Only print the module names and addresses if they actually exist. 7 years ago
Subv d84eb9dac6 CPU: Save and restore the TPIDR_EL0 system register on every context switch.
Note that there's currently a dynarmic bug preventing this register from being written.
7 years ago
Lioncash ae09adfcb3 arm_interface: Remove unused tls_address member of ThreadContext
Currently, the TLS address is set within the scheduler, making this
member unused.
7 years ago
bunnei 2b7d862366
Merge pull request #742 from bunnei/misc-apm
apm: Improve stub for GetPerformanceConfiguration.
7 years ago
bunnei dffd154d6d apm: Improve stub for GetPerformanceConfiguration. 7 years ago
Lioncash 0a0b3c4b9f ipc_helpers: Add PushEnum() member function to ResponseBuilder
Allows pushing strongly-typed enum members without the need to always
cast them at the call sites.

Note that we *only* allow strongly-typed enums in this case. The reason
for this is that strongly typed enums have a guaranteed defined size, so
the size of the data being pushed is always deterministic. With regular
enums this can be a little more error-prone, so we disallow them.

This function simply uses the underlying type of the enum to determine
the size of the data. For example, if an enum is defined as:

enum class SomeEnum : u16 {
  SomeEntry
};

if PushEnum(SomeEnum::SomeEntry); is called, then it will push a
u16-size amount of data.
7 years ago
bunnei c1c9ab31e8
Merge pull request #740 from Subv/acc_crash
HLE/ACC: Stub IManagerForApplication::GetAccountId to return an error.
7 years ago