diff options
| author | 2015-05-07 11:45:45 -0700 | |
|---|---|---|
| committer | 2015-05-07 11:45:45 -0700 | |
| commit | 4f4d230dac936f32cceb8be35fe09822d85bb2b6 (patch) | |
| tree | a180a736708834708e0e5b95fd1720f37722b429 /src/common | |
| parent | Merge pull request #695 from Subv/crash_f (diff) | |
| parent | Fix printf format warning (diff) | |
| download | yuzu-4f4d230dac936f32cceb8be35fe09822d85bb2b6.tar.gz yuzu-4f4d230dac936f32cceb8be35fe09822d85bb2b6.tar.xz yuzu-4f4d230dac936f32cceb8be35fe09822d85bb2b6.zip | |
Merge pull request #721 from yuriks/more-cleanups
More cleanups
Diffstat (limited to '')
34 files changed, 130 insertions, 274 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index daa2d59de..9a9f1a46b 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt | |||
| @@ -27,7 +27,6 @@ set(HEADERS | |||
| 27 | bit_field.h | 27 | bit_field.h |
| 28 | break_points.h | 28 | break_points.h |
| 29 | chunk_file.h | 29 | chunk_file.h |
| 30 | common.h | ||
| 31 | common_funcs.h | 30 | common_funcs.h |
| 32 | common_paths.h | 31 | common_paths.h |
| 33 | common_types.h | 32 | common_types.h |
diff --git a/src/common/assert.h b/src/common/assert.h index 9ca7adb15..4f26c63e9 100644 --- a/src/common/assert.h +++ b/src/common/assert.h | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include <cstdio> | ||
| 7 | #include <cstdlib> | 8 | #include <cstdlib> |
| 8 | 9 | ||
| 9 | #include "common/common_funcs.h" | 10 | #include "common/common_funcs.h" |
diff --git a/src/common/bit_field.h b/src/common/bit_field.h index 8eab054b8..1f3ecf844 100644 --- a/src/common/bit_field.h +++ b/src/common/bit_field.h | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | #include <limits> | 35 | #include <limits> |
| 36 | #include <type_traits> | 36 | #include <type_traits> |
| 37 | 37 | ||
| 38 | #include "common/common.h" | 38 | #include "common/common_funcs.h" |
| 39 | 39 | ||
| 40 | /* | 40 | /* |
| 41 | * Abstract bitfield class | 41 | * Abstract bitfield class |
diff --git a/src/common/break_points.cpp b/src/common/break_points.cpp index 15055bd4e..023a485a4 100644 --- a/src/common/break_points.cpp +++ b/src/common/break_points.cpp | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | // Licensed under GPLv2 or any later version | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #include "common/common.h" | ||
| 6 | #include "common/debug_interface.h" | 5 | #include "common/debug_interface.h" |
| 7 | #include "common/break_points.h" | 6 | #include "common/break_points.h" |
| 8 | #include "common/logging/log.h" | 7 | #include "common/logging/log.h" |
diff --git a/src/common/break_points.h b/src/common/break_points.h index 4b26cf90d..f0a55e7b1 100644 --- a/src/common/break_points.h +++ b/src/common/break_points.h | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | #include <vector> | 7 | #include <vector> |
| 8 | #include <string> | 8 | #include <string> |
| 9 | 9 | ||
| 10 | #include "common/common.h" | 10 | #include "common/common_types.h" |
| 11 | 11 | ||
| 12 | class DebugInterface; | 12 | class DebugInterface; |
| 13 | 13 | ||
diff --git a/src/common/chunk_file.h b/src/common/chunk_file.h index 3f97d56bf..dcd80525e 100644 --- a/src/common/chunk_file.h +++ b/src/common/chunk_file.h | |||
| @@ -34,8 +34,9 @@ | |||
| 34 | #include <set> | 34 | #include <set> |
| 35 | #include <type_traits> | 35 | #include <type_traits> |
| 36 | 36 | ||
| 37 | #include "common/common.h" | 37 | #include "common/common_types.h" |
| 38 | #include "common/file_util.h" | 38 | #include "common/file_util.h" |
| 39 | #include "common/logging/log.h" | ||
| 39 | 40 | ||
| 40 | template <class T> | 41 | template <class T> |
| 41 | struct LinkedListItem : public T | 42 | struct LinkedListItem : public T |
diff --git a/src/common/common.h b/src/common/common.h deleted file mode 100644 index f7d0f55c5..000000000 --- a/src/common/common.h +++ /dev/null | |||
| @@ -1,120 +0,0 @@ | |||
| 1 | // Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | // DO NOT EVER INCLUDE <windows.h> directly _or indirectly_ from this file | ||
| 8 | // since it slows down the build a lot. | ||
| 9 | |||
| 10 | #include <cstdlib> | ||
| 11 | #include <cstdio> | ||
| 12 | #include <cstring> | ||
| 13 | |||
| 14 | #define STACKALIGN | ||
| 15 | |||
| 16 | // An inheritable class to disallow the copy constructor and operator= functions | ||
| 17 | class NonCopyable | ||
| 18 | { | ||
| 19 | protected: | ||
| 20 | NonCopyable() {} | ||
| 21 | NonCopyable(const NonCopyable&&) {} | ||
| 22 | void operator=(const NonCopyable&&) {} | ||
| 23 | private: | ||
| 24 | NonCopyable(NonCopyable&); | ||
| 25 | NonCopyable& operator=(NonCopyable& other); | ||
| 26 | }; | ||
| 27 | |||
| 28 | #include "common/assert.h" | ||
| 29 | #include "common/logging/log.h" | ||
| 30 | #include "common/common_types.h" | ||
| 31 | #include "common/common_funcs.h" | ||
| 32 | #include "common/common_paths.h" | ||
| 33 | #include "common/platform.h" | ||
| 34 | |||
| 35 | #ifdef __APPLE__ | ||
| 36 | // The Darwin ABI requires that stack frames be aligned to 16-byte boundaries. | ||
| 37 | // This is only needed on i386 gcc - x86_64 already aligns to 16 bytes. | ||
| 38 | #if defined __i386__ && defined __GNUC__ | ||
| 39 | #undef STACKALIGN | ||
| 40 | #define STACKALIGN __attribute__((__force_align_arg_pointer__)) | ||
| 41 | #endif | ||
| 42 | #elif defined _WIN32 | ||
| 43 | // Check MSC ver | ||
| 44 | #if defined _MSC_VER && _MSC_VER <= 1000 | ||
| 45 | #error needs at least version 1000 of MSC | ||
| 46 | #endif | ||
| 47 | |||
| 48 | #ifndef NOMINMAX | ||
| 49 | #define NOMINMAX | ||
| 50 | #endif | ||
| 51 | |||
| 52 | // Alignment | ||
| 53 | #define MEMORY_ALIGNED16(x) __declspec(align(16)) x | ||
| 54 | #define MEMORY_ALIGNED32(x) __declspec(align(32)) x | ||
| 55 | #define MEMORY_ALIGNED64(x) __declspec(align(64)) x | ||
| 56 | #define MEMORY_ALIGNED128(x) __declspec(align(128)) x | ||
| 57 | #define MEMORY_ALIGNED16_DECL(x) __declspec(align(16)) x | ||
| 58 | #define MEMORY_ALIGNED64_DECL(x) __declspec(align(64)) x | ||
| 59 | #endif | ||
| 60 | |||
| 61 | // Windows compatibility | ||
| 62 | #ifndef _WIN32 | ||
| 63 | #ifdef _LP64 | ||
| 64 | #define _M_X64 1 | ||
| 65 | #else | ||
| 66 | #define _M_IX86 1 | ||
| 67 | #endif | ||
| 68 | #define __forceinline inline __attribute__((always_inline)) | ||
| 69 | #define MEMORY_ALIGNED16(x) __attribute__((aligned(16))) x | ||
| 70 | #define MEMORY_ALIGNED32(x) __attribute__((aligned(32))) x | ||
| 71 | #define MEMORY_ALIGNED64(x) __attribute__((aligned(64))) x | ||
| 72 | #define MEMORY_ALIGNED128(x) __attribute__((aligned(128))) x | ||
| 73 | #define MEMORY_ALIGNED16_DECL(x) __attribute__((aligned(16))) x | ||
| 74 | #define MEMORY_ALIGNED64_DECL(x) __attribute__((aligned(64))) x | ||
| 75 | #endif | ||
| 76 | |||
| 77 | #ifdef _MSC_VER | ||
| 78 | #define __strdup _strdup | ||
| 79 | #define __getcwd _getcwd | ||
| 80 | #define __chdir _chdir | ||
| 81 | #else | ||
| 82 | #define __strdup strdup | ||
| 83 | #define __getcwd getcwd | ||
| 84 | #define __chdir chdir | ||
| 85 | #endif | ||
| 86 | |||
| 87 | #if defined _M_GENERIC | ||
| 88 | # define _M_SSE 0x0 | ||
| 89 | #elif defined __GNUC__ | ||
| 90 | # if defined __SSE4_2__ | ||
| 91 | # define _M_SSE 0x402 | ||
| 92 | # elif defined __SSE4_1__ | ||
| 93 | # define _M_SSE 0x401 | ||
| 94 | # elif defined __SSSE3__ | ||
| 95 | # define _M_SSE 0x301 | ||
| 96 | # elif defined __SSE3__ | ||
| 97 | # define _M_SSE 0x300 | ||
| 98 | # endif | ||
| 99 | #elif (_MSC_VER >= 1500) || __INTEL_COMPILER // Visual Studio 2008 | ||
| 100 | # define _M_SSE 0x402 | ||
| 101 | #endif | ||
| 102 | |||
| 103 | // Host communication. | ||
| 104 | enum HOST_COMM | ||
| 105 | { | ||
| 106 | // Begin at 10 in case there is already messages with wParam = 0, 1, 2 and so on | ||
| 107 | WM_USER_STOP = 10, | ||
| 108 | WM_USER_CREATE, | ||
| 109 | WM_USER_SETCURSOR, | ||
| 110 | }; | ||
| 111 | |||
| 112 | // Used for notification on emulation state | ||
| 113 | enum EMUSTATE_CHANGE | ||
| 114 | { | ||
| 115 | EMUSTATE_CHANGE_PLAY = 1, | ||
| 116 | EMUSTATE_CHANGE_PAUSE, | ||
| 117 | EMUSTATE_CHANGE_STOP | ||
| 118 | }; | ||
| 119 | |||
| 120 | #include "swap.h" | ||
diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index e76cb7d68..4f9e514c9 100644 --- a/src/common/common_funcs.h +++ b/src/common/common_funcs.h | |||
| @@ -7,13 +7,6 @@ | |||
| 7 | #include "common_types.h" | 7 | #include "common_types.h" |
| 8 | #include <cstdlib> | 8 | #include <cstdlib> |
| 9 | 9 | ||
| 10 | #ifdef _WIN32 | ||
| 11 | #define SLEEP(x) Sleep(x) | ||
| 12 | #else | ||
| 13 | #include <unistd.h> | ||
| 14 | #define SLEEP(x) usleep(x*1000) | ||
| 15 | #endif | ||
| 16 | |||
| 17 | 10 | ||
| 18 | #define b2(x) ( (x) | ( (x) >> 1) ) | 11 | #define b2(x) ( (x) | ( (x) >> 1) ) |
| 19 | #define b4(x) ( b2(x) | ( b2(x) >> 2) ) | 12 | #define b4(x) ( b2(x) | ( b2(x) >> 2) ) |
| @@ -34,6 +27,27 @@ | |||
| 34 | #define INSERT_PADDING_BYTES(num_bytes) u8 CONCAT2(pad, __LINE__)[(num_bytes)] | 27 | #define INSERT_PADDING_BYTES(num_bytes) u8 CONCAT2(pad, __LINE__)[(num_bytes)] |
| 35 | #define INSERT_PADDING_WORDS(num_words) u32 CONCAT2(pad, __LINE__)[(num_words)] | 28 | #define INSERT_PADDING_WORDS(num_words) u32 CONCAT2(pad, __LINE__)[(num_words)] |
| 36 | 29 | ||
| 30 | #ifdef _WIN32 | ||
| 31 | // Alignment | ||
| 32 | #define MEMORY_ALIGNED16(x) __declspec(align(16)) x | ||
| 33 | #define MEMORY_ALIGNED32(x) __declspec(align(32)) x | ||
| 34 | #define MEMORY_ALIGNED64(x) __declspec(align(64)) x | ||
| 35 | #define MEMORY_ALIGNED128(x) __declspec(align(128)) x | ||
| 36 | #else | ||
| 37 | // Windows compatibility | ||
| 38 | #ifdef _LP64 | ||
| 39 | #define _M_X64 1 | ||
| 40 | #else | ||
| 41 | #define _M_IX86 1 | ||
| 42 | #endif | ||
| 43 | |||
| 44 | #define __forceinline inline __attribute__((always_inline)) | ||
| 45 | #define MEMORY_ALIGNED16(x) __attribute__((aligned(16))) x | ||
| 46 | #define MEMORY_ALIGNED32(x) __attribute__((aligned(32))) x | ||
| 47 | #define MEMORY_ALIGNED64(x) __attribute__((aligned(64))) x | ||
| 48 | #define MEMORY_ALIGNED128(x) __attribute__((aligned(128))) x | ||
| 49 | #endif | ||
| 50 | |||
| 37 | #ifndef _MSC_VER | 51 | #ifndef _MSC_VER |
| 38 | 52 | ||
| 39 | #include <errno.h> | 53 | #include <errno.h> |
| @@ -73,61 +87,11 @@ inline u64 _rotr64(u64 x, unsigned int shift){ | |||
| 73 | } | 87 | } |
| 74 | 88 | ||
| 75 | #else // _MSC_VER | 89 | #else // _MSC_VER |
| 76 | #include <locale.h> | 90 | // Function Cross-Compatibility |
| 77 | |||
| 78 | // Function Cross-Compatibility | ||
| 79 | #define strcasecmp _stricmp | ||
| 80 | #define strncasecmp _strnicmp | ||
| 81 | #define unlink _unlink | ||
| 82 | #define snprintf _snprintf | 91 | #define snprintf _snprintf |
| 83 | #define vscprintf _vscprintf | ||
| 84 | 92 | ||
| 85 | // Locale Cross-Compatibility | 93 | // Locale Cross-Compatibility |
| 86 | #define locale_t _locale_t | 94 | #define locale_t _locale_t |
| 87 | #define freelocale _free_locale | ||
| 88 | #define newlocale(mask, locale, base) _create_locale(mask, locale) | ||
| 89 | |||
| 90 | #define LC_GLOBAL_LOCALE ((locale_t)-1) | ||
| 91 | #define LC_ALL_MASK LC_ALL | ||
| 92 | #define LC_COLLATE_MASK LC_COLLATE | ||
| 93 | #define LC_CTYPE_MASK LC_CTYPE | ||
| 94 | #define LC_MONETARY_MASK LC_MONETARY | ||
| 95 | #define LC_NUMERIC_MASK LC_NUMERIC | ||
| 96 | #define LC_TIME_MASK LC_TIME | ||
| 97 | |||
| 98 | inline locale_t uselocale(locale_t new_locale) | ||
| 99 | { | ||
| 100 | // Retrieve the current per thread locale setting | ||
| 101 | bool bIsPerThread = (_configthreadlocale(0) == _ENABLE_PER_THREAD_LOCALE); | ||
| 102 | |||
| 103 | // Retrieve the current thread-specific locale | ||
| 104 | locale_t old_locale = bIsPerThread ? _get_current_locale() : LC_GLOBAL_LOCALE; | ||
| 105 | |||
| 106 | if(new_locale == LC_GLOBAL_LOCALE) | ||
| 107 | { | ||
| 108 | // Restore the global locale | ||
| 109 | _configthreadlocale(_DISABLE_PER_THREAD_LOCALE); | ||
| 110 | } | ||
| 111 | else if(new_locale != nullptr) | ||
| 112 | { | ||
| 113 | // Configure the thread to set the locale only for this thread | ||
| 114 | _configthreadlocale(_ENABLE_PER_THREAD_LOCALE); | ||
| 115 | |||
| 116 | // Set all locale categories | ||
| 117 | for(int i = LC_MIN; i <= LC_MAX; i++) | ||
| 118 | setlocale(i, new_locale->locinfo->lc_category[i].locale); | ||
| 119 | } | ||
| 120 | |||
| 121 | return old_locale; | ||
| 122 | } | ||
| 123 | |||
| 124 | // 64 bit offsets for windows | ||
| 125 | #define fseeko _fseeki64 | ||
| 126 | #define ftello _ftelli64 | ||
| 127 | #define atoll _atoi64 | ||
| 128 | #define stat64 _stat64 | ||
| 129 | #define fstat64 _fstat64 | ||
| 130 | #define fileno _fileno | ||
| 131 | 95 | ||
| 132 | extern "C" { | 96 | extern "C" { |
| 133 | __declspec(dllimport) void __stdcall DebugBreak(void); | 97 | __declspec(dllimport) void __stdcall DebugBreak(void); |
diff --git a/src/common/common_paths.h b/src/common/common_paths.h index 440b06060..2903f2cf2 100644 --- a/src/common/common_paths.h +++ b/src/common/common_paths.h | |||
| @@ -4,9 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | // Make sure we pick up USER_DIR if set in config.h | ||
| 8 | #include "common/common.h" | ||
| 9 | |||
| 10 | // Directory separators, do we need this? | 7 | // Directory separators, do we need this? |
| 11 | #define DIR_SEP "/" | 8 | #define DIR_SEP "/" |
| 12 | #define DIR_SEP_CHR '/' | 9 | #define DIR_SEP_CHR '/' |
diff --git a/src/common/common_types.h b/src/common/common_types.h index 1b453e7f5..644709ba6 100644 --- a/src/common/common_types.h +++ b/src/common/common_types.h | |||
| @@ -47,6 +47,11 @@ typedef std::int64_t s64; ///< 64-bit signed int | |||
| 47 | typedef float f32; ///< 32-bit floating point | 47 | typedef float f32; ///< 32-bit floating point |
| 48 | typedef double f64; ///< 64-bit floating point | 48 | typedef double f64; ///< 64-bit floating point |
| 49 | 49 | ||
| 50 | // TODO: It would be nice to eventually replace these with strong types that prevent accidental | ||
| 51 | // conversion between each other. | ||
| 52 | typedef u32 VAddr; ///< Represents a pointer in the userspace virtual address space. | ||
| 53 | typedef u32 PAddr; ///< Represents a pointer in the ARM11 physical address space. | ||
| 54 | |||
| 50 | /// Union for fast 16-bit type casting | 55 | /// Union for fast 16-bit type casting |
| 51 | union t16 { | 56 | union t16 { |
| 52 | u8 _u8[2]; ///< 8-bit unsigned char(s) | 57 | u8 _u8[2]; ///< 8-bit unsigned char(s) |
| @@ -73,6 +78,16 @@ union t64 { | |||
| 73 | u8 _u8[8]; ///< 8-bit unsigned char(s) | 78 | u8 _u8[8]; ///< 8-bit unsigned char(s) |
| 74 | }; | 79 | }; |
| 75 | 80 | ||
| 81 | // An inheritable class to disallow the copy constructor and operator= functions | ||
| 82 | class NonCopyable { | ||
| 83 | protected: | ||
| 84 | NonCopyable() = default; | ||
| 85 | ~NonCopyable() = default; | ||
| 86 | |||
| 87 | NonCopyable(NonCopyable&) = delete; | ||
| 88 | NonCopyable& operator=(NonCopyable&) = delete; | ||
| 89 | }; | ||
| 90 | |||
| 76 | namespace Common { | 91 | namespace Common { |
| 77 | /// Rectangle data structure | 92 | /// Rectangle data structure |
| 78 | class Rect { | 93 | class Rect { |
diff --git a/src/common/concurrent_ring_buffer.h b/src/common/concurrent_ring_buffer.h index fc18e6c86..c5889513a 100644 --- a/src/common/concurrent_ring_buffer.h +++ b/src/common/concurrent_ring_buffer.h | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <mutex> | 10 | #include <mutex> |
| 11 | #include <thread> | 11 | #include <thread> |
| 12 | 12 | ||
| 13 | #include "common/common.h" // for NonCopyable | 13 | #include "common/common_types.h" // for NonCopyable |
| 14 | 14 | ||
| 15 | namespace Common { | 15 | namespace Common { |
| 16 | 16 | ||
diff --git a/src/common/emu_window.h b/src/common/emu_window.h index e0fc12a48..8eca6b5d5 100644 --- a/src/common/emu_window.h +++ b/src/common/emu_window.h | |||
| @@ -4,11 +4,11 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "common/common.h" | 7 | #include "common/common_types.h" |
| 8 | #include "common/scm_rev.h" | ||
| 9 | #include "common/string_util.h" | ||
| 10 | #include "common/key_map.h" | 8 | #include "common/key_map.h" |
| 11 | #include "common/math_util.h" | 9 | #include "common/math_util.h" |
| 10 | #include "common/scm_rev.h" | ||
| 11 | #include "common/string_util.h" | ||
| 12 | 12 | ||
| 13 | /** | 13 | /** |
| 14 | * Abstraction class used to provide an interface between emulation code and the frontend | 14 | * Abstraction class used to provide an interface between emulation code and the frontend |
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp index 4ef4918d7..7cdd1484f 100644 --- a/src/common/file_util.cpp +++ b/src/common/file_util.cpp | |||
| @@ -2,42 +2,52 @@ | |||
| 2 | // Licensed under GPLv2 or any later version | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | 5 | #include "common/assert.h" | |
| 6 | #include "common/common.h" | 6 | #include "common/common_funcs.h" |
| 7 | #include "common/common_paths.h" | ||
| 7 | #include "common/file_util.h" | 8 | #include "common/file_util.h" |
| 9 | #include "common/logging/log.h" | ||
| 8 | 10 | ||
| 9 | #ifdef _WIN32 | 11 | #ifdef _WIN32 |
| 10 | #include <windows.h> | 12 | #include <windows.h> |
| 11 | #include <shlobj.h> // for SHGetFolderPath | 13 | #include <shlobj.h> // for SHGetFolderPath |
| 12 | #include <shellapi.h> | 14 | #include <shellapi.h> |
| 13 | #include <commdlg.h> // for GetSaveFileName | 15 | #include <commdlg.h> // for GetSaveFileName |
| 14 | #include <io.h> | 16 | #include <io.h> |
| 15 | #include <direct.h> // getcwd | 17 | #include <direct.h> // getcwd |
| 16 | #include <tchar.h> | 18 | #include <tchar.h> |
| 19 | |||
| 20 | // 64 bit offsets for windows | ||
| 21 | #define fseeko _fseeki64 | ||
| 22 | #define ftello _ftelli64 | ||
| 23 | #define atoll _atoi64 | ||
| 24 | #define stat64 _stat64 | ||
| 25 | #define fstat64 _fstat64 | ||
| 26 | #define fileno _fileno | ||
| 17 | #else | 27 | #else |
| 18 | #include <sys/param.h> | 28 | #include <sys/param.h> |
| 19 | #include <sys/types.h> | 29 | #include <sys/types.h> |
| 20 | #include <dirent.h> | 30 | #include <dirent.h> |
| 21 | #include <pwd.h> | 31 | #include <pwd.h> |
| 22 | #include <unistd.h> | 32 | #include <unistd.h> |
| 23 | #endif | 33 | #endif |
| 24 | 34 | ||
| 25 | #if defined(__APPLE__) | 35 | #if defined(__APPLE__) |
| 26 | #include <CoreFoundation/CFString.h> | 36 | #include <CoreFoundation/CFString.h> |
| 27 | #include <CoreFoundation/CFURL.h> | 37 | #include <CoreFoundation/CFURL.h> |
| 28 | #include <CoreFoundation/CFBundle.h> | 38 | #include <CoreFoundation/CFBundle.h> |
| 29 | #endif | 39 | #endif |
| 30 | 40 | ||
| 31 | #include <algorithm> | 41 | #include <algorithm> |
| 32 | #include <sys/stat.h> | 42 | #include <sys/stat.h> |
| 33 | 43 | ||
| 34 | #ifndef S_ISDIR | 44 | #ifndef S_ISDIR |
| 35 | #define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) | 45 | #define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) |
| 36 | #endif | 46 | #endif |
| 37 | 47 | ||
| 38 | #ifdef BSD4_4 | 48 | #ifdef BSD4_4 |
| 39 | #define stat64 stat | 49 | #define stat64 stat |
| 40 | #define fstat64 fstat | 50 | #define fstat64 fstat |
| 41 | #endif | 51 | #endif |
| 42 | 52 | ||
| 43 | // This namespace has various generic functions related to files and paths. | 53 | // This namespace has various generic functions related to files and paths. |
| @@ -589,7 +599,7 @@ std::string GetCurrentDir() | |||
| 589 | { | 599 | { |
| 590 | char *dir; | 600 | char *dir; |
| 591 | // Get the current working directory (getcwd uses malloc) | 601 | // Get the current working directory (getcwd uses malloc) |
| 592 | if (!(dir = __getcwd(nullptr, 0))) { | 602 | if (!(dir = getcwd(nullptr, 0))) { |
| 593 | 603 | ||
| 594 | LOG_ERROR(Common_Filesystem, "GetCurrentDirectory failed: %s", | 604 | LOG_ERROR(Common_Filesystem, "GetCurrentDirectory failed: %s", |
| 595 | GetLastErrorMsg()); | 605 | GetLastErrorMsg()); |
| @@ -603,7 +613,7 @@ std::string GetCurrentDir() | |||
| 603 | // Sets the current directory to the given directory | 613 | // Sets the current directory to the given directory |
| 604 | bool SetCurrentDir(const std::string &directory) | 614 | bool SetCurrentDir(const std::string &directory) |
| 605 | { | 615 | { |
| 606 | return __chdir(directory.c_str()) == 0; | 616 | return chdir(directory.c_str()) == 0; |
| 607 | } | 617 | } |
| 608 | 618 | ||
| 609 | #if defined(__APPLE__) | 619 | #if defined(__APPLE__) |
diff --git a/src/common/file_util.h b/src/common/file_util.h index 86aab2e3d..b65829291 100644 --- a/src/common/file_util.h +++ b/src/common/file_util.h | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | #include <string> | 11 | #include <string> |
| 12 | #include <vector> | 12 | #include <vector> |
| 13 | 13 | ||
| 14 | #include "common/common.h" | 14 | #include "common/common_types.h" |
| 15 | #include "common/string_util.h" | 15 | #include "common/string_util.h" |
| 16 | 16 | ||
| 17 | // User directory indices for GetUserPath | 17 | // User directory indices for GetUserPath |
diff --git a/src/common/hash.cpp b/src/common/hash.cpp index 0624dab8d..b0b3613f6 100644 --- a/src/common/hash.cpp +++ b/src/common/hash.cpp | |||
| @@ -4,7 +4,10 @@ | |||
| 4 | 4 | ||
| 5 | #include <algorithm> | 5 | #include <algorithm> |
| 6 | 6 | ||
| 7 | #include "common/common_funcs.h" // For rotl | ||
| 7 | #include "common/hash.h" | 8 | #include "common/hash.h" |
| 9 | #include "common/platform.h" | ||
| 10 | |||
| 8 | #if _M_SSE >= 0x402 | 11 | #if _M_SSE >= 0x402 |
| 9 | #include "common/cpu_detect.h" | 12 | #include "common/cpu_detect.h" |
| 10 | #include <nmmintrin.h> | 13 | #include <nmmintrin.h> |
diff --git a/src/common/hash.h b/src/common/hash.h index 3ac42bc44..0afaf0e37 100644 --- a/src/common/hash.h +++ b/src/common/hash.h | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "common/common.h" | 7 | #include "common/common_types.h" |
| 8 | 8 | ||
| 9 | u32 HashFletcher(const u8* data_u8, size_t length); // FAST. Length & 1 == 0. | 9 | u32 HashFletcher(const u8* data_u8, size_t length); // FAST. Length & 1 == 0. |
| 10 | u32 HashAdler32(const u8* data, size_t len); // Fairly accurate, slightly slower | 10 | u32 HashAdler32(const u8* data, size_t len); // Fairly accurate, slightly slower |
diff --git a/src/common/linear_disk_cache.h b/src/common/linear_disk_cache.h index 74ce74aba..48529cf42 100644 --- a/src/common/linear_disk_cache.h +++ b/src/common/linear_disk_cache.h | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "common/common.h" | 7 | #include "common/common_types.h" |
| 8 | #include <fstream> | 8 | #include <fstream> |
| 9 | 9 | ||
| 10 | // defined in Version.cpp | 10 | // defined in Version.cpp |
diff --git a/src/common/logging/text_formatter.cpp b/src/common/logging/text_formatter.cpp index 36c91c4f6..45be6d0a1 100644 --- a/src/common/logging/text_formatter.cpp +++ b/src/common/logging/text_formatter.cpp | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include "common/logging/log.h" | 14 | #include "common/logging/log.h" |
| 15 | #include "common/logging/text_formatter.h" | 15 | #include "common/logging/text_formatter.h" |
| 16 | 16 | ||
| 17 | #include "common/common_funcs.h" | ||
| 17 | #include "common/string_util.h" | 18 | #include "common/string_util.h" |
| 18 | 19 | ||
| 19 | namespace Log { | 20 | namespace Log { |
diff --git a/src/common/math_util.cpp b/src/common/math_util.cpp index a83592dd2..bcb70cae5 100644 --- a/src/common/math_util.cpp +++ b/src/common/math_util.cpp | |||
| @@ -2,12 +2,12 @@ | |||
| 2 | // Licensed under GPLv2 or any later version | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #include <cstring> | ||
| 6 | #include <numeric> // Necessary on OS X, but not Linux | ||
| 5 | 7 | ||
| 6 | #include "common/common.h" | 8 | #include "common/common_types.h" |
| 7 | #include "common/math_util.h" | 9 | #include "common/math_util.h" |
| 8 | 10 | ||
| 9 | #include <numeric> // Necessary on OS X, but not Linux | ||
| 10 | |||
| 11 | namespace MathUtil | 11 | namespace MathUtil |
| 12 | { | 12 | { |
| 13 | 13 | ||
diff --git a/src/common/math_util.h b/src/common/math_util.h index 43b0e0dc3..52f579cf7 100644 --- a/src/common/math_util.h +++ b/src/common/math_util.h | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "common/common.h" | 7 | #include "common/common_types.h" |
| 8 | 8 | ||
| 9 | #include <algorithm> | 9 | #include <algorithm> |
| 10 | #include <type_traits> | 10 | #include <type_traits> |
diff --git a/src/common/mem_arena.cpp b/src/common/mem_arena.cpp index 76c70701d..f233d4a3a 100644 --- a/src/common/mem_arena.cpp +++ b/src/common/mem_arena.cpp | |||
| @@ -17,12 +17,16 @@ | |||
| 17 | 17 | ||
| 18 | #include <string> | 18 | #include <string> |
| 19 | 19 | ||
| 20 | #include "common/memory_util.h" | 20 | #include "common/logging/log.h" |
| 21 | #include "common/mem_arena.h" | 21 | #include "common/mem_arena.h" |
| 22 | #include "common/memory_util.h" | ||
| 22 | #include "common/string_util.h" | 23 | #include "common/string_util.h" |
| 23 | 24 | ||
| 24 | #ifndef _WIN32 | 25 | #ifndef _WIN32 |
| 25 | #include <fcntl.h> | 26 | #include <fcntl.h> |
| 27 | #include <string.h> | ||
| 28 | #include <unistd.h> | ||
| 29 | |||
| 26 | #ifdef ANDROID | 30 | #ifdef ANDROID |
| 27 | #include <sys/ioctl.h> | 31 | #include <sys/ioctl.h> |
| 28 | #include <linux/ashmem.h> | 32 | #include <linux/ashmem.h> |
diff --git a/src/common/mem_arena.h b/src/common/mem_arena.h index 3379d2529..d514fe58c 100644 --- a/src/common/mem_arena.h +++ b/src/common/mem_arena.h | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | #include <windows.h> | 21 | #include <windows.h> |
| 22 | #endif | 22 | #endif |
| 23 | 23 | ||
| 24 | #include "common/common.h" | 24 | #include "common/common_types.h" |
| 25 | 25 | ||
| 26 | // This class lets you create a block of anonymous RAM, and then arbitrarily map views into it. | 26 | // This class lets you create a block of anonymous RAM, and then arbitrarily map views into it. |
| 27 | // Multiple views can mirror the same section of the block, which makes it very convient for emulating | 27 | // Multiple views can mirror the same section of the block, which makes it very convient for emulating |
diff --git a/src/common/memory_util.cpp b/src/common/memory_util.cpp index 7e69d31cb..2087a1184 100644 --- a/src/common/memory_util.cpp +++ b/src/common/memory_util.cpp | |||
| @@ -3,7 +3,8 @@ | |||
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | 5 | ||
| 6 | #include "common/common.h" | 6 | #include "common/common_funcs.h" |
| 7 | #include "common/logging/log.h" | ||
| 7 | #include "common/memory_util.h" | 8 | #include "common/memory_util.h" |
| 8 | #include "common/string_util.h" | 9 | #include "common/string_util.h" |
| 9 | 10 | ||
diff --git a/src/common/misc.cpp b/src/common/misc.cpp index e33055d10..53cacf37c 100644 --- a/src/common/misc.cpp +++ b/src/common/misc.cpp | |||
| @@ -2,10 +2,12 @@ | |||
| 2 | // Licensed under GPLv2 or any later version | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #include "common/common.h" | 5 | #include "common/common_funcs.h" |
| 6 | 6 | ||
| 7 | #ifdef _WIN32 | 7 | #ifdef _WIN32 |
| 8 | #include <windows.h> | 8 | #include <windows.h> |
| 9 | #else | ||
| 10 | #include <string.h> | ||
| 9 | #endif | 11 | #endif |
| 10 | 12 | ||
| 11 | // Neither Android nor OS X support TLS | 13 | // Neither Android nor OS X support TLS |
diff --git a/src/common/platform.h b/src/common/platform.h index e27d6e31f..1516dc88a 100644 --- a/src/common/platform.h +++ b/src/common/platform.h | |||
| @@ -64,47 +64,26 @@ | |||
| 64 | #endif | 64 | #endif |
| 65 | 65 | ||
| 66 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 66 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
| 67 | // Compiler-Specific Definitions | 67 | // Feature detection |
| 68 | 68 | ||
| 69 | #if EMU_PLATFORM == PLATFORM_WINDOWS | 69 | #if defined _M_GENERIC |
| 70 | 70 | # define _M_SSE 0x0 | |
| 71 | #include <time.h> | 71 | #elif defined __GNUC__ |
| 72 | 72 | # if defined __SSE4_2__ | |
| 73 | #ifndef NOMINMAX | 73 | # define _M_SSE 0x402 |
| 74 | #define NOMINMAX | 74 | # elif defined __SSE4_1__ |
| 75 | # define _M_SSE 0x401 | ||
| 76 | # elif defined __SSSE3__ | ||
| 77 | # define _M_SSE 0x301 | ||
| 78 | # elif defined __SSE3__ | ||
| 79 | # define _M_SSE 0x300 | ||
| 80 | # endif | ||
| 81 | #elif (_MSC_VER >= 1500) || __INTEL_COMPILER // Visual Studio 2008 | ||
| 82 | # define _M_SSE 0x402 | ||
| 75 | #endif | 83 | #endif |
| 76 | #define EMU_FASTCALL __fastcall | ||
| 77 | |||
| 78 | #ifdef _MSC_VER | ||
| 79 | inline struct tm* localtime_r(const time_t *clock, struct tm *result) { | ||
| 80 | if (localtime_s(result, clock) == 0) | ||
| 81 | return result; | ||
| 82 | return nullptr; | ||
| 83 | } | ||
| 84 | #endif | ||
| 85 | |||
| 86 | #else // EMU_PLATFORM != PLATFORM_WINDOWS | ||
| 87 | |||
| 88 | #define EMU_FASTCALL __attribute__((fastcall)) | ||
| 89 | #define __stdcall | ||
| 90 | #define __cdecl | ||
| 91 | 84 | ||
| 92 | #define BOOL bool | 85 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
| 93 | #define DWORD u32 | 86 | // Compiler-Specific Definitions |
| 94 | |||
| 95 | // TODO: Hacks.. | ||
| 96 | #include <limits.h> | ||
| 97 | |||
| 98 | #include <strings.h> | ||
| 99 | #define stricmp(str1, str2) strcasecmp(str1, str2) | ||
| 100 | #define _stricmp(str1, str2) strcasecmp(str1, str2) | ||
| 101 | #define _snprintf snprintf | ||
| 102 | #define _getcwd getcwd | ||
| 103 | #define _tzset tzset | ||
| 104 | |||
| 105 | typedef void EXCEPTION_POINTERS; | ||
| 106 | |||
| 107 | #endif | ||
| 108 | 87 | ||
| 109 | #define GCC_VERSION_AVAILABLE(major, minor) (defined(__GNUC__) && (__GNUC__ > (major) || \ | 88 | #define GCC_VERSION_AVAILABLE(major, minor) (defined(__GNUC__) && (__GNUC__ > (major) || \ |
| 110 | (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))) | 89 | (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))) |
diff --git a/src/common/profiler.cpp b/src/common/profiler.cpp index 65c3df167..b8cde1785 100644 --- a/src/common/profiler.cpp +++ b/src/common/profiler.cpp | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | #include "common/assert.h" | 7 | #include "common/assert.h" |
| 8 | 8 | ||
| 9 | #if defined(_MSC_VER) && _MSC_VER <= 1800 // MSVC 2013. | 9 | #if defined(_MSC_VER) && _MSC_VER <= 1800 // MSVC 2013. |
| 10 | #define NOMINMAX | ||
| 11 | #define WIN32_LEAN_AND_MEAN | 10 | #define WIN32_LEAN_AND_MEAN |
| 12 | #include <Windows.h> // For QueryPerformanceCounter/Frequency | 11 | #include <Windows.h> // For QueryPerformanceCounter/Frequency |
| 13 | #endif | 12 | #endif |
diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp index 3264dd51a..6563611fd 100644 --- a/src/common/string_util.cpp +++ b/src/common/string_util.cpp | |||
| @@ -4,7 +4,9 @@ | |||
| 4 | 4 | ||
| 5 | #include <boost/range/algorithm.hpp> | 5 | #include <boost/range/algorithm.hpp> |
| 6 | 6 | ||
| 7 | #include "common/common.h" | 7 | #include "common/common_funcs.h" |
| 8 | #include "common/common_paths.h" | ||
| 9 | #include "common/logging/log.h" | ||
| 8 | #include "common/string_util.h" | 10 | #include "common/string_util.h" |
| 9 | 11 | ||
| 10 | #ifdef _MSC_VER | 12 | #ifdef _MSC_VER |
diff --git a/src/common/string_util.h b/src/common/string_util.h index 74974263f..a60a84696 100644 --- a/src/common/string_util.h +++ b/src/common/string_util.h | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <sstream> | 10 | #include <sstream> |
| 11 | #include <vector> | 11 | #include <vector> |
| 12 | 12 | ||
| 13 | #include "common/common.h" | 13 | #include "common/common_types.h" |
| 14 | 14 | ||
| 15 | namespace Common { | 15 | namespace Common { |
| 16 | 16 | ||
diff --git a/src/common/symbols.h b/src/common/symbols.h index f76cb6b1e..6b62b011e 100644 --- a/src/common/symbols.h +++ b/src/common/symbols.h | |||
| @@ -5,8 +5,10 @@ | |||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include <map> | 7 | #include <map> |
| 8 | #include <string> | ||
| 9 | #include <utility> | ||
| 8 | 10 | ||
| 9 | #include "common/common.h" | 11 | #include "common/common_types.h" |
| 10 | 12 | ||
| 11 | struct TSymbol | 13 | struct TSymbol |
| 12 | { | 14 | { |
diff --git a/src/common/thread.h b/src/common/thread.h index 5fdb6baeb..7bc419497 100644 --- a/src/common/thread.h +++ b/src/common/thread.h | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | // Don't include common.h here as it will break LogManager | ||
| 8 | #include "common/common_types.h" | 7 | #include "common/common_types.h" |
| 9 | #include <cstdio> | 8 | #include <cstdio> |
| 10 | #include <cstring> | 9 | #include <cstring> |
diff --git a/src/common/thread_queue_list.h b/src/common/thread_queue_list.h index 4f27fc899..12455d7c4 100644 --- a/src/common/thread_queue_list.h +++ b/src/common/thread_queue_list.h | |||
| @@ -9,8 +9,6 @@ | |||
| 9 | 9 | ||
| 10 | #include <boost/range/algorithm_ext/erase.hpp> | 10 | #include <boost/range/algorithm_ext/erase.hpp> |
| 11 | 11 | ||
| 12 | #include "common/common.h" | ||
| 13 | |||
| 14 | namespace Common { | 12 | namespace Common { |
| 15 | 13 | ||
| 16 | template<class T, unsigned int N> | 14 | template<class T, unsigned int N> |
diff --git a/src/common/thunk.h b/src/common/thunk.h index 4fb7c98e1..533480056 100644 --- a/src/common/thunk.h +++ b/src/common/thunk.h | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | 6 | ||
| 7 | #include <map> | 7 | #include <map> |
| 8 | 8 | ||
| 9 | #include "common/common.h" | 9 | #include "common/common_types.h" |
| 10 | 10 | ||
| 11 | // This simple class creates a wrapper around a C/C++ function that saves all fp state | 11 | // This simple class creates a wrapper around a C/C++ function that saves all fp state |
| 12 | // before entering it, and restores it upon exit. This is required to be able to selectively | 12 | // before entering it, and restores it upon exit. This is required to be able to selectively |
diff --git a/src/common/timer.cpp b/src/common/timer.cpp index a6682ea19..b99835ac7 100644 --- a/src/common/timer.cpp +++ b/src/common/timer.cpp | |||
| @@ -12,9 +12,9 @@ | |||
| 12 | #include <sys/time.h> | 12 | #include <sys/time.h> |
| 13 | #endif | 13 | #endif |
| 14 | 14 | ||
| 15 | #include "common/common.h" | 15 | #include "common/common_types.h" |
| 16 | #include "common/timer.h" | ||
| 17 | #include "common/string_util.h" | 16 | #include "common/string_util.h" |
| 17 | #include "common/timer.h" | ||
| 18 | 18 | ||
| 19 | namespace Common | 19 | namespace Common |
| 20 | { | 20 | { |
diff --git a/src/common/timer.h b/src/common/timer.h index 4b44c33a0..b5f0f2585 100644 --- a/src/common/timer.h +++ b/src/common/timer.h | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "common/common.h" | 7 | #include "common/common_types.h" |
| 8 | #include <string> | 8 | #include <string> |
| 9 | 9 | ||
| 10 | namespace Common | 10 | namespace Common |