Commit graph

69 commits

Author SHA1 Message Date
comex 2910aa77b2 [network] Error handling reform
`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-28 17:25:31 -05:00
bunnei 8d1afcb90f common: common_funcs: Change R_UNLESS to LOG_ERROR. 2021-01-28 21:51:16 -08:00
bunnei 091e9e8c41 common: common_funcs: Log error on R_UNLESS. 2021-01-28 21:42:26 -08:00
bunnei bb966d3e33 common: common_funcs: Add useful kernel macro R_SUCCEED_IF. 2021-01-28 21:42:26 -08:00
bunnei 2fb77adb9f common: common_funcs: Add a few more useful macros for kernel code. 2021-01-28 21:42:25 -08:00
ReinUsesLisp 3ff978aa4f common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
2021-01-15 16:27:28 -03:00
bunnei 92d5c63f01 common: common_funcs: Add R_UNLESS macro. 2021-01-11 14:23:16 -08:00
Lioncash 504175e5b6 common_funcs: Add missing XOR operators to DECLARE_ENUM_FLAG_OPERATORS
Ensures that the full set of bitwise operators are available for types
that make use of this macro.
2020-08-24 04:42:43 -04:00
Lioncash df72480395 common: Make use of [[nodiscard]] where applicable
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-08-15 17:17:52 -04:00
bunnei b11b424a2d common: common_funcs: Add a macro for defining enum flag operators. 2020-04-17 00:59:27 -04:00
Lioncash f2e34efcbb common_funcs: Remove semicolons from INSERT_PADDING_* macros
Makes code that uses the macros consistent by requiring the lines to be
terminated with a semicolon.
2019-11-14 17:05:27 -05:00
Lioncash 61f6eaad45 common_funcs: silence sign-conversion warnings in MakeMagic()
We can trivially resolve these by casting the characters to unsigned
values and then shifting the bits.
2019-11-13 06:53:19 -05:00
bunnei 1bdae0fe29 common_func: Use std::array for INSERT_PADDING_* macros.
- Zero initialization here is useful for determinism.
2019-11-03 22:22:41 -05:00
bunnei 4edf73344f
Revert "common_func: Use std::array for INSERT_PADDING_* macros." 2019-11-03 04:39:51 -05:00
bunnei fdc5791b08 common_func: Use std::array for INSERT_PADDING_* macros.
- Zero initialization here is useful for determinism.
2019-11-03 04:30:16 -05:00
Fernando Sahmkow 3b9d89839d texture_cache: Address Feedback 2019-07-05 09:46:53 -04:00
Fernando Sahmkow b347543e83 Reduce amount of size calculations. 2019-06-20 21:36:12 -03:00
Cameron Cawley 1670c4421f Port #3732 from Citra: "common: Fix compilation on ARM" 2018-07-29 15:51:31 +02:00
bunnei d6c7a05239
Merge pull request #710 from lioncash/unused
common/common_funcs: Remove unused rotation functions
2018-07-19 11:43:41 -07:00
Lioncash 9128271292 common/common_funcs: Remove unused rotation functions
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-19 09:21:23 -04:00
Lioncash e0b8a35937 common/misc: Deduplicate code in GetLastErrorMsg()
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-19 09:15:38 -04:00
fearlessTobi 70a6691e3b Port #3579 from Citra 2018-07-07 13:59:18 +02:00
bunnei b5c204ac6f
Merge pull request #362 from lioncash/snprintf
common_funcs: Remove check for VS versions that we don't even support
2018-04-20 09:43:30 -04:00
Lioncash d9e316e353 common_funcs: Remove ARRAY_SIZE macro
C++17 has non-member size() which we can just call where necessary.
2018-04-19 22:36:52 -04:00
Lioncash 902fc61ef8 common_funcs: Remove check for VS versions that we don't even support
We don't support any VS versions that don't already have snprintf in the
standard library implementation.
2018-04-19 22:28:56 -04:00
bunnei 746c2a3ae7 core: Refactor MakeMagic usage and remove dead code. 2017-10-15 00:11:38 -04:00
Yuri Kunde Schlesner 2579ae543b Common: Fix some out-of-style includes 2017-05-27 16:14:10 -07:00
Emmanuel Gil Peyrot ebdae19fd2 Remove empty newlines in #include blocks.
This makes clang-format useful on those.

Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
2016-09-21 11:15:47 +09:00
Yuri Kunde Schlesner 396a8d91a4 Manually tweak source formatting and then re-run clang-format 2016-09-18 21:14:25 -07:00
Emmanuel Gil Peyrot dc8479928c Sources: Run clang-format on everything. 2016-09-18 09:38:01 +09:00
MerryMage 8e1768cf1d common_funcs: Provide rotr and rotl for MSVC 2016-05-27 10:42:06 +01:00
Emmanuel Gil Peyrot 691a42fe98 VideoCore: Run include-what-you-use and fix most includes. 2016-04-30 17:02:41 +01:00
Lioncash 88d604383e Common: Get rid of alignment macros
The gl rasterizer already uses alignas,
so we may as well move everything over.
2016-03-09 01:31:14 -05:00
darkf e053d30bf7 Fix building under MinGW 2015-08-17 22:21:14 -07:00
bunnei b39c053785 Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64. 2015-08-15 18:03:27 -04:00
bunnei bd7e691f78 x64: Refactor to remove fake interfaces and general cleanups. 2015-08-15 18:03:25 -04:00
bunnei ddbeebb887 Common: Ported over boilerplate x86 JIT code from Dolphin/PPSSPP. 2015-08-15 17:33:45 -04:00
archshift d1ae413ffd Stop defining GCC always_inline attributes as __forceinline
__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-08-11 19:45:15 -07:00
Apology11 af18572491 don´t define snprintf on Visual Studio 2015
Visual Studio 2015 defines this in stdio now
2015-07-12 13:12:14 +02:00
Emmanuel Gil Peyrot 1775adc34c Common: Remove unused ROUND_UP_POW2 macro. 2015-06-28 00:36:54 +01:00
Emmanuel Gil Peyrot 2d044a67c9 Common: Cleanup memory and misc includes. 2015-06-28 00:36:54 +01:00
Yuri Kunde Schlesner b700b55696 Common: Remove the BIT macro
When the macro was introduced in 326ec51261
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-09 18:16:46 -03:00
Yuri Kunde Schlesner 326ec51261 Common: Add BIT macro 2015-05-08 22:11:04 -03:00
Yuri Kunde Schlesner fae5933ad6 Common: Add proper macros to test for architecture pointer size
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 e1fbac3ca1.
2015-05-07 18:22:36 -03:00
Yuri Kunde Schlesner 1bd1a13a02 Common: Move alignment macros to common_funcs.h 2015-05-07 15:45:21 -03:00
Yuri Kunde Schlesner a594fdb66e Common: Remove more unused compatibility defines 2015-05-07 15:45:20 -03:00
Yuri Kunde Schlesner f3c096951b Common: Move IO-specific compatibility macros to file_util.cpp 2015-05-07 15:45:20 -03:00
Yuri Kunde Schlesner bf12f270b3 Common: Remove many unnecessary cross-platform compatibility macros 2015-05-06 23:50:08 -03:00
archshift e011acaa84 Removed swap code redundancy and moved common swap code to swap.h 2015-03-05 22:46:45 -08:00
bunnei 50a0c4f14f Merge pull request #581 from archshift/tfe
Added information reporting from ThrowFatalError
2015-02-23 01:23:15 -05:00