greggameplayer
cef35e7c9c
correct coding style
2018-08-16 23:46:06 +02:00
greggameplayer
928e78dced
Implement GetDefaultDisplayResolutionChangeEvent
...
Require by Toki Tori and Toki Tori 2+
2018-08-16 23:25:54 +02:00
bunnei
3fd78f4d24
Merge pull request #1085 from lioncash/namespace
...
common: Namespace hex_util.h/.cpp
2018-08-16 11:54:42 -04:00
Lioncash
a0ce6de913
core: Delete System copy/move constructors and assignment operators
...
Prevents potentially making copies or doing silly things by accident
with the System instance, particularly given our current core is
designed (unfortunately) around one instantiable instance.
This will prevent the accidental case of:
auto instance = System::Instance();
being compiled without warning when it's supposed to be:
auto& instance = System::Instance();
2018-08-16 10:21:14 -04:00
MerryMage
94329038b6
dynarmic: Update to 550d662
...
550d662 load_store_exclusive: Define s == t state to be Constraint_NONE
0b69381 A64/translate: Allow for unpredictable behaviour to be defined
6d236d4 system: Implement MRS CNTFRQ_EL0
6cbb6fb A32/testenv: Add missing headers
6729328 externals: Update xbyak to v5.67
1812bd2 Squashed 'externals/xbyak/' changes from 2794cde7..671fc805
9a95802 externals: Document subtrees
714a840 A64: Implement SQ{ADD, SUB}, and UQ{ADD, SUB}'s vector variants
8cab459 A64: Implement UQADD/UQSUB's scalar variants
18a8151 ir: Add opcodes for unsigned saturating add and subtract
a5660ee x64/reg_alloc: Use type alias for array returned by GetArgumentInfo()
29489b5 ir/value: Use type alias CoprocessorInfo for std::array<u8, 8>
e23ba26 status_register_access: Add support for bits 0 and 1 of mask to MSR
55190bd fuzz_with_unicorn: Split utility functions into fuzz_util
23b049d A32/translate/load_store: Correct detection of writeback
7ec9f15 A32/translate: Add TranslateSingleInstruction
efeecb4 A32/ir_emitter: Bug fix: IREmitter::ExceptionRaised using incorrect opcode
08d1d19 A32/decoders: Split instruction list into include file
2d929cc tests: Refactor unicorn_emu to allow for A32 unicorn
f672368 microinstruction: Improve assert messages
7ebff50 emit_x64_vector: EmitVectorNarrow16: AVX512 implementation
edce230 emit_x64_vector: EmitVectorNarrow32: prefer pblendw to loading constant
2018-08-16 10:12:20 +01:00
bunnei
24a759de4a
Merge pull request #1075 from lioncash/include
...
loader/{nca, xci}: Remove unnecessary includes and unused member variables
2018-08-16 00:04:25 -04:00
Lioncash
b39cd70cd4
common: Namespace hex_util.h/.cpp
...
It's in the common code, so it should be under the Common namespace like
everything else.
2018-08-15 23:24:00 -04:00
bunnei
c594ec3417
Merge pull request #1005 from DarkLordZach/registered-fmt
...
file_sys: Add support for registration format
2018-08-15 23:11:58 -04:00
bunnei
c00b374e78
Merge pull request #1078 from lioncash/message
...
lm: Handle threads and modules within the logger
2018-08-15 18:53:47 -04:00
bunnei
69236e5aff
Merge pull request #1079 from lioncash/fmt
...
loader: Make ResultStatus directly compatible with fmt
2018-08-15 18:25:57 -04:00
bunnei
1dd27aff47
Merge pull request #1051 from B3n30/UnscheduleEventThreadsafe
...
Core::CoreTiming: add UnscheduleEventThreadsafe
2018-08-15 18:25:30 -04:00
bunnei
cee6a7ab55
Merge pull request #1080 from lioncash/ret
...
sm/controller: Correct return value of QueryPointerBufferSize
2018-08-15 18:25:05 -04:00
Lioncash
aac5792a2b
kernel/server_session: Add IsSession() member function
...
Allows querying the inverse of IsDomain() to make things more readable.
This will likely also be usable in the event of implementing
ConvertDomainToSession().
2018-08-15 06:50:50 -04:00
Lioncash
5752454629
sm/controller: Correct return value of QueryPointerBufferSize
...
This should be returning a u16 according to Switch Brew.
2018-08-15 06:16:10 -04:00
Lioncash
87d8a9c986
loader: Make ResultStatus directly compatible with fmt
...
We can make the enum class type compatible with fmt by providing an
overload of operator<<.
While we're at it, perform proper bounds checking. If something exceeds
the array, it should be a hard fail, because it's, without a doubt, a
programmer error in this case.
2018-08-15 05:52:37 -04:00
Lioncash
0769aa594e
loader/nca: Remove unnecessary includes and member variables
2018-08-15 01:41:40 -04:00
Lioncash
c8e3f98c27
loader/xci: Remove unnecessary includes and member variables
...
Many of these aren't necessary and will cause this file to be required
to be recompiled whenever any changes to those files are made, which
lengthens compile times for no reason.
This also removes an unused metadata variable from AppLoader_XCI
2018-08-15 01:41:35 -04:00
Lioncash
b74df62959
lm: Use LOG_DEBUG for printing out trace logs
...
Using LOG_TRACE here isn't a good idea because LOG_TRACE is only enabled
when yuzu is compiled in debug mode. Debug mode is also quite slow, and
so we're potentially throwing away logging messages that can provide
value when trying to boot games.
2018-08-15 01:07:41 -04:00
Lioncash
e0b0f4eece
lm: Handle threads and modules within the logger
...
The thread field serves to indicate which thread a log is related to and
provides the length of the thread's name, so we can print that out,
ditto for modules.
Now we can know what threads are potentially spawning off logging
messages (for example Lydie & Suelle bounces between MainThread and
LoadingThread when initializing the game).
2018-08-15 01:05:50 -04:00
bunnei
301baaa942
Merge pull request #1067 from lioncash/init
...
emu_window: Ensure WindowConfig members are always initialized
2018-08-14 22:43:32 -04:00
bunnei
3db1b8e0cd
Merge pull request #1073 from lioncash/3ds
...
loader: Remove address mapping remnants from citra
2018-08-14 22:43:04 -04:00
bunnei
8f9c49f7ee
Merge pull request #1072 from lioncash/svc
...
kernel/svc: Log svcBreak parameters
2018-08-14 22:42:44 -04:00
bunnei
409d2e07c2
Merge pull request #1056 from lioncash/mm
...
mm_u: Move interface class into the cpp file
2018-08-14 21:47:07 -04:00
Lioncash
96c0b81a51
loader: Remove address mapping remnants from citra
...
These mappings are leftovers from citra and don't apply to the Switch.
2018-08-14 21:37:03 -04:00
Lioncash
25d71454d1
kernel/svc: Log svcBreak parameters
...
Given if we hit here all is lost, we should probably be logging the
break reason code and associated information to distinguish between the
causes.
2018-08-14 20:54:05 -04:00
Lioncash
2e715ef70d
emu_window: Ensure WindowConfig members are always initialized
...
Previously we weren't always initializing all members of the struct.
Prevents potentially wonky behavior from occurring.
2018-08-14 19:36:43 -04:00
Lioncash
60f476cd8f
common/telemetry: Migrate core-independent info gathering to common
...
Previously core itself was the library containing the code to gather
common information (build info, CPU info, and OS info), however all of
this isn't core-dependent and can be moved to the common code and use
the common interfaces. We can then just call those functions from the
core instead.
This will allow replacing our CPU detection with Xbyak's which has
better detection facilities than ours. It also keeps more
architecture-dependent code in common instead of core.
2018-08-14 18:57:46 -04:00
bunnei
d1520410a3
Merge pull request #1055 from lioncash/init
...
audout_u: Correct IAudioOut initializer list order
2018-08-14 08:03:33 -04:00
Mat M
309564abe3
Merge pull request #1046 from ogniK5377/missing-channels
...
Added missing channel devices
2018-08-13 19:36:26 -04:00
Lioncash
b6c47b578f
mm_u: Forward all old variants of functions to the new ones
...
Ensures both variants go through the same interface, and while we're at
it, add Finalize to provide the inverse of Initialize for consistency.
2018-08-13 18:59:10 -04:00
Lioncash
9d09d92c56
mm_u: Move implementation class into the cpp file
...
Now if changes are ever made to the behavior of the class, it doesn't
involve rebuilding everything that includes the mm_u header.
2018-08-13 18:59:07 -04:00
Lioncash
57d007e545
audout_u: Correct IAudioOut initializer list order
...
Orders elements in the precise order they'll be initialized.
2018-08-13 18:23:59 -04:00
MerryMage
fcc5155601
arm_dynarmic: Remove IsExecuting check from PrepareReschedule
...
No longer required. HaltExecution is a no-op if it is not currently executing.
2018-08-13 13:59:01 +01:00
B3n30
eab35c8235
Core::CoreTiming: add UnscheduleEventThreadsafe
2018-08-13 13:56:41 +02:00
bunnei
e67630b51e
Merge pull request #1032 from lioncash/sanitize
...
vfs: Use sanitized paths within MoveFile() and MoveDirectory()
2018-08-13 01:43:35 -04:00
bunnei
bd14653417
Merge pull request #1031 from lioncash/verbosity
...
card_image: Simplify return statement of GetSubdirectories()
2018-08-13 01:42:07 -04:00
Lioncash
3476f5b4d3
kernel/object: Tighten object against data races
...
Despite being covered by a global mutex, we should still ensure that the
class handles its reference counts properly. This avoids potential
shenanigans when it comes to data races.
Given this is the root object that drives quite a bit of the kernel
object hierarchy, ensuring we always have the correct behavior (and no
races) is a good thing.
2018-08-13 00:16:40 -04:00
David Marcec
76fad8410d
Registered missing channel devices
2018-08-13 14:03:50 +10:00
David Marcec
92492ee23b
Added missing channel devices
2018-08-13 14:00:27 +10:00
bunnei
fecffeb0dd
Merge pull request #1043 from Subv/timing
...
Use an approximated amortized amount of ticks when advancing timing.
2018-08-12 22:31:55 -04:00
bunnei
9608f51cde
Merge pull request #1036 from lioncash/thread
...
scheduler: Make HaveReadyThreads() a const member function
2018-08-12 22:13:14 -04:00
bunnei
e4ed5bc836
Merge pull request #1042 from Subv/races
...
Fixed a bunch of race conditions when running in multicore mode.
2018-08-12 22:05:48 -04:00
bunnei
de5d431eec
Merge pull request #1041 from Subv/duplicated_mutex
...
Kernel/Mutex: Don't duplicate threads in the mutex waiter list.
2018-08-12 22:02:03 -04:00
Subv
d923766042
CPU/Timing: Use an approximated amortized amount of ticks when advancing timing.
...
We divide the number of ticks to add by the number of cores (4) to obtain a more or less rough estimate of the actual number of ticks added. This assumes that all 4 cores are doing similar work. Previously we were adding ~4 times the number of ticks, thus making the games think that time was going way too fast.
This lets us bypass certain hangs in some games like Breath of the Wild.
We should modify our CoreTiming to support multiple cores (both running in a single thread, and in multiple host threads).
2018-08-12 20:41:28 -05:00
Subv
a9877c8f65
Kernel/SVC: Don't reschedule the current core when creating a new thread.
...
The current core may have nothing to do with the core where the new thread was scheduled to run. In case it's the same core, then the following PrepareReshedule call will take care of that.
2018-08-12 20:38:37 -05:00
Subv
2e7802ad7d
Core/HLE: Make the 'reschedule_pending' flag atomic.
...
Another thread may write to this variable while the core in question is in the middle of checking for a reschedule request.
2018-08-12 18:41:12 -05:00
Subv
3a338d9286
CPU/HLE: Lock the HLE mutex before performing a reschedule.
...
Another thread might be in the middle of an SVC, thus altering the state of the schedulers.
2018-08-12 18:41:11 -05:00
Subv
84b542c386
Kernel/Threads: Lock the HLE mutex when executing the wakeup callback.
...
Another thread might be in the middle of a reschedule, thus altering the state of the schedulers.
2018-08-12 18:41:11 -05:00
Subv
0135b328ed
Kernel/Thread: Always use the threadsafe option when scheduling wakeups.
...
WakeAfterDelay might be called from any host thread, so err on the side of caution and use the thread-safe CoreTiming::ScheduleEventThreadsafe.
Note that CoreTiming is still far from thread-safe, there may be more things we have to work on for it to be up to par with what we want.
2018-08-12 18:40:56 -05:00
Subv
5224cc49c4
Kernel/Mutex: Don't duplicate threads in the mutex waiter list.
...
Exit from AddMutexWaiter early if the thread is already waiting for a mutex owned by the owner thread.
This accounts for the possibility of a thread that is waiting on a condition variable being awakened twice in a row.
Also added more validation asserts.
This should fix one of the random crashes in Breath Of The Wild.
2018-08-12 16:35:27 -05:00
Lioncash
b82b093108
vfs: Make VfsFilesystem constructor explicit
...
Makes it consistent with the other VFS interfaces and prevents implicit
construction.
2018-08-12 16:55:40 -04:00
Lioncash
cf0a7cd1c1
vfs: Make type hierarchy objects classes instead of structs
...
struct should be used when the data type is very simple or otherwise has
no invariants associated with it. Given these are used to form a
hierarchy, class should be used instead.
2018-08-12 16:55:40 -04:00
bunnei
424e90f0f5
Merge pull request #1025 from ogniK5377/bad-cast
...
Fixed invalid cast in loader
2018-08-12 16:22:35 -04:00
Zach Hilman
35e4a47be0
registration: Various style and documentation improvements
...
Fix logic in RealVfsFilesystem Create methods
Remove magic numbers
Fix regex errors
2018-08-12 15:55:44 -04:00
bunnei
4cafc24a4e
Merge pull request #1035 from ogniK5377/audio-dev-revision-info
...
GetAudioDeviceServiceWithRevisionInfo (Used by Bloodstained: Curse of the Moon)
2018-08-12 14:56:11 -04:00
bunnei
68c44ca0ee
Merge pull request #1028 from ogniK5377/aoa
...
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
2018-08-12 13:33:08 -04:00
Lioncash
e850ff63bc
scheduler: Make HaveReadyThreads() a const member function
...
This function doesn't modify instance state, so the const qualifier can
be added to it.
2018-08-12 12:55:58 -04:00
David Marcec
66f4f86a82
GetAudioDeviceServiceWithRevisionInfo
...
As we're not handling any anything about the revision data for GetAudioDeviceServiceWithRevisionInfo, it's currently marked as stubbed. However for games this shouldn't affect the result. Proper revision info would be more for homebrew.
2018-08-12 22:47:39 +10:00
Lioncash
63a70c253e
hid: disable clang-format around tables
...
Prevents clang-format from butchering them.
2018-08-12 05:57:33 -04:00
Lioncash
9e74d6238e
hid: Stub DisconnectNpad()
...
This is required by ARMS.
2018-08-12 05:56:28 -04:00
Lioncash
75bba25009
vfs: Use sanitized paths within MoveFile() and MoveDirectory()
...
Previously these were being unused (or partially unused). While we're at
it, use better naming to make it visibly obvious which variant of the
path is being used.
2018-08-12 04:05:01 -04:00
Lioncash
7b6519741b
card_image: Use type aliases to shorten definitions
...
We have the aliases, so we may as well use 'em.
2018-08-12 03:57:16 -04:00
Lioncash
d6a1a43854
card_image: Simplify return statement of GetSubdirectories()
...
We don't need to write out the construction long-form, we can just let
the language itself work it out off the return type.
2018-08-12 03:53:20 -04:00
David Marcec
094f6003e0
Pushed the requested sample rate instead of our fixed sample rate
2018-08-12 14:58:36 +10:00
David Marcec
98b940052c
made ResultStatus a u16
2018-08-12 14:56:22 +10:00
David Marcec
e5ee0afe6f
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
...
GetAudioRendererSampleRate is set as a "STUB" as a game could check if the sample rate it sent and the sample rate it wants don't match. Just a thought of something which could happen so keeping it as stub for the mean time
2018-08-12 14:46:12 +10:00
David Marcec
ecfbe7d9c8
Stub UpdateUserPresence
...
Needed for Retro City Rampage to go in game
2018-08-12 14:00:44 +10:00
David Marcec
a1fb8a331f
Fixed invalid cast in loader
...
GetMessageForResultStatus takes a u16, not a size_t.
2018-08-12 13:31:15 +10:00
Zach Hilman
6b76b77400
registration: Add support for force overwrite of installed
2018-08-11 23:01:42 -04:00
Zach Hilman
8f06a0f898
vfs_real: Add CreateFullPath to Create* operations
2018-08-11 22:50:48 -04:00
Zach Hilman
dda8ef11c7
control_metadata: Remove unnecessary reference to base file
2018-08-11 22:50:48 -04:00
Zach Hilman
149bda980a
romfs: Remove cyclic shared_ptr leak in romfs code
2018-08-11 22:50:48 -04:00
Zach Hilman
893447b6b0
registration: Update documentation and style
2018-08-11 22:50:48 -04:00
Zach Hilman
22bdddd6f0
nca_metadata: Remove unnecessary reference to base file
2018-08-11 22:50:48 -04:00
Zach Hilman
62e859c6c7
bis_factory: Create NAND dirs if they don't exist
2018-08-11 22:50:48 -04:00
Zach Hilman
3b3c919e20
registration: Take RawCopy function as parameter
...
Instead of defaulting to VfsRawCopy
2018-08-11 22:50:48 -04:00
Zach Hilman
e5504a060d
registered_cache: Fix missing reading from yuzu_meta
2018-08-11 22:50:48 -04:00
Zach Hilman
167bfddafa
file_sys: Comply to style guidelines
2018-08-11 22:50:48 -04:00
Zach Hilman
bfb945c243
qt: Add 'Install to NAND' option to menu
...
Prompts for title type on NCA files.
2018-08-11 22:50:48 -04:00
Zach Hilman
a91983b11c
file_sys: Add RegisteredCache
...
Manages NAND NCA get and install.
2018-08-11 22:50:48 -04:00
Zach Hilman
9aab787122
file_sys: Add support for parsing NCA metadata (CNMT)
2018-08-11 22:50:48 -04:00
Zach Hilman
ab8acce645
card_image: Add accessor for all NCAs in XCI
2018-08-11 22:50:48 -04:00
Zach Hilman
9b0e3556ed
vfs_real: Add CreateFullPath to CreateFile
...
Fixes bugs with calling CreateFile when the immediate directory does not exist.
2018-08-11 22:50:48 -04:00
Zach Hilman
c0257cf52f
filesystem: Add Open and Register functions for BISFactory
2018-08-11 22:50:48 -04:00
Zach Hilman
70a510bd8f
bis_factory: Add partial implementation of BISFactory
...
Creates and stores RegisteredCaches for user and system NAND, as creation of a RegisteredCache is expensive.
2018-08-11 22:50:48 -04:00
Zach Hilman
95bb1067c1
loader: Join 0* files in directory if filename is 00
...
i.e. Load the concatenated 00+01 if 01 exists as well. Needed for split NAND NCAs.
2018-08-11 22:50:48 -04:00
Zach Hilman
5b4119fa7f
loader: Recognize filename '00' as NCA
...
Needed to avoid mismatch filetype warnings on split NAND NCAs
2018-08-11 22:50:08 -04:00
Zach Hilman
42114e1df4
vfs: Add ConcatenatedVfsFile
2018-08-11 22:50:08 -04:00
Zach Hilman
a27ec24c0f
crypto: Remove hex utilities from key_manager
...
Move to hex_util.h in common
2018-08-11 22:50:08 -04:00
bunnei
a921d22545
Merge pull request #1022 from bunnei/fix-splat
...
Several Friend service fixes
2018-08-11 22:42:45 -04:00
bunnei
249341d08f
friend: Stub DeclareCloseOnlinePlaySession.
...
- Used by Splatoon 2.
2018-08-11 21:34:14 -04:00
bunnei
261a4f0311
friend: Fix CreateFriendService to return an IFriendService interface.
2018-08-11 21:29:58 -04:00
bunnei
ca4bf671ce
server_session: Provide more useful information and don't crash on bad IPC request.
2018-08-11 21:15:24 -04:00
Lioncash
0a93b45b6a
core: Namespace EmuWindow
...
Gets the class out of the global namespace.
2018-08-11 20:20:21 -04:00
bunnei
bc286c169f
Merge pull request #970 from DarkLordZach/loader-errors
...
loader: Add more descriptive errors
2018-08-11 19:25:30 -04:00
David Marcec
10f494eefe
Better UUID randomness
2018-08-12 02:31:43 +10:00
David Marcec
448290bee4
Removed un-needed count from ListOpenUsers and ListAllUsers
2018-08-12 02:11:04 +10:00
David Marcec
2592e41301
Added better explanations in the profile manager
2018-08-12 01:51:31 +10:00
David Marcec
0b6f8ba51e
Code cleanup for profile manager
2018-08-12 01:34:22 +10:00
David Marcec
d0b2950434
Removed const from ProfileBase Invalidate
2018-08-12 00:41:17 +10:00
David Marcec
42431d2aa6
fixed invalid uuid bool operator
2018-08-11 21:29:10 +10:00
David Marcec
b8e70faa2d
Added GetOpenUserCount
2018-08-11 20:45:06 +10:00
David Marcec
662218e997
Removed all for loops from the profile manager
2018-08-11 20:15:59 +10:00
David Marcec
c3013c7c9c
Added missing ListAllUsers count
2018-08-11 20:06:06 +10:00
David Marcec
acff922762
If statement style change
2018-08-11 18:46:42 +10:00
David Marcec
dfea525cbe
Second round of account changes
2018-08-11 18:26:13 +10:00
David Marcec
82fa0bcea7
First round of account changes
2018-08-11 16:47:33 +10:00
David Marcec
6aa8ee6943
Refactored profile manager sharing
2018-08-11 13:17:06 +10:00
David Marcec
b76ddb7647
Merge remote-tracking branch 'origin/master' into better-account
2018-08-11 10:35:47 +10:00
David Marcec
2a3b335b15
Added IsUserRegistrationRequestPermitted
2018-08-11 10:33:11 +10:00
Lioncash
20c2928c2b
video_core; Get rid of global g_toggle_framelimit_enabled variable
...
Instead, we make a struct for renderer settings and allow the renderer
to update all of these settings, getting rid of the need for
global-scoped variables.
This also uncovered a few indirect inclusions for certain headers, which
this commit also fixes.
2018-08-10 19:00:09 -04:00
Zach Hilman
ec3bef7b4c
loader: Add more descriptive errors
...
Full list of new errors and descriptions in core/loader/loader.h
2018-08-09 21:06:59 -04:00
bunnei
5191c20b71
Merge pull request #997 from lioncash/const-func
...
core: Make function reference parameters const where applicable
2018-08-09 19:30:51 -04:00
bunnei
69cd213fac
Merge pull request #990 from lioncash/entry
...
fsp_srv: Emplace entries first when building index instead of emplacing last
2018-08-09 19:29:36 -04:00
bunnei
96ef22d3d0
Merge pull request #897 from DarkLordZach/vfs-accuracy-2
...
vfs: Add VfsFilesystem and fix RealVfs* implementations
2018-08-09 19:22:06 -04:00
Lioncash
b46a5c42ff
buffer_queue: Make reference parameter of SetPreallocatedBuffer const
...
This is simply copied by value, so there's no need to make it a
modifiable reference.
While we're at it, make the names of the parameters match its
definition.
2018-08-09 03:08:14 -04:00
Lioncash
ff5024ee2a
hle_ipc: Make WriteToOutgoingCommandBuffer()'s reference parameter const
...
This function doesn't modify anything within the reference Thread
instance.
2018-08-09 02:51:38 -04:00
David Marcec
4e1471ef21
Don't add user if the uuid already exists
2018-08-09 13:30:58 +10:00
Zach Hilman
668458525e
vfs: Fix documentation
2018-08-08 21:45:04 -04:00
bunnei
2f4f4f147f
Merge pull request #986 from mailwl/acc-loadimage
...
Service/Account: stub LoadImage function
2018-08-08 21:21:06 -04:00
Zach Hilman
94cf327e77
vfs: Fix typo in VfsFilesystem docs
2018-08-08 21:18:45 -04:00
Zach Hilman
2b6128fe0b
file_util: Use enum instead of bool for specifing path behavior
2018-08-08 21:18:45 -04:00
Zach Hilman
dad2ae1ee0
loader: Remove unused IdentifyFile overload
2018-08-08 21:18:45 -04:00
Zach Hilman
656e97df16
vfs: Use RealVfsFilesystem for fs-operations in RealVfsDirectory
2018-08-08 21:18:45 -04:00
Zach Hilman
52a2e42cb9
file_sys: Add missing include in savedata_factory
2018-08-08 21:18:45 -04:00
Zach Hilman
4b471f0554
core: Port core to VfsFilesystem for file access
2018-08-08 21:18:45 -04:00
Zach Hilman
aaa8fdea52
vfs: Add unreachable assert to file permissions converter
2018-08-08 21:18:45 -04:00
Zach Hilman
2de2ec25d6
vfs: Add RealVfsFilesystem implementation
2018-08-08 21:18:45 -04:00
Zach Hilman
3bf488ce52
vfs: Add VfsFilesystem interface and default implementation
2018-08-08 21:18:45 -04:00
Zach Hilman
b36dee364e
filesystem: Remove unnecessary if conditions
2018-08-08 21:18:45 -04:00
bunnei
9f48454ea9
Merge pull request #978 from bunnei/fixioctl
...
nvhost_gpu: Don't over copy IoctlSubmitGpfifo.
2018-08-08 19:16:14 -04:00
Lioncash
7353cfc781
fsp_srv: Use std::string_view's copy() function instead of strncpy()
...
Given elements inserted into a vector are zeroed out, we can just copy
MAX_LEN - 1 elements and the data will already be properly null
terminated.
2018-08-08 18:51:52 -04:00
Lioncash
4afb05d0cc
fsp_srv: Emplace entries first when building index instead of emplacing last
...
The current way were doing it would require copying a 768 character
buffer (part of the Entry struct) to the new element in the vector.
Given it's a plain array, std::move won't eliminate that.
Instead, we can emplace an instance directly into the destination buffer
and then fill it out, avoiding the need to perform any unnecessary
copies.
Given this is done in a loop, we can request the destination to allocate
all of the necessary memory ahead of time, avoiding the need to
potentially keep reallocating over and over on every few insertions into
the vector.
2018-08-08 18:51:41 -04:00
bunnei
756e1e6f9b
Merge pull request #975 from bunnei/am-stub
...
am: Stub SetScreenShotImageOrientation.
2018-08-08 16:46:45 -04:00
bunnei
fd9da4232b
Merge pull request #850 from DarkLordZach/icon-meta
...
Add Icons and Metadata Support
2018-08-08 12:27:19 -04:00
bunnei
448264e719
Merge pull request #958 from lioncash/nv-global
...
nvdrv: Get rid of global std::weak_ptr
2018-08-08 11:58:45 -04:00
David Marcec
e9978fd4f5
Open first user added
2018-08-09 01:37:55 +10:00
David Marcec
75169c7570
Inital pass of account backend implementation
...
This commit verified working on puyo
2018-08-09 01:09:12 +10:00
David Marcec
03d7faf583
GetProfileBase and GetProfileBaseAndData added
2018-08-08 23:41:12 +10:00
David Marcec
6f691e71bf
began initial implementation of "ProfileManager"
2018-08-08 22:26:42 +10:00
mailwl
c0d44d3b2a
Service/Account: stub LoadImage function
2018-08-08 14:42:54 +03:00
David Marcec
5f8d253ce0
Switched uuids from u128 to new UUID struct
2018-08-08 21:09:45 +10:00
bunnei
6a5d032809
Merge pull request #965 from lioncash/unused-files
...
hle: Remove unused romfs.cpp/.h
2018-08-08 03:00:38 -04:00
bunnei
4941e3d412
Merge pull request #974 from lioncash/acc
...
acc: Add missing function table entries for GetUserCount
2018-08-08 02:56:00 -04:00
mailwl
3c498189b6
hid: fix IsSixAxisSensorAtRest() response
2018-08-08 09:36:23 +03:00
bunnei
0f834e2284
nvhost_gpu: Don't over copy IoctlSubmitGpfifo.
2018-08-08 01:49:47 -04:00
bunnei
b7fb9f2071
am: Stub SetScreenShotImageOrientation.
...
- Used by Super Mario Odyssey.
2018-08-08 00:41:35 -04:00
Lioncash
934a2b9604
acc: Add missing function table entries for GetUserCount
...
Given this is stubbed within the common module in
5ac7b84, it should be added to the other relevant tables as well.
2018-08-07 22:50:45 -04:00
bunnei
2bc296801a
acc: Stub GetUserCount. ( #973 )
...
- Used by Pokken Tournament DX.
2018-08-07 22:39:12 -04:00
Lioncash
d378d98e26
nvdrv: Get rid of global std::weak_ptr
...
Rather than use global state, we can simply pass the instance into the
NVFlinger instance directly.
2018-08-07 21:53:05 -04:00
Lioncash
cd1a96f389
hle: Remove unused romfs.cpp/.h
...
These files are no longer used, so we can get rid of them.
2018-08-07 19:34:12 -04:00
bunnei
b9829a05be
Merge pull request #920 from DarkLordZach/titlekey
...
content_archive: Add support for titlekey cryptography
2018-08-07 17:01:25 -04:00
bunnei
7ed8565978
Merge pull request #957 from lioncash/event
...
nvflinger: Correct typo in name of composition event
2018-08-07 15:56:51 -04:00
bunnei
6576bc8927
Merge pull request #954 from lioncash/hid
...
services/hid: Add ActivateNpadWithRevision() to the hid function info array
2018-08-07 15:56:34 -04:00
bunnei
2d57cbaec1
Merge pull request #960 from lioncash/apm
...
service/apm: Add the apm:sys service
2018-08-07 14:57:12 -04:00
bunnei
573a66c23d
Merge pull request #955 from lioncash/view
...
nvflinger: Use std::string_view in OpenDisplay()
2018-08-07 14:26:51 -04:00
bunnei
97c6f984dc
Merge pull request #953 from lioncash/time
...
service/time: Amend command IDs of ToPosixTime() and ToPosixTimeWithMyRule()
2018-08-07 14:25:52 -04:00
bunnei
b09c4f45c7
Merge pull request #956 from lioncash/nv
...
nvdrv: Get rid of indirect inclusions
2018-08-07 14:23:32 -04:00
bunnei
c392650e21
Merge pull request #952 from lioncash/usb
...
service: Add usb services
2018-08-07 11:27:49 -04:00
bunnei
8f73f41824
Merge pull request #949 from lioncash/priv
...
client_port: Make all data members private
2018-08-07 11:20:26 -04:00
Zach Hilman
3e81c09094
loader: Fix scope error in DeconstructedRomDirectory
2018-08-07 10:37:38 -04:00
Lioncash
12ab5a0547
service/apm: Add the apm:sys service
...
Adds the basic skeleton of the apm:sys service based off the information
on Switch Brew.
2018-08-07 10:05:26 -04:00
Lioncash
d3f64785d1
nvflinger: Correct typo in name of composition event
2018-08-07 09:03:52 -04:00
Lioncash
300ab211e8
nvdrv: Make Ioctl()'s definition match its prototype
...
The only reason this wasn't a compilation error is because we use
little-endian systems.
2018-08-07 08:57:11 -04:00
Lioncash
fa8017295b
nvdrv: Get rid of indirect inclusions
2018-08-07 08:54:50 -04:00
Lioncash
e40b0cf437
nvflinger: Get rid of indirect inclusions
2018-08-07 08:32:05 -04:00
Lioncash
7e49881b7f
nvflinger: Use std::string_view in OpenDisplay()
...
We don't need to use a std::string here, given all that's done is
comparing the character sequence against another. This allows passing
regular const char* without needing to heap allocate.
2018-08-07 08:32:06 -04:00
Lioncash
890e543304
services/hid: Add ActivateNpadWithRevision() to the hid function info array
...
Updated based off the information on Switch Brew.
2018-08-07 03:23:20 -04:00
Lioncash
20c976ff2a
service/time: Amend command IDs of ToPosixTime() and ToPosixTimeWithMyRule()
...
Updates the ID of these based off the information on Switch Brew.
2018-08-07 03:18:07 -04:00
Lioncash
45bc449ff9
service: Add usb services
...
Adds basic skeleton for the usb services based off the information provided by Switch Brew.
2018-08-07 03:14:03 -04:00
Zach Hilman
91cfe70301
loader: Add icon and title support to XCI
2018-08-06 23:13:42 -04:00
Zach Hilman
5927cf0e17
Use const where applicable
2018-08-06 23:06:33 -04:00
Zach Hilman
9e88f03e75
Avoid parsing RomFS to directory in NCA
2018-08-06 23:06:33 -04:00
Lioncash
da2f00ab7d
client_port: Make all data members private
...
These members don't need to be entirely exposed, we can instead expose
an API to operate on them without directly needing to mutate them
We can also guard against overflow/API misuse this way as well, given
active_sessions is an unsigned value.
2018-08-06 23:05:17 -04:00
bunnei
826b1394e8
Merge pull request #931 from DarkLordZach/nca-as-drd
...
loader: Make AppLoader_NCA rely on directory loading code
2018-08-06 22:02:41 -04:00
Hedges
e2b74f6354
GDBStub works with both Unicorn and Dynarmic now ( #941 )
...
* GDBStub works with both Unicorn and Dynarmic now
* Tidy up
2018-08-06 22:01:24 -04:00
bunnei
f179e87864
Merge pull request #940 from lioncash/private
...
kernel/event: Make data members private
2018-08-06 21:31:25 -04:00
bunnei
83ef37ca37
Merge pull request #934 from lioncash/chrono
...
core_timing: Make GetGlobalTimeUs() return std::chrono::microseconds
2018-08-06 18:03:05 -04:00
Lioncash
2feb1a8ba6
kernel/event: Make data members private
...
Instead we can simply provide accessors to the required data instead of
giving external read/write access to the variables directly.
2018-08-06 12:53:02 -04:00
bunnei
1ac45342dd
Merge pull request #933 from lioncash/memory
...
memory: Correct prototype of ZeroBlock
2018-08-06 12:34:57 -04:00
mailwl
2ea0f0fd16
Service/Audio: audout_a.cpp: remove pragma once
2018-08-06 12:29:27 +03:00
bunnei
0b80bbeb95
Merge pull request #932 from lioncash/func
...
core_timing: Use transparent functors where applicable
2018-08-05 23:37:53 -04:00
bunnei
f1b93d63d1
Merge pull request #929 from lioncash/addr
...
gdbstub: Minor changes
2018-08-05 23:36:26 -04:00
bunnei
03b7ebbc08
Merge pull request #930 from lioncash/thread
...
address_arbiter: Return by value from GetThreadsWaitingOnAddress()
2018-08-05 23:35:59 -04:00
bunnei
bb21c2198a
Merge pull request #925 from bunnei/audren
...
Implement audren audio output
2018-08-05 23:35:22 -04:00
Lioncash
6c56754322
perf_stats: Correct literal used for MAX_LAG_TIME_US
...
ms is shorthand for milliseconds, not microseconds, and given there's no
comment indicating that this was intentional, it probably wasn't.
2018-08-05 22:12:58 -04:00
Lioncash
a0c3a46aa9
core_timing: Make GetGlobalTimeUs() return std::chrono::microseconds
...
Enforces the time unit being returned and also allows using the standard
time utilities to manipulate it.
2018-08-05 22:07:30 -04:00
Lioncash
2a7a2b739b
memory: Make prototype parameter names match their definitions
...
Keeps the code consistent.
2018-08-05 21:39:09 -04:00
Lioncash
4aa31b0618
memory: Correct prototype of ZeroBlock
...
Previously, the prototype wasn't matching the definition, which has a
Processor parameter before the destination address.
2018-08-05 21:39:06 -04:00
Lioncash
2fc5c783ed
memory: Remove unnecessary const qualifiers in prototypes
...
These aren't necessary, as value-wise const only matters in the
definition.
2018-08-05 21:38:22 -04:00
Lioncash
6edd828101
core_timing: Convert typedef into a type alias
...
Makes the alias a little more readable from left-to-right.
2018-08-05 21:27:14 -04:00
Lioncash
d9815b523b
core_timing: Use transparent functors where applicable
...
Gets rid of the need to hardcode the type in multiple places. This will
now be deduced automatically, based off the elements in the container
being provided to the algorithm.
2018-08-05 21:19:24 -04:00
Zach Hilman
7f9430f7ae
loader: Make AppLoader_NCA rely on directory loading code
...
Eliminates duplicate code shared between their Load methods, after all the only difference is how the romfs is handled.
2018-08-05 18:28:15 -04:00
Lioncash
00f7e584ce
gdbstub: Use type alias for breakpoint maps
...
Rather than having to type out the full std::map type signature, we can
just use a straightforward alias. While we're at it, rename
GetBreakpointList to GetBreakpointMap, which makes the name more
accurate. We can also get rid of unnecessary u64 static_casts, since
VAddr is an alias for a u64.
2018-08-05 16:41:22 -04:00
Lioncash
89c076b4b1
gdbstub: Move all file-static variables into the GDBStub namespace
...
Keeps everything under the same namespace. While we're at it, enclose
them all within an inner anonymous namespace.
2018-08-05 16:41:18 -04:00
bunnei
c0af42d6eb
Merge pull request #912 from lioncash/global-var
...
video_core: Eliminate the g_renderer global variable
2018-08-05 16:37:39 -04:00
Lioncash
7a77d0a71e
address_arbiter: Return by value from GetThreadsWaitingOnAddress()
...
In all cases the vector being supplied is empty, so we can just return
by value in these instances.
2018-08-05 16:29:17 -04:00
Lioncash
ca96f8db4e
gdbstub: Replace PAddr alias with VAddr
...
In all cases, a virtual address is being passed in, not a physical one.
2018-08-05 15:56:01 -04:00
bunnei
b46df98e93
audio_core: Implement audren_u audio playback.
2018-08-04 21:54:30 -04:00
bunnei
a0a605df06
Merge pull request #924 from lioncash/arp
...
service: Add arp services
2018-08-04 21:20:26 -04:00
bunnei
cd96c04339
Merge pull request #921 from lioncash/view
...
core/crypto: Minor changes
2018-08-04 21:17:10 -04:00
bunnei
1dee8ceda1
audio_core: Use s16 where possible for audio samples.
2018-08-04 18:22:58 -04:00
bunnei
f1cb3903ac
audio_core: Port codec code from Citra for ADPCM decoding.
2018-08-04 18:22:58 -04:00
Lioncash
de72956181
service: Add arp services
...
Adds the basic skeleton of the arp services based off the information
provided by Switch Brew.
2018-08-04 18:01:12 -04:00
Lioncash
df51207ed2
service: Remove redundant #pragma once directives
...
These don't do anything within .cpp files (we don't include cpp files,
so...)
2018-08-04 17:39:08 -04:00
Lioncash
0d04ee97dc
aes_util: Add static assertion to Transcode() and XTSTranscode() to ensure well-defined behavior
...
These functions should only be given trivially-copyable types.
2018-08-04 17:30:52 -04:00
Lioncash
64c8212ae1
aes_util: Make CalculateNintendoTweak() an internally linked function
...
This function doesn't directly depend on class state, so it can be
hidden entirely from the interface in the cpp file.
2018-08-04 17:30:48 -04:00
Lioncash
b25468b498
aes_util: Make Transcode() a const member function
...
This doesn't modify member state, so it can be made const.
2018-08-04 16:49:42 -04:00
Lioncash
8da651ac4d
core/crypto: Remove unnecessary includes
2018-08-04 16:44:07 -04:00
Lioncash
c1f76abfaf
key_manager: Use regular std::string instead of std::string_view
...
The benefit of std::string_view comes from the idea of avoiding copies
(essentially acting as a non-owning view), however if we're just going
to copy into a local variable immediately, there's not much benefit
gained here.
2018-08-04 16:37:30 -04:00
Zach Hilman
2cc962e171
content_archive: Add support for titlekey cryptography
2018-08-04 14:57:21 -04:00
bunnei
9f846d3aa4
audio_core: Streams need unique names for CoreTiming.
2018-08-04 14:34:12 -04:00
bunnei
2b06301dbf
Merge pull request #849 from DarkLordZach/xci
...
XCI and Encrypted NCA Support
2018-08-04 14:33:11 -04:00
Lioncash
2665457f4a
renderer_base: Make Rasterizer() return the rasterizer by reference
...
All calling code assumes that the rasterizer will be in a valid state,
which is a totally fine assumption. The only way the rasterizer wouldn't
be is if initialization is done incorrectly or fails, which is checked
against in System::Init().
2018-08-04 02:36:58 -04:00
Lioncash
6030c5ce41
video_core: Eliminate the g_renderer global variable
...
We move the initialization of the renderer to the core class, while
keeping the creation of it and any other specifics in video_core. This
way we can ensure that the renderer is initialized and doesn't give
unfettered access to the renderer. This also makes dependencies on types
more explicit.
For example, the GPU class doesn't need to depend on the
existence of a renderer, it only needs to care about whether or not it
has a rasterizer, but since it was accessing the global variable, it was
also making the renderer a part of its dependency chain. By adjusting
the interface, we can get rid of this dependency.
2018-08-04 02:36:57 -04:00
bunnei
b0129489ea
Merge pull request #913 from lioncash/unused-func
...
memory: Remove unused GetSpecialHandlers() function
2018-08-04 02:17:44 -04:00
bunnei
206f2e3436
Merge pull request #914 from lioncash/codeset
...
kernel/process: Use accessors instead of class members for referencing segment array
2018-08-04 02:17:25 -04:00
Lioncash
e93fa7f2cc
kernel/thread: Fix potential crashes introduced in 26de4bb521
...
This amends cases where crashes can occur that were missed due to the
odd way the previous code was set up (using 3DS memory regions that
don't exist).
2018-08-03 23:49:10 -04:00
Lioncash
e649db8c6b
kernel/process: Use std::array where applicable
2018-08-03 14:46:30 -04:00
Lioncash
2beda7c2b3
kernel/process: Use accessors instead of class members for referencing segment array
...
Using member variables for referencing the segments array increases the
size of the class in memory for little benefit. The same behavior can be
achieved through the use of accessors that just return the relevant
segment.
2018-08-03 14:45:45 -04:00
Lioncash
59b04c0df6
memory: Remove unused GetSpecialHandlers() function
...
This is just unused code, so we may as well get rid of it.
2018-08-03 14:20:50 -04:00
bunnei
40e63ede6d
Merge pull request #908 from lioncash/memory
...
core/memory: Get rid of 3DS leftovers
2018-08-03 14:07:49 -04:00
Lioncash
26de4bb521
core/memory: Get rid of 3DS leftovers
...
Removes leftover code from citra that isn't needed.
2018-08-03 11:22:47 -04:00
David
c1d54f4aea
Added ability to change username & language code in the settings ui. Added IProfile::Get and SET::GetLanguageCode for libnx tests ( #851 )
2018-08-03 11:02:55 -04:00
bunnei
40e78b9a89
Merge pull request #898 from lioncash/mig
...
service: Add migration services
2018-08-03 11:00:27 -04:00
bunnei
00ba704a7f
Merge pull request #892 from lioncash/global
...
video_core: Make global EmuWindow instance part of the base renderer …
2018-08-03 00:31:32 -04:00
bunnei
4c3c608d59
Merge pull request #894 from lioncash/object
...
kernel: Move object class to its own source files
2018-08-03 00:28:43 -04:00
bunnei
4b84d5bcec
Merge pull request #904 from lioncash/static
...
kernel/thread: Minor changes
2018-08-03 00:19:29 -04:00
bunnei
61ed68f3d0
Merge pull request #905 from lioncash/vma
...
kernel/vm_manager: Minor changes
2018-08-02 23:18:03 -04:00
bunnei
291ccf7257
Merge pull request #903 from lioncash/copy
...
vfs_vector: Minor changes
2018-08-02 23:01:19 -04:00
bunnei
4de18e054b
Merge pull request #899 from lioncash/unused
...
hw: Remove unused files
2018-08-02 14:58:01 -04:00
bunnei
e79e967151
Merge pull request #891 from lioncash/ns
...
service/ns: Add missing ns services
2018-08-02 14:57:24 -04:00
Lioncash
d94a173877
kernel/vm_manager: Convert loop into std::any_of()
2018-08-02 12:46:15 -04:00
Lioncash
c4e0c3d76c
kernel/vm_manager: Use const where applicable
...
Makes our immutable state explicit.
2018-08-02 12:21:46 -04:00
Lioncash
ce5ad45278
kernel/vm_manager: Use the VAddr type alias in CarveVMA()
...
These two variables correspond to address ranges.
2018-08-02 12:15:50 -04:00
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.
2018-08-02 12:01:25 -04:00
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.
2018-08-02 11:56:11 -04:00
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.
2018-08-02 11:54:23 -04:00
Lioncash
42a4c6b79e
vfs_vector: Remove unused variable in FindAndRemoveVectorElement()
...
This wasn't being used for anything, so it can be removed.
2018-08-02 11:40:24 -04:00
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()
2018-08-02 11:37:39 -04:00
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.
2018-08-02 10:23:10 -04:00
Lioncash
7469e26e5e
service: Add migration services
...
Adds the basic skeleton for the mig:usr service based off information
provided by Switch Brew.
2018-08-02 10:09:45 -04:00
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.
2018-08-01 23:34:42 -04:00
Lioncash
5233040ab4
service: Add psc services
...
Adds the basic skeleton for the psc services based off the information
provided by Switch Brew.
2018-08-01 23:31:27 -04:00
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.
2018-08-01 21:40:30 -04:00
bunnei
746d7d4d28
Merge pull request #888 from lioncash/caps
...
service: Add capture services
2018-08-01 21:34:28 -04:00
bunnei
9bb8720289
Merge pull request #890 from lioncash/logger
...
lm: Amend name of ILogger
2018-08-01 21:33:11 -04:00
bunnei
16b2fd9fc8
Merge pull request #889 from lioncash/fsp
...
service/filesystem: Add fsp:ldr and fsp:pr services
2018-08-01 21:32:54 -04:00
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.
2018-08-01 18:02:18 -04:00
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.
2018-08-01 17:08:44 -04:00
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.
2018-08-01 17:01:29 -04:00
Lioncash
e39294c267
service: Add capture services
...
Adds the basic skeleton for the capture services based off information
provided by Switch Brew.
2018-08-01 16:45:51 -04:00
Lioncash
d109279543
service: Add bpc and pcv services
...
Adds the basic skeleton for the remaining pcv-related services based off
information on Switch Brew.
2018-08-01 16:13:04 -04:00
bunnei
703663d761
Merge pull request #882 from lioncash/unused
...
kernel/thread: Remove unimplemented function prototype
2018-07-31 22:25:49 -07:00
Zach Hilman
13cdf1f159
Add missing parameter to files.push_back()
2018-08-01 00:16:54 -04:00
Zach Hilman
0497bb5528
Fix merge conflicts with opus and update docs
2018-08-01 00:16:54 -04:00
Zach Hilman
187d8e215f
Use more descriptive error codes and messages
2018-08-01 00:16:54 -04:00
Zach Hilman
9d59b96ef9
Use static const instead of const static
2018-08-01 00:16:54 -04:00
Zach Hilman
a9c921a41d
Use ErrorEncrypted where applicable and fix no keys crash
2018-08-01 00:16:54 -04:00
Zach Hilman
03149d3e4a
Add missing includes and use const where applicable
2018-08-01 00:16:54 -04:00
Zach Hilman
150527ec19
Allow key loading from %YUZU_DIR%/keys in addition to ~/.switch
2018-08-01 00:16:54 -04:00
Zach Hilman
239a3113e4
Make XCI comply to review and style guidelines
2018-08-01 00:16:54 -04:00
Zach Hilman
22342487e8
Extract mbedtls to cpp file
2018-08-01 00:16:54 -04:00
Zach Hilman
83c3ae8be8
Add missing string.h include
2018-08-01 00:16:54 -04:00
Zach Hilman
c54a10cb4f
Update mbedtls and fix compile error
2018-08-01 00:16:54 -04:00
Zach Hilman
df5b75694f
Remove files that are not used
2018-08-01 00:16:54 -04:00
bunnei
d2ad279a32
Merge pull request #871 from bunnei/audio-config
...
audio_core: Add configuration settings.
2018-07-31 21:04:26 -07:00
Lioncash
49e198b20d
kernel/thread: Remove unimplemented function prototype
...
Given there's no implementation, we may as well remove the code
entirely.
2018-07-31 23:21:38 -04:00
bunnei
ff2c1b0a94
Merge pull request #877 from lioncash/remove
...
kernel: Remove unused object_address_table.cpp/.h
2018-07-31 20:11:39 -07:00
bunnei
98af269415
Merge pull request #880 from lioncash/audio
...
service/audio: Add missing services
2018-07-31 20:11:04 -07:00
bunnei
ca84b530a3
audio_core: Add configuration settings.
2018-07-31 22:38:42 -04:00
bunnei
f5efac3442
Merge pull request #876 from lioncash/include
...
kernel: Remove unnecessary includes
2018-07-31 19:16:05 -07:00
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.
2018-07-31 21:58:30 -04:00
bunnei
da07faebfe
Merge pull request #879 from lioncash/audio
...
audout_u: Remove std::move in OpenAudioOutImpl()
2018-07-31 16:49:56 -07:00
bunnei
3575c076cb
Merge pull request #869 from Subv/ubsan
...
Corrected a few error cases detected by asan/ubsan
2018-07-31 09:24:13 -07:00
bunnei
fd020ad52a
Merge pull request #875 from lioncash/fgm
...
service: Add fgm services
2018-07-31 09:23:17 -07:00
bunnei
3a2581cc7d
Merge pull request #874 from lioncash/am
...
service/am: Add missing am services
2018-07-31 09:22:56 -07:00
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.
2018-07-31 11:03:08 -04:00
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.
2018-07-31 10:24:38 -04:00
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.
2018-07-31 10:15:17 -04:00
bunnei
b79362b9da
Merge pull request #870 from lioncash/init
...
arm_dynarmic: Correct initializer list order
2018-07-31 07:12:54 -07:00
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.
2018-07-31 08:02:20 -04:00
Lioncash
268eeeb406
service: Add fgm services
...
Adds the basic skeleton for the fgm services based off the information
provided by Switch Brew.
2018-07-31 08:01:19 -04:00
Lioncash
f08c0520a4
arm_dynarmic: Make SetTlsAddress() prototype and definition consistent
...
Makes the definition use the same type aliases as in its prototype.
2018-07-31 07:58:26 -04:00
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.
2018-07-31 07:56:59 -04:00
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()
2018-07-31 07:54:58 -04:00
Lioncash
e373027a73
service: Add the pcie service
...
Adds the basic skeleton of the pcie service based off information on
Switch Brew.
2018-07-31 06:40:21 -04:00
Subv
e119e17d18
nvhost_gpu: Added checks to ensure we don't read past the end of the entries when handling a GPU command list.
2018-07-30 20:09:13 -05:00
Subv
2482aca7c3
nvhost_ctrl_gpu: Only read the input parameters if they are actually there.
...
Passing nullptr to memcpy is undefined behavior.
2018-07-30 20:08:36 -05:00
bunnei
eaf66b4c9f
audio_core: Move to audout_u impl.
...
- This is necessary so streams are created on the same thread.
2018-07-30 18:44:16 -04:00
David
a483e5e28d
Implemented various hwopus functions ( #853 )
2018-07-30 15:42:20 -07:00
bunnei
45d1438530
Merge pull request #858 from lioncash/cast
...
partition_filesystem: Remove dynamic_cast in PrintDebugInfo()
2018-07-30 10:09:36 -07:00
bunnei
c5fa3560a6
Merge pull request #857 from lioncash/wlan
...
service: Add wlan services
2018-07-30 10:06:52 -07:00
bunnei
2c4bb11015
Merge pull request #856 from lioncash/btm
...
service: Add btm services
2018-07-30 10:06:34 -07:00
Hexagon12
fd797e2424
Add some HID commands ( #843 )
...
* Added some HID commands
* Addressed comments
2018-07-30 10:06:21 -07:00
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.
2018-07-29 06:16:59 -04:00
Lioncash
6ea416091e
service: Add wlan services
...
Adds the basic skeleton for the wlan services based off the information
on Switch Brew.
2018-07-28 21:54:55 -04:00
Lioncash
7ce6858086
service/btm: Add basic implementation of GetCoreImpl()
...
Based off information on SwIPC and Switch Brew.
2018-07-28 21:09:07 -04:00
Lioncash
ca7655be3a
service: Add btm services
...
Adds the skeleton for the btm services based off the information on
Switch Brew.
2018-07-28 21:09:07 -04:00
bunnei
458fdda700
Merge pull request #847 from lioncash/ncm
...
service: Add ncm services
2018-07-28 10:46:09 -07:00
bunnei
d00dcdb1be
Merge pull request #846 from lioncash/mii
...
service: Add mii services
2018-07-28 10:45:31 -07:00
bunnei
e1d66ea794
Merge pull request #842 from bunnei/audio-core
...
Initial implementation of Audio Core
2018-07-27 20:25:32 -07:00
bunnei
f1c519f2cb
audout: Implement IAudioOut interface with AudioCore.
2018-07-27 22:55:39 -04:00
bunnei
2a742229ee
core: Add AudioCore to global state.
2018-07-27 22:33:37 -04:00
bunnei
ab756fd068
audio_core: Add initial code for keeping track of audout state.
2018-07-27 22:33:31 -04:00
Zach Hilman
906d785c73
RomFS Extraction
2018-07-27 18:14:03 -04:00
Lioncash
7931cc0ceb
service: Add ncm services
...
Adds the basic skeleton for the ncm services based off information on
Switch Brew.
2018-07-27 17:38:30 -04:00
bunnei
0191a1e526
Merge pull request #845 from lioncash/nfc
...
service: Add nfc services
2018-07-27 14:29:27 -07:00
bunnei
833ebbb626
Merge pull request #844 from lioncash/lbl
...
service: Add the lbl service
2018-07-27 13:06:11 -07:00
bunnei
d2749ef0ed
Merge pull request #841 from lioncash/btdrv
...
service: Add the btdrv service
2018-07-27 13:05:36 -07:00
Lioncash
f46bfdd77d
service: Add mii services
...
Adds the skeleton for the mii services based off information provided by
Switch Brew
2018-07-27 16:01:29 -04:00
Lioncash
50dadc33e3
service/nfc: Implement Create[x]Interface functions
...
These simply return the respective interface.
2018-07-27 15:12:08 -04:00
Lioncash
04d144aa40
service: Add nfc services
...
Adds the skeleton of the nfc service based off the information provided
on Switch Brew.
2018-07-27 14:50:24 -04:00
Lioncash
ea8dd8b650
service/lbl: Implement EnableVrMode, DisableVrMode and GetVrMode
...
Implements these functions according to the information available on
Switch Brew.
2018-07-27 14:20:42 -04:00
Lioncash
c2c543e8f7
service: Add the lbl service
...
Adds the skeleton of the lbl service based off the information provided
by Switch Brew.
2018-07-27 14:20:07 -04:00
bunnei
dc4e5f9159
Merge pull request #837 from lioncash/priv
...
kernel/timer: Make data members private where applicable
2018-07-27 07:18:50 -07:00
Lioncash
f49248437e
service: Add the btdrv service
...
Adds the skeleton for the btdrv service based off the information provided by Switch Brew
2018-07-26 18:06:17 -04:00
Lioncash
1121622dc1
service/hid: Add the hidbus, hid:dbg, hid:sys, and hid:tmp services
2018-07-26 15:05:42 -04:00
Lioncash
7550c2c866
service/hid: Add the xcd:sys service
2018-07-26 15:05:42 -04:00
Lioncash
82cb5f030d
service/hid: Add irs services
2018-07-26 15:05:24 -04:00
bunnei
8440b814bc
Merge pull request #834 from lioncash/grc
...
service: Add the grc:c service
2018-07-26 12:03:30 -07:00
bunnei
41d7b020a8
Merge pull request #832 from lioncash/nim
...
service: Add the nim services
2018-07-26 12:02:29 -07:00
bunnei
e4191b624c
Merge pull request #831 from lioncash/ldn
...
service: Add ldn services
2018-07-26 11:52:42 -07:00
bunnei
40eb243f86
Merge pull request #830 from lioncash/socket
...
service/sockets: Add missing socket services
2018-07-26 11:51:11 -07:00
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.
2018-07-26 09:53:58 -04:00
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.
2018-07-26 09:51:44 -04:00
Lioncash
f916611e32
service: Add the nim services
...
Adds the skeleton for the nim services based off information from Switch
Brew.
2018-07-26 02:47:06 -04:00
Lioncash
8781beaf0d
service: Add ldn services
...
Adds ldn services based off information provided by Switch Brew.
2018-07-26 01:48:06 -04:00
bunnei
57cd80c410
Merge pull request #827 from lioncash/log
...
service/lm: Minor changes
2018-07-25 22:30:43 -07:00
Lioncash
3f5dfc4d96
service/sockets: Add ethc:c and ethc:i services
2018-07-26 01:07:21 -04:00
Lioncash
165e7645e1
service/sockets: Add missing bsdcfg socket service
2018-07-26 01:00:15 -04:00
Sebastian Valle
1958d07d7d
Merge pull request #828 from lioncash/ldr
...
service: Add ldr services
2018-07-25 23:44:13 -05:00
Sebastian Valle
8ac52c6b56
Merge pull request #826 from lioncash/erpt
...
service: Add erpt and eupld services
2018-07-25 23:43:47 -05:00
Sebastian Valle
0e05f98be2
Merge pull request #823 from lioncash/nifm
...
service/nifm: Deduplicate interface code
2018-07-25 23:43:03 -05:00
Lioncash
3fb124961e
service: Add ldr services
...
Adds the skeleton for the ldr-related services based off the information
provided on Switch Brew.
2018-07-25 23:11:03 -04:00
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.
2018-07-25 22:40:16 -04:00
Lioncash
6f4d3d8163
lm: Amend names of Initialize() in Logger and Initialize() in LM
...
Amends these to match the information on Switch Brew.
2018-07-25 22:39:39 -04:00
Lioncash
8650be1020
lm: Add missing function entry to Logger's function table
2018-07-25 22:26:32 -04:00
Lioncash
7458e71f24
service: Add eupld services
...
Adds the skeleton for the eupld services based off information on Switch
Brew.
2018-07-25 22:13:43 -04:00
Lioncash
821f2c03cb
service: Add the erpt services
...
Adds the basic skeleton of the erpt service based off information on
Switch Brew.
2018-07-25 22:13:39 -04:00
bunnei
b0adb9a3d9
Merge pull request #824 from lioncash/nvdrv
...
service/nvdrv: Minor changes
2018-07-25 19:02:08 -07:00
bunnei
851089b482
Merge pull request #822 from lioncash/pm
...
service: Add pm services
2018-07-25 19:01:28 -07:00
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.
2018-07-25 17:37:43 -04:00
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.
2018-07-25 17:31:08 -04:00
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.
2018-07-25 17:18:41 -04:00
Lioncash
c664f8a257
service: Add pm services
...
Adds the skeleton for the process management services based off
information on Switch Brew.
2018-07-25 16:57:16 -04:00
Lioncash
4175712976
service: Add the es service
...
Adds the skeleton for the ETicket service based off the information on
Switch Brew
2018-07-25 15:36:55 -04:00
Mat M
1e4935c3a0
Merge pull request #801 from lioncash/time
...
time: Add the time:a service
2018-07-25 15:08:33 -04:00
Mat M
d3fd0351a7
Merge pull request #804 from lioncash/log
...
svc: Log parameters in SetMemoryAttribute()
2018-07-25 14:43:24 -04:00
Lioncash
3c1cb3b11e
time: Add the time:a service
...
Given we already have time:s and time:u, we should also have time:a
2018-07-25 14:42:04 -04:00
bunnei
657bd113e3
Merge pull request #803 from MerryMage/core_timing_util
...
core_timing: Split off utility functions into core_timing_util
2018-07-25 11:09:31 -07:00
bunnei
5c42cadbc9
Merge pull request #800 from lioncash/set
...
set_sys: Implement SetColorSetId()
2018-07-25 10:25:29 -07:00
bunnei
340771ccd7
Merge pull request #806 from lioncash/friend
...
friend: Deduplicate interfaces
2018-07-24 17:42:16 -07:00
bunnei
ea0bc8c002
Merge pull request #805 from lioncash/sign
...
svc: Resolve sign comparison warnings in WaitSynchronization()
2018-07-24 12:50:03 -07:00
Lioncash
4cf2185e81
deconstructed_rom_directory: Remove unused FindRomFS() function
2018-07-24 10:54:07 -04:00
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.
2018-07-24 10:26:01 -04:00
Lioncash
9539a1eadd
friend/interface: Add missing CreateDaemonSuspendSessionService() to the function handler table
2018-07-24 10:24:16 -04:00
Lioncash
77daef44b0
friend: Deduplicate interfaces
2018-07-24 10:21:51 -04:00
Lioncash
c73410bf2c
svc: Resolve sign comparison warnings in WaitSynchronization()
...
The loop's induction variable was signed, but we were comparing against
an unsigned variable.
2018-07-24 09:55:17 -04:00
Lioncash
8e8e906432
svc: Log parameters in SetMemoryAttribute()
...
Provides slightly more context than only logging out the address value.
2018-07-24 09:46:46 -04:00
bunnei
316c994f55
Merge pull request #798 from lioncash/const
...
arm_dynarmic: Make MakeJit() a const member function
2018-07-24 04:48:06 -07:00
bunnei
23e85b6b9f
Merge pull request #797 from lioncash/explicit
...
core: Make converting constructors explicit where applicable
2018-07-24 04:47:26 -07:00
bunnei
1cbf7ac6ea
Merge pull request #795 from lioncash/decl
...
apm/interface: Remove redundant declaration of InstallInterfaces()
2018-07-24 04:46:41 -07:00
bunnei
d092ea0870
Merge pull request #794 from lioncash/ref
...
mutex: Pass SharedPtr to GetHighestPriorityMutexWaitingThread() by reference
2018-07-24 04:45:34 -07:00
Lioncash
a61124a9e7
time: Simplify interface creation
...
We can use one instance of the interface instead of duplicating code.
2018-07-24 06:21:27 -04:00
MerryMage
44646e2ea0
core_timing: Split off utility functions into core_timing_util
2018-07-24 11:03:24 +01:00
MerryMage
b8459d2778
CMakeLists: Sort filenames
2018-07-24 11:02:53 +01:00
Lioncash
63c605c04a
set_sys: Implement SetColorSetId()
2018-07-24 00:48:16 -04:00
Lioncash
76f191ce36
ipc_helper: Add helper member function for popping enum values to RequestParser
2018-07-24 00:47:51 -04:00
bunnei
2f029577c7
Merge pull request #793 from lioncash/priv
...
ipc_helpers: Make member variables of ResponseBuilder private
2018-07-23 21:23:27 -07:00
bunnei
bc5b65a1b0
Merge pull request #785 from lioncash/fs
...
partition_filesystem: Use std::move where applicable
2018-07-23 20:36:59 -07:00
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.
2018-07-23 23:19:37 -04:00
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.
2018-07-23 23:13:22 -04:00
Lioncash
8b83adfed6
apm/interface: Remove redundant declaration of InstallInterfaces()
...
This is already declared in apm/apm.h
2018-07-23 23:01:04 -04:00
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.
2018-07-23 22:54:35 -04:00
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&
2018-07-23 19:40:35 -07:00
Lioncash
22fd3f0026
hle_ipc: Make constructors explicit where applicable
2018-07-23 22:40:24 -04:00
Lioncash
2a1daf8f83
ipc_helpers: Make member variables of ResponseBuilder private
...
These aren't used externally at all, so they can be made private.
2018-07-23 22:29:07 -04:00
bunnei
25635907a2
Merge pull request #786 from lioncash/exclusive
...
exclusive_monitor: Use consistent type alias for u64
2018-07-23 19:11:05 -07:00
bunnei
84cc5dd35d
Merge pull request #784 from lioncash/loader
...
loader: Minor cleanup
2018-07-23 19:08:12 -07:00
bunnei
1ce5e04be8
Merge pull request #783 from lioncash/linker
...
linker: Remove unused parameter from WriteRelocations()
2018-07-23 19:07:22 -07:00
bunnei
10dd03dec5
Merge pull request #782 from lioncash/file
...
loader/nro: Minor changes
2018-07-23 19:06:30 -07:00
bunnei
52ec1840f5
Merge pull request #780 from lioncash/move
...
vi: Minor changes
2018-07-23 18:29:11 -07:00
bunnei
e0b6771e25
Merge pull request #779 from lioncash/shared
...
hle: Remove unused config_mem and shared_page source files
2018-07-23 18:28:45 -07:00
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.
2018-07-23 20:54:57 -04:00
Lioncash
db48ebb9c9
partition_filesystem: Use std::move where applicable
...
Avoids copying a std::string instance and avoids unnecessary atomic
reference count incrementing and decrementing.
2018-07-23 20:27:11 -04:00
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.
2018-07-23 17:44:58 -04:00
Lioncash
184c516182
linker: Remove unused parameter from WriteRelocations()
...
is_jump_relocation is never used within the function, so we can just
remove it.
2018-07-23 17:40:12 -04:00
Lioncash
1b4d0ac20e
nro: Replace inclusion with a forward declaration
...
It's sufficient to use a forward declaration instead of a direct
inclusion here.
2018-07-23 17:29:02 -04:00
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.
2018-07-23 17:24:29 -04:00
Lioncash
ac8133b9ee
nro: Make constructor explicit
...
Makes it consistent with the other Apploader constructors, and prevents
implicit conversions.
2018-07-23 17:20:33 -04:00
Lioncash
1c16700372
nro: Remove unused forward declaration
...
This isn't used anywhere in the header.
2018-07-23 17:19:42 -04:00
bunnei
07e5319d55
Merge pull request #695 from DarkLordZach/nro-asset
...
NRO Assets and NACP File Format
2018-07-23 14:14:11 -07:00
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.
2018-07-23 14:53:54 -04:00
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
2018-07-23 14:49:54 -04:00
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.
2018-07-23 12:57:34 -04:00
Lioncash
1f3889a290
hle: Remove shared_page.h/.cpp
...
This is a holdover from citra that's essentially unused.
2018-07-23 12:53:07 -04:00
Lioncash
e85308cd90
set: Add missing log call in GetAvailableLanguageCodeCount()
...
Forgot to include this in 22f448b632
2018-07-23 12:37:42 -04:00
Zach Hilman
e8f641a52d
NRO Assets and NACP file format
...
Cleanup
Review fixes
2018-07-23 12:34:26 -04:00
bunnei
a85366a40c
Merge pull request #777 from lioncash/lang
...
set: Amend return value of GetAvailableLanguageCodes()
2018-07-23 09:34:08 -07:00
Lioncash
22f448b632
set: Implement GetAvailableLanguageCodeCount()
...
This just returns the size of the language code buffer.
2018-07-23 00:29:40 -04:00
Lioncash
37aeecd29f
set: Correct return code size of value in GetAvailableLanguageCodes()
...
The return code should be 32-bit in size.
2018-07-23 00:29:22 -04:00
bunnei
a4b2af7382
Merge pull request #774 from Subv/atomic_signal
...
Kernel/SVC: Perform atomic accesses in SignalProcessWideKey as per the real kernel.
2018-07-22 12:26:03 -07:00
bunnei
5ee4c49c30
Merge pull request #768 from lioncash/string-view
...
file_util, vfs: Use std::string_view where applicable
2018-07-22 11:32:28 -07:00
Subv
7841447cf0
Kernel/SVC: Perform atomic accesses in SignalProcessWideKey as per the real kernel.
2018-07-22 12:27:24 -05:00
MerryMage
0b1c2e5505
Implement exclusive monitor
2018-07-22 15:55:17 +01:00
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.
2018-07-22 03:22:28 -04:00
Lioncash
398444e676
file_util, vfs: Use std::string_view where applicable
...
Avoids unnecessary construction of std::string instances where
applicable.
2018-07-22 03:22:21 -04:00
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.
2018-07-21 22:42:08 -04:00
bunnei
9533875eeb
Merge pull request #760 from lioncash/path
...
file_util: Use an enum class for GetUserPath()
2018-07-21 18:30:04 -07:00
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!
2018-07-21 15:50:02 -05:00
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.
2018-07-21 16:21:19 -04:00
bunnei
0f20fa5a1e
Merge pull request #754 from lioncash/part
...
partition_filesystem, vfs_real: Minor changes
2018-07-21 11:38:52 -07:00
bunnei
de7cb91995
Merge pull request #750 from lioncash/ctx
...
arm_interface: Remove unused tls_address member of ThreadContext
2018-07-21 11:38:16 -07:00
bunnei
89cc8c1617
Merge pull request #755 from lioncash/ctor
...
file_sys/errors: Remove redundant object constructor calls
2018-07-21 10:53:53 -07:00
bunnei
fe2498a650
Merge pull request #751 from Subv/tpidr_el0
...
CPU: Save and restore the TPIDR_EL0 system register on every context switch
2018-07-21 10:48:30 -07:00
bunnei
3d938b8c60
Merge pull request #753 from lioncash/const
...
vfs: Minor changes
2018-07-21 10:44:08 -07:00
bunnei
d85cfc94e2
Merge pull request #752 from Subv/vfs_load
...
Loader: Only print the module names and addresses if they actually exist.
2018-07-20 22:57:18 -07:00
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.
2018-07-20 22:37:54 -04:00
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.
2018-07-20 22:30:22 -04:00
Lioncash
ec71915ede
partition_filesystem, vfs_real: Add missing standard includes
2018-07-20 22:28:35 -04:00
Lioncash
d36e327ba6
partition_filesystem, vfs_real: Use std::move in ReplaceFileWithSubdirectory() where applicable
...
Avoids unnecessary atomic increment and decrement operations.
2018-07-20 22:23:58 -04:00
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.
2018-07-20 22:19:17 -04:00
Lioncash
3e0727df1b
vfs_offset: Simplify TrimToFit()
...
We can simply use std::clamp() here, instead of using an equivalent
with std::max() and std::min().
2018-07-20 22:04:37 -04:00
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.
2018-07-20 21:51:30 -04:00
Lioncash
dd09439fee
vfs: Use variable template variants of std::is_trivially_copyable
...
Provides the same behavior, but with less writing
2018-07-20 21:47:19 -04:00
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
2018-07-20 21:40:15 -04:00
Subv
966874e357
Loader: Only print the module names and addresses if they actually exist.
2018-07-20 19:59:15 -05:00
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.
2018-07-20 19:57:45 -05:00
Lioncash
ae09adfcb3
arm_interface: Remove unused tls_address member of ThreadContext
...
Currently, the TLS address is set within the scheduler, making this
member unused.
2018-07-20 18:57:40 -04:00
bunnei
2b7d862366
Merge pull request #742 from bunnei/misc-apm
...
apm: Improve stub for GetPerformanceConfiguration.
2018-07-20 15:01:19 -07:00
bunnei
dffd154d6d
apm: Improve stub for GetPerformanceConfiguration.
2018-07-20 15:20:01 -04:00
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.
2018-07-20 15:00:58 -04:00
bunnei
c1c9ab31e8
Merge pull request #740 from Subv/acc_crash
...
HLE/ACC: Stub IManagerForApplication::GetAccountId to return an error.
2018-07-20 09:47:47 -07:00
bunnei
ffbd51e207
Merge pull request #737 from lioncash/move
...
filesys/loader: std::move VirtualFile instances in constructors where applicable
2018-07-20 09:21:15 -07:00
bunnei
701c7cb85c
Merge pull request #736 from lioncash/null
...
audout_u/audren_u: Ensure null terminators are written out in ListAudioOutsImpl(), ListAudioDeviceName(), and GetActiveAudioDeviceName()
2018-07-20 09:17:07 -07:00
bunnei
741cae1e1d
Merge pull request #734 from lioncash/thread
...
thread: Convert ThreadStatus into an enum class
2018-07-20 09:15:52 -07:00
bunnei
a1805ceb0b
Merge pull request #733 from lioncash/dirs
...
partition_filesystem: Return pfs_dirs member variable within GetSubdirectories()
2018-07-20 09:15:16 -07:00
bunnei
86d1649b32
Merge pull request #732 from lioncash/unused
...
nso: Minor changes
2018-07-20 09:14:10 -07:00
Subv
9c7321fe6d
HLE/ACC: Stub IManagerForApplication::GetAccountId to return an error.
...
And make IManagerForApplication::CheckAvailability always return false.
Returning a bogus id from GetAccountId causes games to crash on boot.
We should investigate this with a hwtest and either stub it properly or implement it.
2018-07-20 11:02:25 -05:00
Lioncash
8874d0e657
loader/{nca, nro}: std::move VirtualFile in the constructors where applicable
...
This avoids unnecessary atomic reference count increments and decrements
2018-07-20 00:10:24 -04:00
Lioncash
0e9d58e82a
vfs_offset: std::move file and name parameters of OffsetVfsFile
...
Avoids potentially unnecessary atomic reference count incrementing and
decrementing, as well as string copying.
2018-07-20 00:04:54 -04:00
Lioncash
40c9c5a55c
audren_u: Use a std::array instead of std::string for holding the audio interface/device name
...
std::string doesn't include the null-terminator in its data() + size()
range. This ensures that the null-terminator will also be written to the buffer
2018-07-19 23:15:27 -04:00
Lioncash
c20cea118b
audout_u: Use a std::array instead of std::string for holding the audio interface name
...
Uses a type that doesn't potentially dynamically allocate, and ensures
that the name of the interface is properly null-terminated when writing
it to the buffer.
2018-07-19 23:15:00 -04:00
Lioncash
dbfe82773d
thread: Convert ThreadStatus into an enum class
...
Makes the thread status strongly typed, so implicit conversions can't
happen. It also makes it easier to catch mistakes at compile time.
2018-07-19 22:08:56 -04:00
Lioncash
bbd6429ecb
partition_filesystem: Return pfs_dirs member variable within GetSubdirectories()
...
This should be returned here, otherwise pfs_dirs is effectively only
ever added to, but never read.
2018-07-19 21:08:50 -04:00
Lioncash
364b950515
nso: Silence implicit sign conversion warnings
2018-07-19 20:51:15 -04:00
Lioncash
a25c5b982a
nso: Remove unused function ReadSegment()
2018-07-19 20:49:27 -04:00
Lioncash
1bdb67440b
pl_u: Simplify WriteBuffer() calls in GetSharedFontInOrderOfPriority()
...
With the new overload, we can simply pass the container directly.
2018-07-19 19:50:30 -04:00
bunnei
d3cfaf95c8
Merge pull request #726 from lioncash/overload
...
hle_ipc: Introduce generic WriteBuffer overload for multiple container types
2018-07-19 16:18:38 -07:00
bunnei
0b13ce1435
Merge pull request #725 from lioncash/bytes
...
pl_u: Specify correct size for buffers in GetSharedFontInOrderOfPriority()
2018-07-19 16:16:30 -07:00
bunnei
af08034c71
Merge pull request #728 from Subv/acc_profile
...
HLE/ACC: Change the default user id and small improvements to the way we handle profiles
2018-07-19 16:15:01 -07:00
bunnei
2aeb3355e4
Merge pull request #727 from Subv/acc_users
...
HLE/ACC: Write a single whole user id in ListAllUsers and ListOpenUsers.
2018-07-19 16:13:45 -07:00
bunnei
c6352ffc58
Merge pull request #724 from lioncash/printf
...
pl_u: Remove printf specifier in log call in a log call in GetSharedFontInOrderOfPriority()
2018-07-19 16:13:07 -07:00
bunnei
ec468c990d
Merge pull request #723 from lioncash/gdb
...
gdbstub: Get rid of a few signed/unsigned comparisons
2018-07-19 16:12:40 -07:00
bunnei
f43d8ea523
Merge pull request #722 from lioncash/signed
...
hid: Resolve a signed/unsigned comparison warning
2018-07-19 16:12:15 -07:00
bunnei
2194308245
Merge pull request #721 from lioncash/svc
...
svc: Correct always true assertion case in SetThreadCoreMask
2018-07-19 16:11:40 -07:00
bunnei
b5c77313de
Merge pull request #719 from lioncash/docs
...
loader: Amend Doxygen comments
2018-07-19 16:11:09 -07:00
bunnei
dd0446ff43
Merge pull request #718 from lioncash/read
...
loader/nso: Check if read succeeded in IdentifyFile() before checking magic value
2018-07-19 16:10:29 -07:00
bunnei
31413f0d2f
Merge pull request #717 from lioncash/explicit
...
hle/service: Make constructors explicit where applicable
2018-07-19 16:08:07 -07:00
Subv
05549e45c5
HLE/ACC: Return an IProfile that is consistent with what was requested.
...
The default username for now is "yuzu".
We should eventually allow the creation of users in the emulator and have the ability to modify their parameters.
2018-07-19 16:53:42 -05:00
Subv
50e2777724
HLE/ACC: Change the default user id to be consistent with what we tell games on startup.
...
In IApplicationFunctions::PopLaunchParameter we tell the games that they were launched as user id 1.
2018-07-19 16:51:55 -05:00
Subv
b102815f1f
HLE/ACC: Write a single whole user id in ListAllUsers and ListOpenUsers.
...
We only emulate a single user id for now.
2018-07-19 16:19:46 -05:00
bunnei
7244671137
Merge pull request #716 from lioncash/construct
...
nvflinger: Emplace Display instances directly
2018-07-19 14:18:29 -07:00
Lioncash
ff500a7b68
hle_ipc: Introduce generic WriteBuffer overload for multiple container types
...
This introduces a slightly more generic variant of WriteBuffer().
Notably, this variant doesn't constrain the arguments to only accepting
std::vector instances. It accepts whatever adheres to the
ContiguousContainer concept in the C++ standard library.
This essentially means, std::array, std::string, and std::vector can be
used directly with this interface. The interface no longer forces you to
solely use containers that dynamically allocate.
To ensure our overloads play nice with one another, we only enable the
container-based WriteBuffer if the argument is not a pointer, otherwise
we fall back to the pointer-based one.
2018-07-19 17:05:12 -04:00
bunnei
eb9b55eafe
Merge pull request #715 from lioncash/const-ref
...
nvdrv: Take std::string by const reference in GetDevice()
2018-07-19 13:27:48 -07:00
Sebastian Valle
78dd1cd441
Merge pull request #720 from Subv/getentrytype_root
...
Filesystem: Return EntryType::Directory for the root directory.
2018-07-19 15:23:32 -05:00
Lioncash
df001e83b1
pl_u: Specify correct size for buffers in GetSharedFontInOrderOfPriority()
...
This WriteBuffer overload expects its size argument to be in bytes, not
elements.
2018-07-19 15:57:58 -04:00
Lioncash
b879fb84a2
svc: Correct always true assertion case in SetThreadCoreMask
...
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-19 15:46:17 -04:00
Lioncash
68c1ffdd1c
pl_u: Remove printf specifier in log call in a log call in GetSharedFontInOrderOfPriority()
...
This can just use the fmt specifiers and be type-agnostic.
2018-07-19 15:44:04 -04:00
Sebastian Valle
7eace8f512
Merge pull request #714 from lioncash/index
...
hle_ipc: Amend usage of buffer_index within one of HLERequestContext's WriteBuffer() overloads
2018-07-19 14:36:34 -05:00
bunnei
38b35e752b
Merge pull request #712 from lioncash/fsp
...
fsp_srv: Misc individual changes
2018-07-19 12:31:33 -07:00
Lioncash
c945226973
gdbstub: Get rid of a few signed/unsigned comparisons
...
Ensures both operands in comparisons are the same signedness.
2018-07-19 15:27:01 -04:00
Lioncash
a37a47448d
hid: Use a ranged-for loops in UpdatePadCallback
...
Modernizes the loops themselves while also getting rid of a signed/unsigned
comparison in a loop condition.
2018-07-19 15:11:08 -04:00
Lioncash
95103a1b7b
hid: Use HID_NUM_LAYOUTS constant for indicating size of the layouts array
...
Gets rid of the use of a magic constant
2018-07-19 15:07:36 -04:00
bunnei
427fc4ac6b
Merge pull request #713 from lioncash/filesys
...
filesystem: Minor changes
2018-07-19 11:49:06 -07:00
bunnei
1034bcc742
Merge pull request #694 from lioncash/warn
...
loader/{nro, nso}: Resolve compilation warnings
2018-07-19 11:43:14 -07:00
Subv
e5c916a27c
Filesystem: Return EntryType::Directory for the root directory.
...
It is unknown if this is correct behavior, but it makes sense and fixes a regression with Stardew Valley.
2018-07-19 13:11:09 -05:00
Lioncash
50d08beed2
loader: Amend Doxygen comments
...
These weren't adjusted when VFS was introduced
2018-07-19 14:04:33 -04:00
Lioncash
9b22f856c2
loader/nso: Check if read succeeded in IdentifyFile() before checking magic value
...
We should always assume the filesystem is volatile and check each IO
operation. While we're at it reorganize checks so that early-out errors
are near one another.
2018-07-19 12:43:21 -04:00
Lioncash
c061c2bf3c
hle/service: Make constructors explicit where applicable
...
Prevents implicit construction and makes these lingering non-explicit
constructors consistent with the rest of the other classes in services.
2018-07-19 12:25:02 -04:00
Lioncash
f3daecafeb
nvflinger: Emplace Display instances directly
...
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-19 11:50:12 -04:00
bunnei
f1d7486eac
Merge pull request #703 from lioncash/const
...
savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const member function
2018-07-19 08:46:15 -07:00
bunnei
b0334af05b
Merge pull request #702 from lioncash/initialize
...
partition_filesystem: Ensure all class members of PartitionFilesystem are initialized
2018-07-19 08:45:54 -07:00
bunnei
1bf7ae79c8
Merge pull request #701 from lioncash/moving
...
content_archive: Minor changes
2018-07-19 08:41:42 -07:00
Lioncash
dc35c3f9d7
nvdrv: Take std::string by const reference in GetDevice()
...
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-19 11:40:36 -04:00
Lioncash
af2698dcea
hle_ipc: Amend usage of buffer_index within one of HLERequestContext's 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-19 11:10:16 -04:00
Lioncash
6c1ba02e0c
fsp_srv: Remove unnecessary vector construction in IFile's Write() function
...
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-19 11:01:07 -04:00
Lioncash
3e9b79e088
fsp_srv: Remove unnecessary std::vector construction in IDirectory's Read() 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-19 10:46:54 -04:00
bunnei
758c357868
Merge pull request #699 from lioncash/vfs
...
vfs: Deduplicate accumulation code in VfsDirectory's GetSize()
2018-07-19 07:38:45 -07:00
Lioncash
5da4c78c6a
filesystem: std::move VirtualDir instance in VfsDirectoryServiceWrapper's constructor
...
Avoids unnecessary atomic reference count incrementing and decrementing
2018-07-19 10:34:11 -04:00
Lioncash
abbf038191
filesystem: Use std::string's empty() function instead of comparing against 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-19 10:32:23 -04:00
Lioncash
2cc0ef83cf
filesystem: Remove pragma disabling global optimizations
...
This was just an artifact missed during PR review.
2018-07-19 10:30:53 -04:00
Lioncash
f317080f40
fsp_srv: Make IStorage constructor explicit
...
Prevents implicit conversions.
2018-07-19 10:04:16 -04:00
Lioncash
910ad2e110
fsp_srv: Add missing includes
...
Gets rid of relying on indirect inclusions.
2018-07-19 10:03:17 -04:00
Lioncash
6be342118a
fsp_srv: Resolve sign-mismatch warnings in assertion comparisons
2018-07-19 09:58:32 -04:00
Lioncash
d6e9b96e2f
fsp_srv: Respect write length in Write()
...
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-19 09:57:48 -04:00
bunnei
368e1d25be
Merge pull request #692 from lioncash/assign
...
address_arbiter: Correct assignment within an assertion statement in WakeThreads()
2018-07-18 20:56:28 -07:00
bunnei
85421f3406
Merge pull request #690 from lioncash/move
...
core/memory, core/hle/kernel: Use std::move where applicable
2018-07-18 20:55:55 -07:00
Lioncash
88ba94e8a2
savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const member function
...
This function doesn't alter class state.
2018-07-18 23:50:07 -04:00