Age | Commit message (Collapse) | Author |
|
Avoids the need to repeat "std::" twice
|
|
alignment size for avoiding false sharing
MSVC 19.11 (A.K.A. VS 15.3)'s C++ standard library implements P0154R1
(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html)
which defines two new constants within the <new> header, std::hardware_destructive_interference_size
and std::hardware_constructive_interference_size.
std::hardware_destructive_interference_size defines the minimum
recommended offset between two concurrently-accessed objects to avoid
performance degradation due to contention introduced by the
implementation (with the lower-bound being at least alignof(max_align_t)).
In other words, the minimum offset between objects necessary to avoid
false-sharing.
std::hardware_constructive_interference_size on the other hand defines
the maximum recommended size of contiguous memory occupied by two
objects accessed wth temporal locality by concurrent threads (also
defined to be at least alignof(max_align_t)). In other words the maximum
size to promote true-sharing.
So we can simply use this facility to determine the ideal alignment
size. Unfortunately, only MSVC supports this right now, so we need to
enclose it within an ifdef for the time being.
|
|
|
|
|
|
|
|
Multi-line doc comments still need the '<' after the ///, otherwise it's
treated as a regular comment and makes the original doc comment broken
in viewers, IDEs, etc. While we're at it, also fix some typos in the
comments.
|
|
|
|
Implicit conversions aren't desirable here.
|
|
file_util: Correct return value in early exit of ReadFileToString()
|
|
While still essentially being zero, we should be returning a numeric
value here, not a boolean typed value.
|
|
Makes it so malformed hex strings do not crash the entire program.
|
|
CONSOLE_SCREEN_BUFFER_INFO instance
The previous form of initializing done here is a C-ism, an empty set of
braces is sufficient for initializing (and doesn't potentially cause
missing brace warnings, given the first member of the struct is a COORD
struct).
|
|
Gets rid of a TODO that is long overdue.
|
|
common/telemetry: Migrate core-independent info gathering to common
|
|
It's in the common code, so it should be under the Common namespace like
everything else.
|
|
file_sys: Add support for registration format
|
|
common/xbyak_abi: Mark defined functions in header as inline
|
|
common/misc: use windows.h
|
|
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.
|
|
Avoids potential One Definition Rule violations when these are used in
the future.
|
|
|
|
These currently aren't used and contain commented out source code that
corresponds to Dolphin's JIT. Given our CPU code is organized quite
differently, we shouldn't be keeping this around (at the moment it just
adds to compile times marginally).
|
|
The filter is returned via const reference, so this was making a
pointless copy of the entire filter every time a message was being
pushed into the logger instance.
|
|
linux-mingw does not really like this.
|
|
These don't directly modify the contained data.
|
|
|
|
|
|
|
|
|
|
common/logging: Add missing service log categories
|
|
vfs: Add VfsFilesystem and fix RealVfs* implementations
|
|
common/color: Minor cleanup
|
|
|
|
|
|
These weren't added when the services were introduced.
|
|
These are just superfluous and not necessesary
|
|
Gets rid of type punning via reinterpret_cast within functions. Instead,
we use memcpy to transfer the contents across types.
|
|
Same behavior, less code
|
|
common: Convert type traits templates over to variable template versions where applicable
|
|
vector_math: Minor cleanups
|
|
|
|
|
|
|
|
where applicable
Uses the C++17 inline variable variants
|
|
Prevents compiler warnings.
|
|
Adds basic skeleton for the usb services based off the information provided by Switch Brew.
|
|
Adds the basic skeleton of the arp services based off the information
provided by Switch Brew.
|
|
XCI and Encrypted NCA Support
|
|
service: Add migration services
|
|
math_util: Always initialize members of Rectangle
|