summaryrefslogtreecommitdiffstats
path: root/src/common/common_funcs.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-3/+2
This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2021-09-13common_funcs: Add enum flag bitwise shift operator overloadsMorph1-0/+16
This adds bitwise shift operator overloads (<<, >>, <<=, >>=) in the macro DECLARE_ENUM_FLAG_OPERATORS(type)
2021-09-11common_funcs: Replace <algorithm> with <iterator>Morph1-1/+1
2021-09-11common: Move error handling to error.cpp/hMorph1-11/+0
This allows us to avoid implicitly including <string> every time common_funcs.h is included.
2021-05-31common_funcs: Move R_ macros to result.hLioncash1-25/+0
These macros all interact with the result code type, so they should ideally be within this file as well, so all the common_funcs machinery doesn't need to be pulled in just to use them.
2021-05-06common: Rename NON_COPYABLE/NON_MOVABLE with YUZU_ prefix.bunnei1-2/+2
2021-05-06common: common_funcs: Add Size helper function.bunnei1-0/+15
2021-05-06common: common_funcs: Add helper macros for non-copyable and non-moveable.bunnei1-0/+8
- Useful for scenarios where we do not want to inherit from NonCopyable.
2021-02-28[network] Error handling reformcomex1-1/+5
`network.cpp` has several error paths which either: - report "Unhandled host socket error=n" and return `SUCCESS`, or - switch on a few possible errors, log them, and translate them to Errno; the same switch statement is copied and pasted in multiple places in the code Convert these paths to use a helper function `GetAndLogLastError`, which is roughly the equivalent of one of the switch statements, but: - handling more cases (both ones that were already in `Errno`, and a few more I added), and - using OS functions to convert the error to a string when logging, so it'll describe the error even if it's not one of the ones in the switch statement. - To handle this, refactor the logic in `GetLastErrorMsg` to expose a new function `NativeErrorToString` which takes the error number explicitly as an argument. And improve the Windows version a bit. Also, add a test which exercises two random error paths.
2021-02-05hle: kernel: Drop R_UNLESS_NOLOG in favor of expanded if-statement.bunnei1-8/+0
2021-02-05common: common_funcs: Add R_UNLESS_NOLOG for scenarios that should not log.bunnei1-0/+8
2021-01-29common: common_funcs: Change R_UNLESS to LOG_ERROR.bunnei1-1/+1
2021-01-29common: common_funcs: Log error on R_UNLESS.bunnei1-0/+3
2021-01-29common: common_funcs: Add useful kernel macro R_SUCCEED_IF.bunnei1-0/+3
2021-01-29common: common_funcs: Add a few more useful macros for kernel code.bunnei1-0/+11
2021-01-15common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINITReinUsesLisp1-4/+4
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
2021-01-11common: common_funcs: Add R_UNLESS macro.bunnei1-0/+8
2020-08-24common_funcs: Add missing XOR operators to DECLARE_ENUM_FLAG_OPERATORSLioncash1-4/+10
Ensures that the full set of bitwise operators are available for types that make use of this macro.
2020-08-15common: Make use of [[nodiscard]] where applicableLioncash1-7/+7
Now that clang-format makes [[nodiscard]] attributes format sensibly, we can apply them to several functions within the common library to allow the compiler to complain about any misuses of the functions.
2020-04-17common: common_funcs: Add a macro for defining enum flag operators.bunnei1-0/+32
2019-11-14common_funcs: Remove semicolons from INSERT_PADDING_* macrosLioncash1-4/+6
Makes code that uses the macros consistent by requiring the lines to be terminated with a semicolon.
2019-11-13common_funcs: silence sign-conversion warnings in MakeMagic()Lioncash1-1/+1
We can trivially resolve these by casting the characters to unsigned values and then shifting the bits.
2019-11-04common_func: Use std::array for INSERT_PADDING_* macros.bunnei1-12/+10
- Zero initialization here is useful for determinism.
2019-11-03Revert "common_func: Use std::array for INSERT_PADDING_* macros."bunnei1-3/+2
2019-11-03common_func: Use std::array for INSERT_PADDING_* macros.bunnei1-2/+3
- Zero initialization here is useful for determinism.
2019-07-05texture_cache: Address FeedbackFernando Sahmkow1-10/+0
2019-06-21Reduce amount of size calculations.Fernando Sahmkow1-0/+11
2018-07-29Port #3732 from Citra: "common: Fix compilation on ARM"Cameron Cawley1-3/+1
2018-07-19common/common_funcs: Remove unused rotation functionsLioncash1-38/+0
These are unused and essentially don't provide much benefit either. If we ever need rotation functions, these can be introduced in a way that they don't sit in a common_* header and require a bunch of ifdefing to simply be available
2018-07-19common/misc: Deduplicate code in GetLastErrorMsg()Lioncash1-1/+3
Android and macOS have supported thread_local for quite a while, but most importantly is that we don't even really need it. Instead of using a thread-local buffer, we can just return a non-static buffer as a std::string, avoiding the need for that quality entirely.
2018-07-07Port #3579 from CitrafearlessTobi1-2/+2
2018-04-20common_funcs: Remove ARRAY_SIZE macroLioncash1-2/+0
C++17 has non-member size() which we can just call where necessary.
2018-04-20common_funcs: Remove check for VS versions that we don't even supportLioncash1-5/+0
We don't support any VS versions that don't already have snprintf in the standard library implementation.
2017-10-15core: Refactor MakeMagic usage and remove dead code.bunnei1-0/+8
2017-05-28Common: Fix some out-of-style includesYuri Kunde Schlesner1-1/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-1/+0
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-19Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner1-2/+1
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-11/+14
2016-05-27common_funcs: Provide rotr and rotl for MSVCMerryMage1-12/+18
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot1-0/+4
2016-03-09Common: Get rid of alignment macrosLioncash1-9/+1
The gl rasterizer already uses alignas, so we may as well move everything over.
2015-10-22gl_rasterizer: Use MMH3 hash for shader cache hey.bunnei1-18/+0
- Includes a check to confirm no hash collisions.
2015-10-22renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups.bunnei1-0/+18
2015-08-18Fix building under MinGWdarkf1-3/+9
2015-08-16Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64.bunnei1-1/+1
2015-08-16x64: Refactor to remove fake interfaces and general cleanups.bunnei1-1/+1
2015-08-15Common: Ported over boilerplate x86 JIT code from Dolphin/PPSSPP.bunnei1-1/+1
2015-08-12Stop defining GCC always_inline attributes as __forceinlinearchshift1-1/+2
__forceinline is a MSVC extension, which may confuse some people working on the codebase. Furthermore, the C++ standard dictates that all names which contain adjacent underscores are reserved.
2015-07-12don´t define snprintf on Visual Studio 2015Apology111-2/+4
Visual Studio 2015 defines this in stdio now
2015-06-28Common: Remove unused ROUND_UP_POW2 macro.Emmanuel Gil Peyrot1-7/+0
2015-06-28Common: Cleanup memory and misc includes.Emmanuel Gil Peyrot1-4/+0
2015-05-09Common: Remove the BIT macroYuri Kunde Schlesner1-2/+0
When the macro was introduced in 326ec51261299e48de97592631c02523da9c8118 it wasn't noticed that it conflicted in name with a heavily used macro inside of dyncom. This causes some compiler warnings. Since it's only lightly used, it was opted to simply remove the new macro.
2015-05-09Common: Add BIT macroYuri Kunde Schlesner1-0/+2
2015-05-07Common: Add proper macros to test for architecture pointer sizeYuri Kunde Schlesner1-7/+0
The old system of just defining macros available in some other platform was susceptible to silently using the wrong code if you forgot to include a particular header. This fixes a crash on non-Windows platforms introduced by e1fbac3ca13d37d2625c11d30cfdece4327b446b.
2015-05-07Common: Move alignment macros to common_funcs.hYuri Kunde Schlesner1-0/+21
2015-05-07Common: Remove more unused compatibility definesYuri Kunde Schlesner1-45/+0
2015-05-07Common: Move IO-specific compatibility macros to file_util.cppYuri Kunde Schlesner1-8/+0
2015-05-07Common: Remove many unnecessary cross-platform compatibility macrosYuri Kunde Schlesner1-7/+3
2015-03-06Removed swap code redundancy and moved common swap code to swap.harchshift1-77/+0
2015-02-22Added information reporting from ThrowFatalErrorarchshift1-2/+0
This was RE'd from the errdisp applet.
2015-02-20Misc cleanup of common and related functionsarchshift1-23/+0
2015-02-20Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.harchshift1-3/+2
2015-02-17ConfigMem: Clean up the Config memory to be more like the shared page and movedpurpasmart961-0/+7
the helper macro for padding to common_funcs.h
2015-02-11Asserts: break/crash program, fit to style guide; log.h->assert.harchshift1-20/+15
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time) As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing) Also removed some GEKKO cruft.
2015-01-30Common: Fix SCOPE_EXIT to actually create unique identifiers.Yuri Kunde Schlesner1-0/+4
2014-12-21License changepurpasmart961-2/+2
2014-12-13Added missing include in common_funcs.hYuri Kunde Schlesner1-0/+1
2014-12-13Remove redundant include from common_funcs.hYuri Kunde Schlesner1-2/+0
2014-12-09Some code cleanup.Tony Wasserka1-0/+2
2014-12-09Fix some headers to include their dependencies properly.Tony Wasserka1-0/+4
2014-12-03Change NULLs to nullptrs.Rohit Nirmal1-1/+1
2014-11-29Fix MinGW builddarkf1-4/+4
2014-11-19Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot1-7/+7
2014-08-17Common: Move header guards over to pragma onceLioncash1-4/+1
Also replaced C headers with the C++ equivalent ones
2014-05-17added MIN, MAX, and CLAMP macros to common_funcsbunnei1-0/+5
2014-04-28fix for issue Linux build #9, not sure why this is broken but its unused code I'm just getting rid of itbunnei1-13/+0
2014-04-09got rid of 'src' folders in each sub-projectbunnei1-0/+0
2014-04-02convert tabs to spacesbunnei1-90/+90
2013-09-06start of 3DS memory mapShizZy1-0/+2
2013-09-05replaced common code with dolphin commonShizZy1-0/+243