فهرست منبع

Merge pull request #721 from yuriks/more-cleanups

More cleanups
Yuri Kunde Schlesner 11 سال پیش
والد
کامیت
4f4d230dac
100فایلهای تغییر یافته به همراه392 افزوده شده و 465 حذف شده
  1. 5 2
      CMakeLists.txt
  2. 2 2
      src/citra/citra.cpp
  3. 3 0
      src/citra/config.cpp
  4. 1 1
      src/citra/emu_window/emu_window_glfw.cpp
  5. 0 1
      src/citra_qt/bootmanager.cpp
  6. 0 1
      src/citra_qt/bootmanager.h
  7. 0 1
      src/citra_qt/debugger/disassembler.cpp
  8. 1 1
      src/citra_qt/debugger/disassembler.h
  9. 2 0
      src/citra_qt/debugger/graphics_breakpoints.cpp
  10. 2 1
      src/citra_qt/debugger/ramview.cpp
  11. 1 2
      src/citra_qt/main.cpp
  12. 0 1
      src/common/CMakeLists.txt
  13. 1 0
      src/common/assert.h
  14. 1 1
      src/common/bit_field.h
  15. 0 1
      src/common/break_points.cpp
  16. 1 1
      src/common/break_points.h
  17. 2 1
      src/common/chunk_file.h
  18. 0 120
      src/common/common.h
  19. 23 59
      src/common/common_funcs.h
  20. 0 3
      src/common/common_paths.h
  21. 15 0
      src/common/common_types.h
  22. 1 1
      src/common/concurrent_ring_buffer.h
  23. 3 3
      src/common/emu_window.h
  24. 32 22
      src/common/file_util.cpp
  25. 1 1
      src/common/file_util.h
  26. 3 0
      src/common/hash.cpp
  27. 1 1
      src/common/hash.h
  28. 1 1
      src/common/linear_disk_cache.h
  29. 1 0
      src/common/logging/text_formatter.cpp
  30. 3 3
      src/common/math_util.cpp
  31. 1 1
      src/common/math_util.h
  32. 5 1
      src/common/mem_arena.cpp
  33. 1 1
      src/common/mem_arena.h
  34. 2 1
      src/common/memory_util.cpp
  35. 3 1
      src/common/misc.cpp
  36. 18 39
      src/common/platform.h
  37. 0 1
      src/common/profiler.cpp
  38. 3 1
      src/common/string_util.cpp
  39. 1 1
      src/common/string_util.h
  40. 3 1
      src/common/symbols.h
  41. 0 1
      src/common/thread.h
  42. 0 2
      src/common/thread_queue_list.h
  43. 1 1
      src/common/thunk.h
  44. 2 2
      src/common/timer.cpp
  45. 1 1
      src/common/timer.h
  46. 1 0
      src/core/CMakeLists.txt
  47. 0 1
      src/core/arm/arm_interface.h
  48. 2 0
      src/core/arm/dyncom/arm_dyncom.cpp
  49. 2 0
      src/core/arm/interpreter/armsupp.cpp
  50. 2 0
      src/core/arm/skyeye_common/armmmu.h
  51. 0 1
      src/core/arm/skyeye_common/vfp/vfp.cpp
  52. 1 0
      src/core/core.cpp
  53. 1 1
      src/core/core_timing.h
  54. 127 0
      src/core/file_sys/archive_backend.cpp
  55. 17 130
      src/core/file_sys/archive_backend.h
  56. 1 0
      src/core/file_sys/archive_extsavedata.cpp
  57. 1 0
      src/core/file_sys/archive_romfs.cpp
  58. 1 0
      src/core/file_sys/archive_savedata.cpp
  59. 1 0
      src/core/file_sys/archive_savedatacheck.cpp
  60. 1 0
      src/core/file_sys/archive_sdmc.cpp
  61. 1 2
      src/core/file_sys/directory_backend.h
  62. 1 0
      src/core/file_sys/disk_archive.cpp
  63. 2 0
      src/core/file_sys/disk_archive.h
  64. 0 2
      src/core/file_sys/file_backend.h
  65. 1 0
      src/core/file_sys/ivfc_archive.cpp
  66. 2 0
      src/core/file_sys/ivfc_archive.h
  67. 4 1
      src/core/hle/config_mem.cpp
  68. 7 0
      src/core/hle/hle.h
  69. 1 0
      src/core/hle/kernel/address_arbiter.cpp
  70. 1 1
      src/core/hle/kernel/event.cpp
  71. 2 1
      src/core/hle/kernel/kernel.cpp
  72. 3 11
      src/core/hle/kernel/kernel.h
  73. 1 1
      src/core/hle/kernel/mutex.cpp
  74. 1 1
      src/core/hle/kernel/semaphore.cpp
  75. 1 1
      src/core/hle/kernel/shared_memory.cpp
  76. 3 1
      src/core/hle/kernel/thread.cpp
  77. 2 1
      src/core/hle/kernel/timer.cpp
  78. 1 0
      src/core/hle/result.h
  79. 2 0
      src/core/hle/service/am_sys.cpp
  80. 2 0
      src/core/hle/service/apt/apt.cpp
  81. 0 3
      src/core/hle/service/apt/apt_s.cpp
  82. 0 1
      src/core/hle/service/apt/apt_u.cpp
  83. 6 2
      src/core/hle/service/cfg/cfg.cpp
  84. 2 0
      src/core/hle/service/cfg/cfg_u.cpp
  85. 2 0
      src/core/hle/service/dsp_dsp.cpp
  86. 2 0
      src/core/hle/service/err_f.cpp
  87. 11 0
      src/core/hle/service/fs/archive.cpp
  88. 6 10
      src/core/hle/service/fs/archive.h
  89. 4 1
      src/core/hle/service/fs/fs_user.cpp
  90. 2 0
      src/core/hle/service/hid/hid.cpp
  91. 2 0
      src/core/hle/service/ldr_ro.cpp
  92. 2 0
      src/core/hle/service/nim_u.cpp
  93. 0 2
      src/core/hle/service/ns_s.cpp
  94. 2 0
      src/core/hle/service/nwm_uds.cpp
  95. 2 1
      src/core/hle/service/ptm/ptm.cpp
  96. 1 1
      src/core/hle/service/ptm/ptm_u.cpp
  97. 1 1
      src/core/hle/service/service.cpp
  98. 1 1
      src/core/hle/service/service.h
  99. 1 0
      src/core/hle/service/soc_u.cpp
  100. 2 0
      src/core/hle/service/srv.cpp

+ 5 - 2
CMakeLists.txt

@@ -8,8 +8,11 @@ if (NOT MSVC)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-attributes -pthread")
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread")
 else()
-    # Silence deprecation warnings
-    add_definitions(/D_CRT_SECURE_NO_WARNINGS)
+    # Silence "deprecation" warnings
+    add_definitions(/D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE)
+    # Avoid windows.h junk
+    add_definitions(/DNOMINMAX)
+
     # set up output paths for executable binaries (.exe-files, and .dll-files on DLL-capable platforms)
     set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 

+ 2 - 2
src/citra/citra.cpp

@@ -4,7 +4,7 @@
 
 #include <thread>
 
-#include "common/common.h"
+#include "common/logging/log.h"
 #include "common/logging/text_formatter.h"
 #include "common/logging/backend.h"
 #include "common/logging/filter.h"
@@ -19,7 +19,7 @@
 #include "citra/emu_window/emu_window_glfw.h"
 
 /// Application entry point
-int __cdecl main(int argc, char **argv) {
+int main(int argc, char **argv) {
     std::shared_ptr<Log::Logger> logger = Log::InitGlobalLogger();
     Log::Filter log_filter(Log::Level::Debug);
     Log::SetFilter(&log_filter);

+ 3 - 0
src/citra/config.cpp

@@ -5,7 +5,10 @@
 #include <GLFW/glfw3.h>
 
 #include "citra/default_ini.h"
+
 #include "common/file_util.h"
+#include "common/logging/log.h"
+
 #include "core/settings.h"
 #include "core/core.h"
 

+ 1 - 1
src/citra/emu_window/emu_window_glfw.cpp

@@ -4,7 +4,7 @@
 
 #include <GLFW/glfw3.h>
 
-#include "common/common.h"
+#include "common/logging/log.h"
 
 #include "video_core/video_core.h"
 

+ 0 - 1
src/citra_qt/bootmanager.cpp

@@ -8,7 +8,6 @@
 #include <QWindow>
 #endif
 
-#include "common/common.h"
 #include "bootmanager.h"
 #include "main.h"
 

+ 0 - 1
src/citra_qt/bootmanager.h

@@ -7,7 +7,6 @@
 #include <QThread>
 #include <QGLWidget>
 
-#include "common/common.h"
 #include "common/emu_window.h"
 #include "common/thread.h"
 

+ 0 - 1
src/citra_qt/debugger/disassembler.cpp

@@ -7,7 +7,6 @@
 #include "../bootmanager.h"
 #include "../hotkeys.h"
 
-#include "common/common.h"
 #include "core/mem_map.h"
 
 #include "core/core.h"

+ 1 - 1
src/citra_qt/debugger/disassembler.h

@@ -9,8 +9,8 @@
 
 #include "ui_disassembler.h"
 
-#include "common/common.h"
 #include "common/break_points.h"
+#include "common/common_types.h"
 
 class QAction;
 class EmuThread;

+ 2 - 0
src/citra_qt/debugger/graphics_breakpoints.cpp

@@ -8,6 +8,8 @@
 #include <QVBoxLayout>
 #include <QLabel>
 
+#include "common/assert.h"
+
 #include "graphics_breakpoints.h"
 #include "graphics_breakpoints_p.h"
 

+ 2 - 1
src/citra_qt/debugger/ramview.cpp

@@ -4,8 +4,9 @@
 
 #include "ramview.h"
 
-#include "common/common.h"
 #include "core/mem_map.h"
+
+
 GRamView::GRamView(QWidget* parent) : QHexEdit(parent)
 {
 }

+ 1 - 2
src/citra_qt/main.cpp

@@ -10,7 +10,6 @@
 #include "qhexedit.h"
 #include "main.h"
 
-#include "common/common.h"
 #include "common/logging/text_formatter.h"
 #include "common/logging/log.h"
 #include "common/logging/backend.h"
@@ -349,7 +348,7 @@ void GMainWindow::closeEvent(QCloseEvent* event)
 #undef main
 #endif
 
-int __cdecl main(int argc, char* argv[])
+int main(int argc, char* argv[])
 {
     std::shared_ptr<Log::Logger> logger = Log::InitGlobalLogger();
     Log::Filter log_filter(Log::Level::Info);

+ 0 - 1
src/common/CMakeLists.txt

@@ -27,7 +27,6 @@ set(HEADERS
             bit_field.h
             break_points.h
             chunk_file.h
-            common.h
             common_funcs.h
             common_paths.h
             common_types.h

+ 1 - 0
src/common/assert.h

@@ -4,6 +4,7 @@
 
 #pragma once
 
+#include <cstdio>
 #include <cstdlib>
 
 #include "common/common_funcs.h"

+ 1 - 1
src/common/bit_field.h

@@ -35,7 +35,7 @@
 #include <limits>
 #include <type_traits>
 
-#include "common/common.h"
+#include "common/common_funcs.h"
 
 /*
  * Abstract bitfield class

+ 0 - 1
src/common/break_points.cpp

@@ -2,7 +2,6 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-#include "common/common.h"
 #include "common/debug_interface.h"
 #include "common/break_points.h"
 #include "common/logging/log.h"

+ 1 - 1
src/common/break_points.h

@@ -7,7 +7,7 @@
 #include <vector>
 #include <string>
 
-#include "common/common.h"
+#include "common/common_types.h"
 
 class DebugInterface;
 

+ 2 - 1
src/common/chunk_file.h

@@ -34,8 +34,9 @@
 #include <set>
 #include <type_traits>
 
-#include "common/common.h"
+#include "common/common_types.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 
 template <class T>
 struct LinkedListItem : public T

+ 0 - 120
src/common/common.h

@@ -1,120 +0,0 @@
-// Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-
-// DO NOT EVER INCLUDE <windows.h> directly _or indirectly_ from this file
-// since it slows down the build a lot.
-
-#include <cstdlib>
-#include <cstdio>
-#include <cstring>
-
-#define STACKALIGN
-
-// An inheritable class to disallow the copy constructor and operator= functions
-class NonCopyable
-{
-protected:
-    NonCopyable() {}
-    NonCopyable(const NonCopyable&&) {}
-    void operator=(const NonCopyable&&) {}
-private:
-    NonCopyable(NonCopyable&);
-    NonCopyable& operator=(NonCopyable& other);
-};
-
-#include "common/assert.h"
-#include "common/logging/log.h"
-#include "common/common_types.h"
-#include "common/common_funcs.h"
-#include "common/common_paths.h"
-#include "common/platform.h"
-
-#ifdef __APPLE__
-// The Darwin ABI requires that stack frames be aligned to 16-byte boundaries.
-// This is only needed on i386 gcc - x86_64 already aligns to 16 bytes.
-    #if defined __i386__ && defined __GNUC__
-        #undef STACKALIGN
-        #define STACKALIGN __attribute__((__force_align_arg_pointer__))
-    #endif
-#elif defined _WIN32
-// Check MSC ver
-    #if defined _MSC_VER && _MSC_VER <= 1000
-        #error needs at least version 1000 of MSC
-    #endif
-
-    #ifndef NOMINMAX
-    #define NOMINMAX
-    #endif
-
-// Alignment
-    #define MEMORY_ALIGNED16(x) __declspec(align(16)) x
-    #define MEMORY_ALIGNED32(x) __declspec(align(32)) x
-    #define MEMORY_ALIGNED64(x) __declspec(align(64)) x
-    #define MEMORY_ALIGNED128(x) __declspec(align(128)) x
-    #define MEMORY_ALIGNED16_DECL(x) __declspec(align(16)) x
-    #define MEMORY_ALIGNED64_DECL(x) __declspec(align(64)) x
-#endif
-
-// Windows compatibility
-#ifndef _WIN32
-    #ifdef _LP64
-        #define _M_X64 1
-    #else
-        #define _M_IX86 1
-    #endif
-    #define __forceinline inline __attribute__((always_inline))
-    #define MEMORY_ALIGNED16(x) __attribute__((aligned(16))) x
-    #define MEMORY_ALIGNED32(x) __attribute__((aligned(32))) x
-    #define MEMORY_ALIGNED64(x) __attribute__((aligned(64))) x
-    #define MEMORY_ALIGNED128(x) __attribute__((aligned(128))) x
-    #define MEMORY_ALIGNED16_DECL(x) __attribute__((aligned(16))) x
-    #define MEMORY_ALIGNED64_DECL(x) __attribute__((aligned(64))) x
-#endif
-
-#ifdef _MSC_VER
-    #define __strdup _strdup
-    #define __getcwd _getcwd
-    #define __chdir _chdir
-#else
-    #define __strdup strdup
-    #define __getcwd getcwd
-    #define __chdir chdir
-#endif
-
-#if defined _M_GENERIC
-#  define _M_SSE 0x0
-#elif defined __GNUC__
-# if defined __SSE4_2__
-#  define _M_SSE 0x402
-# elif defined __SSE4_1__
-#  define _M_SSE 0x401
-# elif defined __SSSE3__
-#  define _M_SSE 0x301
-# elif defined __SSE3__
-#  define _M_SSE 0x300
-# endif
-#elif (_MSC_VER >= 1500) || __INTEL_COMPILER // Visual Studio 2008
-#  define _M_SSE 0x402
-#endif
-
-// Host communication.
-enum HOST_COMM
-{
-    // Begin at 10 in case there is already messages with wParam = 0, 1, 2 and so on
-    WM_USER_STOP = 10,
-    WM_USER_CREATE,
-    WM_USER_SETCURSOR,
-};
-
-// Used for notification on emulation state
-enum EMUSTATE_CHANGE
-{
-    EMUSTATE_CHANGE_PLAY = 1,
-    EMUSTATE_CHANGE_PAUSE,
-    EMUSTATE_CHANGE_STOP
-};
-
-#include "swap.h"

+ 23 - 59
src/common/common_funcs.h

@@ -7,13 +7,6 @@
 #include "common_types.h"
 #include <cstdlib>
 
-#ifdef _WIN32
-#define SLEEP(x) Sleep(x)
-#else
-#include <unistd.h>
-#define SLEEP(x) usleep(x*1000)
-#endif
-
 
 #define b2(x)   (   (x) | (   (x) >> 1) )
 #define b4(x)   ( b2(x) | ( b2(x) >> 2) )
@@ -34,6 +27,27 @@
 #define INSERT_PADDING_BYTES(num_bytes) u8 CONCAT2(pad, __LINE__)[(num_bytes)]
 #define INSERT_PADDING_WORDS(num_words) u32 CONCAT2(pad, __LINE__)[(num_words)]
 
+#ifdef _WIN32
+    // Alignment
+    #define MEMORY_ALIGNED16(x) __declspec(align(16)) x
+    #define MEMORY_ALIGNED32(x) __declspec(align(32)) x
+    #define MEMORY_ALIGNED64(x) __declspec(align(64)) x
+    #define MEMORY_ALIGNED128(x) __declspec(align(128)) x
+#else
+    // Windows compatibility
+    #ifdef _LP64
+        #define _M_X64 1
+    #else
+        #define _M_IX86 1
+    #endif
+
+    #define __forceinline inline __attribute__((always_inline))
+    #define MEMORY_ALIGNED16(x) __attribute__((aligned(16))) x
+    #define MEMORY_ALIGNED32(x) __attribute__((aligned(32))) x
+    #define MEMORY_ALIGNED64(x) __attribute__((aligned(64))) x
+    #define MEMORY_ALIGNED128(x) __attribute__((aligned(128))) x
+#endif
+
 #ifndef _MSC_VER
 
 #include <errno.h>
@@ -73,61 +87,11 @@ inline u64 _rotr64(u64 x, unsigned int shift){
 }
 
 #else // _MSC_VER
-#include <locale.h>
-
-// Function Cross-Compatibility
-    #define strcasecmp _stricmp
-    #define strncasecmp _strnicmp
-    #define unlink _unlink
+    // Function Cross-Compatibility
     #define snprintf _snprintf
-    #define vscprintf _vscprintf
 
-// Locale Cross-Compatibility
+    // Locale Cross-Compatibility
     #define locale_t _locale_t
-    #define freelocale _free_locale
-    #define newlocale(mask, locale, base) _create_locale(mask, locale)
-
-    #define LC_GLOBAL_LOCALE    ((locale_t)-1)
-    #define LC_ALL_MASK            LC_ALL
-    #define LC_COLLATE_MASK        LC_COLLATE
-    #define LC_CTYPE_MASK          LC_CTYPE
-    #define LC_MONETARY_MASK       LC_MONETARY
-    #define LC_NUMERIC_MASK        LC_NUMERIC
-    #define LC_TIME_MASK           LC_TIME
-
-    inline locale_t uselocale(locale_t new_locale)
-    {
-        // Retrieve the current per thread locale setting
-        bool bIsPerThread = (_configthreadlocale(0) == _ENABLE_PER_THREAD_LOCALE);
-
-        // Retrieve the current thread-specific locale
-        locale_t old_locale = bIsPerThread ? _get_current_locale() : LC_GLOBAL_LOCALE;
-
-        if(new_locale == LC_GLOBAL_LOCALE)
-        {
-            // Restore the global locale
-            _configthreadlocale(_DISABLE_PER_THREAD_LOCALE);
-        }
-        else if(new_locale != nullptr)
-        {
-            // Configure the thread to set the locale only for this thread
-            _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
-
-            // Set all locale categories
-            for(int i = LC_MIN; i <= LC_MAX; i++)
-                setlocale(i, new_locale->locinfo->lc_category[i].locale);
-        }
-
-        return old_locale;
-    }
-
-// 64 bit offsets for windows
-    #define fseeko _fseeki64
-    #define ftello _ftelli64
-    #define atoll _atoi64
-    #define stat64 _stat64
-    #define fstat64 _fstat64
-    #define fileno _fileno
 
     extern "C" {
         __declspec(dllimport) void __stdcall DebugBreak(void);

+ 0 - 3
src/common/common_paths.h

@@ -4,9 +4,6 @@
 
 #pragma once
 
-// Make sure we pick up USER_DIR if set in config.h
-#include "common/common.h"
-
 // Directory separators, do we need this?
 #define DIR_SEP "/"
 #define DIR_SEP_CHR '/'

+ 15 - 0
src/common/common_types.h

@@ -47,6 +47,11 @@ typedef std::int64_t s64; ///< 64-bit signed int
 typedef float   f32; ///< 32-bit floating point
 typedef double  f64; ///< 64-bit floating point
 
+// TODO: It would be nice to eventually replace these with strong types that prevent accidental
+// conversion between each other.
+typedef u32 VAddr; ///< Represents a pointer in the userspace virtual address space.
+typedef u32 PAddr; ///< Represents a pointer in the ARM11 physical address space.
+
 /// Union for fast 16-bit type casting
 union t16 {
     u8  _u8[2];             ///< 8-bit unsigned char(s)
@@ -73,6 +78,16 @@ union t64 {
     u8  _u8[8];             ///< 8-bit unsigned char(s)
 };
 
+// An inheritable class to disallow the copy constructor and operator= functions
+class NonCopyable {
+protected:
+    NonCopyable() = default;
+    ~NonCopyable() = default;
+
+    NonCopyable(NonCopyable&) = delete;
+    NonCopyable& operator=(NonCopyable&) = delete;
+};
+
 namespace Common {
 /// Rectangle data structure
 class Rect {

+ 1 - 1
src/common/concurrent_ring_buffer.h

@@ -10,7 +10,7 @@
 #include <mutex>
 #include <thread>
 
-#include "common/common.h" // for NonCopyable
+#include "common/common_types.h" // for NonCopyable
 
 namespace Common {
 

+ 3 - 3
src/common/emu_window.h

@@ -4,11 +4,11 @@
 
 #pragma once
 
-#include "common/common.h"
-#include "common/scm_rev.h"
-#include "common/string_util.h"
+#include "common/common_types.h"
 #include "common/key_map.h"
 #include "common/math_util.h"
+#include "common/scm_rev.h"
+#include "common/string_util.h"
 
 /**
  * Abstraction class used to provide an interface between emulation code and the frontend

+ 32 - 22
src/common/file_util.cpp

@@ -2,42 +2,52 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-
-#include "common/common.h"
+#include "common/assert.h"
+#include "common/common_funcs.h"
+#include "common/common_paths.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 
 #ifdef _WIN32
-#include <windows.h>
-#include <shlobj.h>        // for SHGetFolderPath
-#include <shellapi.h>
-#include <commdlg.h>    // for GetSaveFileName
-#include <io.h>
-#include <direct.h>        // getcwd
-#include <tchar.h>
+    #include <windows.h>
+    #include <shlobj.h> // for SHGetFolderPath
+    #include <shellapi.h>
+    #include <commdlg.h> // for GetSaveFileName
+    #include <io.h>
+    #include <direct.h> // getcwd
+    #include <tchar.h>
+    
+    // 64 bit offsets for windows
+    #define fseeko _fseeki64
+    #define ftello _ftelli64
+    #define atoll _atoi64
+    #define stat64 _stat64
+    #define fstat64 _fstat64
+    #define fileno _fileno
 #else
-#include <sys/param.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <pwd.h>
-#include <unistd.h>
+    #include <sys/param.h>
+    #include <sys/types.h>
+    #include <dirent.h>
+    #include <pwd.h>
+    #include <unistd.h>
 #endif
 
 #if defined(__APPLE__)
-#include <CoreFoundation/CFString.h>
-#include <CoreFoundation/CFURL.h>
-#include <CoreFoundation/CFBundle.h>
+    #include <CoreFoundation/CFString.h>
+    #include <CoreFoundation/CFURL.h>
+    #include <CoreFoundation/CFBundle.h>
 #endif
 
 #include <algorithm>
 #include <sys/stat.h>
 
 #ifndef S_ISDIR
-#define S_ISDIR(m)  (((m)&S_IFMT) == S_IFDIR)
+    #define S_ISDIR(m)  (((m)&S_IFMT) == S_IFDIR)
 #endif
 
 #ifdef BSD4_4
-#define stat64 stat
-#define fstat64 fstat
+    #define stat64 stat
+    #define fstat64 fstat
 #endif
 
 // This namespace has various generic functions related to files and paths.
@@ -589,7 +599,7 @@ std::string GetCurrentDir()
 {
     char *dir;
     // Get the current working directory (getcwd uses malloc)
-    if (!(dir = __getcwd(nullptr, 0))) {
+    if (!(dir = getcwd(nullptr, 0))) {
 
         LOG_ERROR(Common_Filesystem, "GetCurrentDirectory failed: %s",
                 GetLastErrorMsg());
@@ -603,7 +613,7 @@ std::string GetCurrentDir()
 // Sets the current directory to the given directory
 bool SetCurrentDir(const std::string &directory)
 {
-    return __chdir(directory.c_str()) == 0;
+    return chdir(directory.c_str()) == 0;
 }
 
 #if defined(__APPLE__)

+ 1 - 1
src/common/file_util.h

@@ -11,7 +11,7 @@
 #include <string>
 #include <vector>
 
-#include "common/common.h"
+#include "common/common_types.h"
 #include "common/string_util.h"
 
 // User directory indices for GetUserPath

+ 3 - 0
src/common/hash.cpp

@@ -4,7 +4,10 @@
 
 #include <algorithm>
 
+#include "common/common_funcs.h" // For rotl
 #include "common/hash.h"
+#include "common/platform.h"
+
 #if _M_SSE >= 0x402
 #include "common/cpu_detect.h"
 #include <nmmintrin.h>

+ 1 - 1
src/common/hash.h

@@ -4,7 +4,7 @@
 
 #pragma once
 
-#include "common/common.h"
+#include "common/common_types.h"
 
 u32 HashFletcher(const u8* data_u8, size_t length);  // FAST. Length & 1 == 0.
 u32 HashAdler32(const u8* data, size_t len);         // Fairly accurate, slightly slower

+ 1 - 1
src/common/linear_disk_cache.h

@@ -4,7 +4,7 @@
 
 #pragma once
 
-#include "common/common.h"
+#include "common/common_types.h"
 #include <fstream>
 
 // defined in Version.cpp

+ 1 - 0
src/common/logging/text_formatter.cpp

@@ -14,6 +14,7 @@
 #include "common/logging/log.h"
 #include "common/logging/text_formatter.h"
 
+#include "common/common_funcs.h"
 #include "common/string_util.h"
 
 namespace Log {

+ 3 - 3
src/common/math_util.cpp

@@ -2,12 +2,12 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include <cstring>
+#include <numeric> // Necessary on OS X, but not Linux
 
-#include "common/common.h"
+#include "common/common_types.h"
 #include "common/math_util.h"
 
-#include <numeric> // Necessary on OS X, but not Linux
-
 namespace MathUtil
 {
 

+ 1 - 1
src/common/math_util.h

@@ -4,7 +4,7 @@
 
 #pragma once
 
-#include "common/common.h"
+#include "common/common_types.h"
 
 #include <algorithm>
 #include <type_traits>

+ 5 - 1
src/common/mem_arena.cpp

@@ -17,12 +17,16 @@
 
 #include <string>
 
-#include "common/memory_util.h"
+#include "common/logging/log.h"
 #include "common/mem_arena.h"
+#include "common/memory_util.h"
 #include "common/string_util.h"
 
 #ifndef _WIN32
 #include <fcntl.h>
+#include <string.h>
+#include <unistd.h>
+
 #ifdef ANDROID
 #include <sys/ioctl.h>
 #include <linux/ashmem.h>

+ 1 - 1
src/common/mem_arena.h

@@ -21,7 +21,7 @@
 #include <windows.h>
 #endif
 
-#include "common/common.h"
+#include "common/common_types.h"
 
 // This class lets you create a block of anonymous RAM, and then arbitrarily map views into it.
 // Multiple views can mirror the same section of the block, which makes it very convient for emulating

+ 2 - 1
src/common/memory_util.cpp

@@ -3,7 +3,8 @@
 // Refer to the license.txt file included.
 
 
-#include "common/common.h"
+#include "common/common_funcs.h"
+#include "common/logging/log.h"
 #include "common/memory_util.h"
 #include "common/string_util.h"
 

+ 3 - 1
src/common/misc.cpp

@@ -2,10 +2,12 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-#include "common/common.h"
+#include "common/common_funcs.h"
 
 #ifdef _WIN32
 #include <windows.h>
+#else
+#include <string.h>
 #endif
 
 // Neither Android nor OS X support TLS

+ 18 - 39
src/common/platform.h

@@ -64,47 +64,26 @@
 #endif
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
-// Compiler-Specific Definitions
-
-#if EMU_PLATFORM == PLATFORM_WINDOWS
-
-#include <time.h>
-
-#ifndef NOMINMAX
-#define NOMINMAX
+// Feature detection
+
+#if defined _M_GENERIC
+#  define _M_SSE 0x0
+#elif defined __GNUC__
+# if defined __SSE4_2__
+#  define _M_SSE 0x402
+# elif defined __SSE4_1__
+#  define _M_SSE 0x401
+# elif defined __SSSE3__
+#  define _M_SSE 0x301
+# elif defined __SSE3__
+#  define _M_SSE 0x300
+# endif
+#elif (_MSC_VER >= 1500) || __INTEL_COMPILER // Visual Studio 2008
+#  define _M_SSE 0x402
 #endif
-#define EMU_FASTCALL __fastcall
-
-#ifdef _MSC_VER
-inline struct tm* localtime_r(const time_t *clock, struct tm *result) {
-    if (localtime_s(result, clock) == 0)
-        return result;
-    return nullptr;
-}
-#endif
-
-#else // EMU_PLATFORM != PLATFORM_WINDOWS
-
-#define EMU_FASTCALL __attribute__((fastcall))
-#define __stdcall
-#define __cdecl
 
-#define BOOL bool
-#define DWORD u32
-
-// TODO: Hacks..
-#include <limits.h>
-
-#include <strings.h>
-#define stricmp(str1, str2) strcasecmp(str1, str2)
-#define _stricmp(str1, str2) strcasecmp(str1, str2)
-#define _snprintf snprintf
-#define _getcwd getcwd
-#define _tzset tzset
-
-typedef void EXCEPTION_POINTERS;
-
-#endif
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// Compiler-Specific Definitions
 
 #define GCC_VERSION_AVAILABLE(major, minor) (defined(__GNUC__) &&  (__GNUC__ > (major) || \
     (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor))))

+ 0 - 1
src/common/profiler.cpp

@@ -7,7 +7,6 @@
 #include "common/assert.h"
 
 #if defined(_MSC_VER) && _MSC_VER <= 1800 // MSVC 2013.
-#define NOMINMAX
 #define WIN32_LEAN_AND_MEAN
 #include <Windows.h> // For QueryPerformanceCounter/Frequency
 #endif

+ 3 - 1
src/common/string_util.cpp

@@ -4,7 +4,9 @@
 
 #include <boost/range/algorithm.hpp>
 
-#include "common/common.h"
+#include "common/common_funcs.h"
+#include "common/common_paths.h"
+#include "common/logging/log.h"
 #include "common/string_util.h"
 
 #ifdef _MSC_VER

+ 1 - 1
src/common/string_util.h

@@ -10,7 +10,7 @@
 #include <sstream>
 #include <vector>
 
-#include "common/common.h"
+#include "common/common_types.h"
 
 namespace Common {
 

+ 3 - 1
src/common/symbols.h

@@ -5,8 +5,10 @@
 #pragma once
 
 #include <map>
+#include <string>
+#include <utility>
 
-#include "common/common.h"
+#include "common/common_types.h"
 
 struct TSymbol
 {

+ 0 - 1
src/common/thread.h

@@ -4,7 +4,6 @@
 
 #pragma once
 
-// Don't include common.h here as it will break LogManager
 #include "common/common_types.h"
 #include <cstdio>
 #include <cstring>

+ 0 - 2
src/common/thread_queue_list.h

@@ -9,8 +9,6 @@
 
 #include <boost/range/algorithm_ext/erase.hpp>
 
-#include "common/common.h"
-
 namespace Common {
 
 template<class T, unsigned int N>

+ 1 - 1
src/common/thunk.h

@@ -6,7 +6,7 @@
 
 #include <map>
 
-#include "common/common.h"
+#include "common/common_types.h"
 
 // This simple class creates a wrapper around a C/C++ function that saves all fp state
 // before entering it, and restores it upon exit. This is required to be able to selectively

+ 2 - 2
src/common/timer.cpp

@@ -12,9 +12,9 @@
 #include <sys/time.h>
 #endif
 
-#include "common/common.h"
-#include "common/timer.h"
+#include "common/common_types.h"
 #include "common/string_util.h"
+#include "common/timer.h"
 
 namespace Common
 {

+ 1 - 1
src/common/timer.h

@@ -4,7 +4,7 @@
 
 #pragma once
 
-#include "common/common.h"
+#include "common/common_types.h"
 #include <string>
 
 namespace Common

+ 1 - 0
src/core/CMakeLists.txt

@@ -12,6 +12,7 @@ set(SRCS
             arm/skyeye_common/vfp/vfpdouble.cpp
             arm/skyeye_common/vfp/vfpinstr.cpp
             arm/skyeye_common/vfp/vfpsingle.cpp
+            file_sys/archive_backend.cpp
             file_sys/archive_extsavedata.cpp
             file_sys/archive_romfs.cpp
             file_sys/archive_savedata.cpp

+ 0 - 1
src/core/arm/arm_interface.h

@@ -4,7 +4,6 @@
 
 #pragma once
 
-#include "common/common.h"
 #include "common/common_types.h"
 #include "core/arm/skyeye_common/arm_regformat.h"
 

+ 2 - 0
src/core/arm/dyncom/arm_dyncom.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include <cstring>
+
 #include "common/make_unique.h"
 
 #include "core/arm/skyeye_common/armemu.h"

+ 2 - 0
src/core/arm/interpreter/armsupp.cpp

@@ -15,6 +15,8 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 
+#include "common/logging/log.h"
+
 #include "core/mem_map.h"
 #include "core/arm/skyeye_common/armdefs.h"
 #include "core/arm/skyeye_common/arm_regformat.h"

+ 2 - 0
src/core/arm/skyeye_common/armmmu.h

@@ -20,6 +20,8 @@
 
 #pragma once
 
+#include "common/swap.h"
+
 #include "core/mem_map.h"
 #include "core/arm/skyeye_common/armdefs.h"
 

+ 0 - 1
src/core/arm/skyeye_common/vfp/vfp.cpp

@@ -20,7 +20,6 @@
 
 /* Note: this file handles interface with arm core and vfp registers */
 
-#include "common/common.h"
 #include "common/logging/log.h"
 
 #include "core/arm/skyeye_common/armdefs.h"

+ 1 - 0
src/core/core.cpp

@@ -3,6 +3,7 @@
 // Refer to the license.txt file included.
 
 #include "common/common_types.h"
+#include "common/logging/log.h"
 
 #include "core/core.h"
 #include "core/core_timing.h"

+ 1 - 1
src/core/core_timing.h

@@ -21,7 +21,7 @@
 
 #include <functional>
 
-#include "common/common.h"
+#include "common/common_types.h"
 
 extern int g_clock_rate_arm11;
 

+ 127 - 0
src/core/file_sys/archive_backend.cpp

@@ -0,0 +1,127 @@
+// Copyright 2015 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <sstream>
+
+#include "common/logging/log.h"
+#include "common/string_util.h"
+
+#include "core/file_sys/archive_backend.h"
+#include "core/mem_map.h"
+
+
+namespace FileSys {
+
+Path::Path(LowPathType type, u32 size, u32 pointer) : type(type) {
+    switch (type) {
+    case Binary:
+    {
+        u8* data = Memory::GetPointer(pointer);
+        binary = std::vector<u8>(data, data + size);
+        break;
+    }
+
+    case Char:
+    {
+        const char* data = reinterpret_cast<const char*>(Memory::GetPointer(pointer));
+        string = std::string(data, size - 1); // Data is always null-terminated.
+        break;
+    }
+
+    case Wchar:
+    {
+        const char16_t* data = reinterpret_cast<const char16_t*>(Memory::GetPointer(pointer));
+        u16str = std::u16string(data, size/2 - 1); // Data is always null-terminated.
+        break;
+    }
+
+    default:
+        break;
+    }
+}
+
+const std::string Path::DebugStr() const {
+    switch (GetType()) {
+    case Invalid:
+    default:
+        return "[Invalid]";
+    case Empty:
+        return "[Empty]";
+    case Binary:
+    {
+        std::stringstream res;
+        res << "[Binary: ";
+        for (unsigned byte : binary)
+            res << std::hex << std::setw(2) << std::setfill('0') << byte;
+        res << ']';
+        return res.str();
+    }
+    case Char:
+        return "[Char: " + AsString() + ']';
+    case Wchar:
+        return "[Wchar: " + AsString() + ']';
+    }
+}
+
+const std::string Path::AsString() const {
+    switch (GetType()) {
+    case Char:
+        return string;
+    case Wchar:
+        return Common::UTF16ToUTF8(u16str);
+    case Empty:
+        return{};
+    case Invalid:
+    case Binary:
+    default:
+        // TODO(yuriks): Add assert
+        LOG_ERROR(Service_FS, "LowPathType cannot be converted to string!");
+        return{};
+    }
+}
+
+const std::u16string Path::AsU16Str() const {
+    switch (GetType()) {
+    case Char:
+        return Common::UTF8ToUTF16(string);
+    case Wchar:
+        return u16str;
+    case Empty:
+        return{};
+    case Invalid:
+    case Binary:
+        // TODO(yuriks): Add assert
+        LOG_ERROR(Service_FS, "LowPathType cannot be converted to u16string!");
+        return{};
+    }
+}
+
+const std::vector<u8> Path::AsBinary() const {
+    switch (GetType()) {
+    case Binary:
+        return binary;
+    case Char:
+        return std::vector<u8>(string.begin(), string.end());
+    case Wchar:
+    {
+        // use two u8 for each character of u16str
+        std::vector<u8> to_return(u16str.size() * 2);
+        for (size_t i = 0; i < u16str.size(); ++i) {
+            u16 tmp_char = u16str.at(i);
+            to_return[i*2] = (tmp_char & 0xFF00) >> 8;
+            to_return[i*2 + 1] = (tmp_char & 0x00FF);
+        }
+        return to_return;
+    }
+    case Empty:
+        return{};
+    case Invalid:
+    default:
+        // TODO(yuriks): Add assert
+        LOG_ERROR(Service_FS, "LowPathType cannot be converted to binary!");
+        return{};
+    }
+}
+
+}

+ 17 - 130
src/core/file_sys/archive_backend.h

@@ -5,22 +5,21 @@
 #pragma once
 
 #include <memory>
+#include <string>
+#include <utility>
+#include <vector>
 
-#include "common/common_types.h"
-#include "common/string_util.h"
 #include "common/bit_field.h"
+#include "common/common_types.h"
 
-#include "core/file_sys/file_backend.h"
-#include "core/file_sys/directory_backend.h"
-
-#include "core/mem_map.h"
-#include "core/hle/kernel/kernel.h"
+#include "core/hle/result.h"
 
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// FileSys namespace
 
 namespace FileSys {
 
+class FileBackend;
+class DirectoryBackend;
+
 // Path string type
 enum LowPathType : u32 {
     Invalid = 0,
@@ -39,134 +38,22 @@ union Mode {
 
 class Path {
 public:
+    Path() : type(Invalid) {}
+    Path(const char* path) : type(Char), string(path) {}
+    Path(std::vector<u8> binary_data) : type(Binary), binary(std::move(binary_data)) {}
+    Path(LowPathType type, u32 size, u32 pointer);
 
-    Path() : type(Invalid) {
-    }
-
-    Path(const char* path) : type(Char), string(path) {
-    }
-
-    Path(std::vector<u8> binary_data) : type(Binary), binary(std::move(binary_data)) {
-    }
-
-    Path(LowPathType type, u32 size, u32 pointer) : type(type) {
-        switch (type) {
-        case Binary:
-        {
-            u8* data = Memory::GetPointer(pointer);
-            binary = std::vector<u8>(data, data + size);
-            break;
-        }
-
-        case Char:
-        {
-            const char* data = reinterpret_cast<const char*>(Memory::GetPointer(pointer));
-            string = std::string(data, size - 1); // Data is always null-terminated.
-            break;
-        }
-
-        case Wchar:
-        {
-            const char16_t* data = reinterpret_cast<const char16_t*>(Memory::GetPointer(pointer));
-            u16str = std::u16string(data, size/2 - 1); // Data is always null-terminated.
-            break;
-        }
-
-        default:
-            break;
-        }
-    }
-
-    LowPathType GetType() const {
-        return type;
-    }
+    LowPathType GetType() const { return type; }
 
     /**
      * Gets the string representation of the path for debugging
      * @return String representation of the path for debugging
      */
-    const std::string DebugStr() const {
-        switch (GetType()) {
-        case Invalid:
-        default:
-            return "[Invalid]";
-        case Empty:
-            return "[Empty]";
-        case Binary:
-        {
-            std::stringstream res;
-            res << "[Binary: ";
-            for (unsigned byte : binary)
-                res << std::hex << std::setw(2) << std::setfill('0') << byte;
-            res << ']';
-            return res.str();
-        }
-        case Char:
-            return "[Char: " + AsString() + ']';
-        case Wchar:
-            return "[Wchar: " + AsString() + ']';
-        }
-    }
+    const std::string DebugStr() const;
 
-    const std::string AsString() const {
-        switch (GetType()) {
-        case Char:
-            return string;
-        case Wchar:
-            return Common::UTF16ToUTF8(u16str);
-        case Empty:
-            return {};
-        case Invalid:
-        case Binary:
-        default:
-            // TODO(yuriks): Add assert
-            LOG_ERROR(Service_FS, "LowPathType cannot be converted to string!");
-            return {};
-        }
-    }
-
-    const std::u16string AsU16Str() const {
-        switch (GetType()) {
-        case Char:
-            return Common::UTF8ToUTF16(string);
-        case Wchar:
-            return u16str;
-        case Empty:
-            return {};
-        case Invalid:
-        case Binary:
-            // TODO(yuriks): Add assert
-            LOG_ERROR(Service_FS, "LowPathType cannot be converted to u16string!");
-            return {};
-        }
-    }
-
-    const std::vector<u8> AsBinary() const {
-        switch (GetType()) {
-        case Binary:
-            return binary;
-        case Char:
-            return std::vector<u8>(string.begin(), string.end());
-        case Wchar:
-        {
-            // use two u8 for each character of u16str
-            std::vector<u8> to_return(u16str.size() * 2);
-            for (size_t i = 0; i < u16str.size(); ++i) {
-                u16 tmp_char = u16str.at(i);
-                to_return[i*2] = (tmp_char & 0xFF00) >> 8;
-                to_return[i*2 + 1] = (tmp_char & 0x00FF);
-            }
-            return to_return;
-        }
-        case Empty:
-            return {};
-        case Invalid:
-        default:
-            // TODO(yuriks): Add assert
-            LOG_ERROR(Service_FS, "LowPathType cannot be converted to binary!");
-            return {};
-        }
-    }
+    const std::string AsString() const;
+    const std::u16string AsU16Str() const;
+    const std::vector<u8> AsBinary() const;
 
 private:
     LowPathType type;

+ 1 - 0
src/core/file_sys/archive_extsavedata.cpp

@@ -6,6 +6,7 @@
 
 #include "common/common_types.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/make_unique.h"
 
 #include "core/file_sys/archive_extsavedata.h"

+ 1 - 0
src/core/file_sys/archive_romfs.cpp

@@ -6,6 +6,7 @@
 
 #include "common/common_types.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/make_unique.h"
 
 #include "core/file_sys/archive_romfs.h"

+ 1 - 0
src/core/file_sys/archive_savedata.cpp

@@ -6,6 +6,7 @@
 
 #include "common/common_types.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/make_unique.h"
 
 #include "core/file_sys/archive_savedata.h"

+ 1 - 0
src/core/file_sys/archive_savedatacheck.cpp

@@ -3,6 +3,7 @@
 // Refer to the license.txt file included.
 
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/make_unique.h"
 
 #include "core/file_sys/archive_savedatacheck.h"

+ 1 - 0
src/core/file_sys/archive_sdmc.cpp

@@ -6,6 +6,7 @@
 
 #include "common/common_types.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/make_unique.h"
 
 #include "core/file_sys/archive_sdmc.h"

+ 1 - 2
src/core/file_sys/directory_backend.h

@@ -4,12 +4,11 @@
 
 #pragma once
 
+#include <array>
 #include <cstddef>
 
 #include "common/common_types.h"
 
-#include "core/hle/kernel/kernel.h"
-
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // FileSys namespace
 

+ 1 - 0
src/core/file_sys/disk_archive.cpp

@@ -6,6 +6,7 @@
 
 #include "common/common_types.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/make_unique.h"
 
 #include "core/file_sys/disk_archive.h"

+ 2 - 0
src/core/file_sys/disk_archive.h

@@ -8,6 +8,8 @@
 #include "common/file_util.h"
 
 #include "core/file_sys/archive_backend.h"
+#include "core/file_sys/directory_backend.h"
+#include "core/file_sys/file_backend.h"
 #include "core/loader/loader.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////

+ 0 - 2
src/core/file_sys/file_backend.h

@@ -6,8 +6,6 @@
 
 #include "common/common_types.h"
 
-#include "core/hle/kernel/kernel.h"
-
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // FileSys namespace
 

+ 1 - 0
src/core/file_sys/ivfc_archive.cpp

@@ -6,6 +6,7 @@
 
 #include "common/common_types.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/make_unique.h"
 
 #include "core/file_sys/ivfc_archive.h"

+ 2 - 0
src/core/file_sys/ivfc_archive.h

@@ -10,6 +10,8 @@
 #include "common/common_types.h"
 
 #include "core/file_sys/archive_backend.h"
+#include "core/file_sys/directory_backend.h"
+#include "core/file_sys/file_backend.h"
 #include "core/loader/loader.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////

+ 4 - 1
src/core/hle/config_mem.cpp

@@ -2,6 +2,9 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include <cstring>
+
+#include "common/assert.h"
 #include "common/common_types.h"
 #include "common/common_funcs.h"
 
@@ -61,7 +64,7 @@ template void Read<u16>(u16 &var, const u32 addr);
 template void Read<u8>(u8 &var, const u32 addr);
 
 void Init() {
-    memset(&config_mem, 0, sizeof(config_mem));
+    std::memset(&config_mem, 0, sizeof(config_mem));
 
     config_mem.update_flag = 0; // No update
     config_mem.sys_core_ver = 0x2;

+ 7 - 0
src/core/hle/hle.h

@@ -4,6 +4,13 @@
 
 #pragma once
 
+#include "common/common_types.h"
+
+typedef u32 Handle;
+typedef s32 Result;
+
+const Handle INVALID_HANDLE = 0;
+
 namespace HLE {
 
 extern bool g_reschedule;   ///< If true, immediately reschedules the CPU to a new thread

+ 1 - 0
src/core/hle/kernel/address_arbiter.cpp

@@ -3,6 +3,7 @@
 // Refer to the license.txt file included.
 
 #include "common/common_types.h"
+#include "common/logging/log.h"
 
 #include "core/mem_map.h"
 

+ 1 - 1
src/core/hle/kernel/event.cpp

@@ -6,7 +6,7 @@
 #include <algorithm>
 #include <vector>
 
-#include "common/common.h"
+#include "common/assert.h"
 
 #include "core/hle/kernel/kernel.h"
 #include "core/hle/kernel/event.h"

+ 2 - 1
src/core/hle/kernel/kernel.cpp

@@ -4,7 +4,8 @@
 
 #include <algorithm>
 
-#include "common/common.h"
+#include "common/assert.h"
+#include "common/logging/log.h"
 
 #include "core/arm/arm_interface.h"
 #include "core/core.h"

+ 3 - 11
src/core/hle/kernel/kernel.h

@@ -10,18 +10,10 @@
 #include <string>
 #include <vector>
 
-#include "common/common.h"
-#include "core/hle/result.h"
-
-typedef u32 Handle;
-typedef s32 Result;
+#include "common/common_types.h"
 
-// TODO: It would be nice to eventually replace these with strong types that prevent accidental
-// conversion between each other.
-typedef u32 VAddr; ///< Represents a pointer in the userspace virtual address space.
-typedef u32 PAddr; ///< Represents a pointer in the ARM11 physical address space.
-
-const Handle INVALID_HANDLE = 0;
+#include "core/hle/hle.h"
+#include "core/hle/result.h"
 
 namespace Kernel {
 

+ 1 - 1
src/core/hle/kernel/mutex.cpp

@@ -7,7 +7,7 @@
 
 #include <boost/range/algorithm_ext/erase.hpp>
 
-#include "common/common.h"
+#include "common/assert.h"
 
 #include "core/hle/kernel/kernel.h"
 #include "core/hle/kernel/mutex.h"

+ 1 - 1
src/core/hle/kernel/semaphore.cpp

@@ -2,7 +2,7 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-#include "common/common.h"
+#include "common/assert.h"
 
 #include "core/hle/kernel/kernel.h"
 #include "core/hle/kernel/semaphore.h"

+ 1 - 1
src/core/hle/kernel/shared_memory.cpp

@@ -2,7 +2,7 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-#include "common/common.h"
+#include "common/logging/log.h"
 
 #include "core/mem_map.h"
 #include "core/hle/kernel/shared_memory.h"

+ 3 - 1
src/core/hle/kernel/thread.cpp

@@ -6,7 +6,9 @@
 #include <list>
 #include <vector>
 
-#include "common/common.h"
+#include "common/assert.h"
+#include "common/common_types.h"
+#include "common/logging/log.h"
 #include "common/math_util.h"
 #include "common/thread_queue_list.h"
 

+ 2 - 1
src/core/hle/kernel/timer.cpp

@@ -2,7 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-#include "common/common.h"
+#include "common/assert.h"
+#include "common/logging/log.h"
 
 #include "core/core_timing.h"
 #include "core/hle/kernel/kernel.h"

+ 1 - 0
src/core/hle/result.h

@@ -8,6 +8,7 @@
 #include <type_traits>
 #include <utility>
 
+#include "common/assert.h"
 #include "common/bit_field.h"
 #include "common/common_funcs.h"
 #include "common/common_types.h"

+ 2 - 0
src/core/hle/service/am_sys.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
+
 #include "core/hle/hle.h"
 #include "core/hle/service/am_sys.h"
 

+ 2 - 0
src/core/hle/service/apt/apt.cpp

@@ -2,7 +2,9 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/common_paths.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 
 #include "core/hle/service/service.h"
 #include "core/hle/service/apt/apt.h"

+ 0 - 3
src/core/hle/service/apt/apt_s.cpp

@@ -3,9 +3,6 @@
 // Refer to the license.txt file included.
 
 
-#include "common/common.h"
-#include "common/file_util.h"
-
 #include "core/hle/hle.h"
 #include "core/hle/service/apt/apt.h"
 #include "core/hle/service/apt/apt_s.h"

+ 0 - 1
src/core/hle/service/apt/apt_u.cpp

@@ -3,7 +3,6 @@
 // Refer to the license.txt file included.
 
 
-#include "common/common.h"
 #include "common/file_util.h"
 
 #include "core/hle/service/apt/apt.h"

+ 6 - 2
src/core/hle/service/cfg/cfg.cpp

@@ -4,12 +4,16 @@
 
 #include <algorithm>
 
-#include "core/hle/service/fs/archive.h"
-#include "core/hle/service/service.h"
+#include "common/logging/log.h"
+#include "common/string_util.h"
+
+#include "core/file_sys/file_backend.h"
 #include "core/hle/service/cfg/cfg.h"
 #include "core/hle/service/cfg/cfg_i.h"
 #include "core/hle/service/cfg/cfg_s.h"
 #include "core/hle/service/cfg/cfg_u.h"
+#include "core/hle/service/fs/archive.h"
+#include "core/hle/service/service.h"
 
 namespace Service {
 namespace CFG {

+ 2 - 0
src/core/hle/service/cfg/cfg_u.cpp

@@ -3,7 +3,9 @@
 // Refer to the license.txt file included.
 
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/string_util.h"
+
 #include "core/settings.h"
 #include "core/file_sys/archive_systemsavedata.h"
 #include "core/hle/hle.h"

+ 2 - 0
src/core/hle/service/dsp_dsp.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
+
 #include "core/hle/hle.h"
 #include "core/hle/kernel/event.h"
 #include "core/hle/service/dsp_dsp.h"

+ 2 - 0
src/core/hle/service/err_f.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
+
 #include "core/hle/hle.h"
 #include "core/hle/service/err_f.h"
 

+ 11 - 0
src/core/hle/service/fs/archive.cpp

@@ -9,6 +9,7 @@
 
 #include "common/common_types.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/make_unique.h"
 #include "common/math_util.h"
 
@@ -78,6 +79,11 @@ enum class DirectoryCommand : u32 {
     Close           = 0x08020000,
 };
 
+File::File(std::unique_ptr<FileSys::FileBackend>&& backend, const FileSys::Path & path)
+    : path(path), priority(0), backend(std::move(backend)) {}
+
+File::~File() {}
+
 ResultVal<bool> File::SyncRequest() {
     u32* cmd_buff = Kernel::GetCommandBuffer();
     FileCommand cmd = static_cast<FileCommand>(cmd_buff[0]);
@@ -172,6 +178,11 @@ ResultVal<bool> File::SyncRequest() {
     return MakeResult<bool>(false);
 }
 
+Directory::Directory(std::unique_ptr<FileSys::DirectoryBackend>&& backend, const FileSys::Path & path)
+    : path(path), backend(std::move(backend)) {}
+
+Directory::~Directory() {}
+
 ResultVal<bool> Directory::SyncRequest() {
     u32* cmd_buff = Kernel::GetCommandBuffer();
     DirectoryCommand cmd = static_cast<DirectoryCommand>(cmd_buff[0]);

+ 6 - 10
src/core/hle/service/fs/archive.h

@@ -45,31 +45,27 @@ typedef u64 ArchiveHandle;
 
 class File : public Kernel::Session {
 public:
-    File(std::unique_ptr<FileSys::FileBackend>&& backend, const FileSys::Path& path)
-        : path(path), priority(0), backend(std::move(backend)) {
-    }
+    File(std::unique_ptr<FileSys::FileBackend>&& backend, const FileSys::Path& path);
+    ~File();
 
     std::string GetName() const override { return "Path: " + path.DebugStr(); }
+    ResultVal<bool> SyncRequest() override;
 
     FileSys::Path path; ///< Path of the file
     u32 priority; ///< Priority of the file. TODO(Subv): Find out what this means
     std::unique_ptr<FileSys::FileBackend> backend; ///< File backend interface
-
-    ResultVal<bool> SyncRequest() override;
 };
 
 class Directory : public Kernel::Session {
 public:
-    Directory(std::unique_ptr<FileSys::DirectoryBackend>&& backend, const FileSys::Path& path)
-        : path(path), backend(std::move(backend)) {
-    }
+    Directory(std::unique_ptr<FileSys::DirectoryBackend>&& backend, const FileSys::Path& path);
+    ~Directory();
 
     std::string GetName() const override { return "Directory: " + path.DebugStr(); }
+    ResultVal<bool> SyncRequest() override;
 
     FileSys::Path path; ///< Path of the directory
     std::unique_ptr<FileSys::DirectoryBackend> backend; ///< File backend interface
-
-    ResultVal<bool> SyncRequest() override;
 };
 
 /**

+ 4 - 1
src/core/hle/service/fs/fs_user.cpp

@@ -2,10 +2,13 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-#include "common/common.h"
+#include "common/assert.h"
+#include "common/common_types.h"
 #include "common/file_util.h"
+#include "common/logging/log.h"
 #include "common/scope_exit.h"
 #include "common/string_util.h"
+
 #include "core/hle/result.h"
 #include "core/hle/service/fs/archive.h"
 #include "core/hle/service/fs/fs_user.h"

+ 2 - 0
src/core/hle/service/hid/hid.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
+
 #include "core/hle/service/service.h"
 #include "core/hle/service/hid/hid.h"
 #include "core/hle/service/hid/hid_spvr.h"

+ 2 - 0
src/core/hle/service/ldr_ro.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
+
 #include "core/hle/hle.h"
 #include "core/hle/service/ldr_ro.h"
 

+ 2 - 0
src/core/hle/service/nim_u.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
+
 #include "core/hle/hle.h"
 #include "core/hle/service/nim_u.h"
 

+ 0 - 2
src/core/hle/service/ns_s.cpp

@@ -3,8 +3,6 @@
 // Refer to the license.txt file included.
 
 
-#include "common/common.h"
-
 #include "core/hle/hle.h"
 #include "core/hle/service/ns_s.h"
 

+ 2 - 0
src/core/hle/service/nwm_uds.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
+
 #include "core/hle/hle.h"
 #include "core/hle/kernel/event.h"
 #include "core/hle/service/nwm_uds.h"

+ 2 - 1
src/core/hle/service/ptm/ptm.cpp

@@ -2,12 +2,13 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-#include "core/hle/service/service.h"
+#include "core/file_sys/file_backend.h"
 #include "core/hle/service/fs/archive.h"
 #include "core/hle/service/ptm/ptm.h"
 #include "core/hle/service/ptm/ptm_play.h"
 #include "core/hle/service/ptm/ptm_sysm.h"
 #include "core/hle/service/ptm/ptm_u.h"
+#include "core/hle/service/service.h"
 
 namespace Service {
 namespace PTM {

+ 1 - 1
src/core/hle/service/ptm/ptm_u.cpp

@@ -2,7 +2,7 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-#include "common/make_unique.h"
+#include "common/logging/log.h"
 
 #include "core/hle/hle.h"
 #include "core/hle/service/ptm/ptm.h"

+ 1 - 1
src/core/hle/service/service.cpp

@@ -2,7 +2,7 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
-#include "common/common.h"
+#include "common/logging/log.h"
 #include "common/string_util.h"
 
 #include "core/hle/service/service.h"

+ 1 - 1
src/core/hle/service/service.h

@@ -9,7 +9,7 @@
 
 #include <boost/container/flat_map.hpp>
 
-#include "common/common.h"
+#include "common/common_types.h"
 
 #include "core/hle/kernel/kernel.h"
 #include "core/hle/kernel/session.h"

+ 1 - 0
src/core/hle/service/soc_u.cpp

@@ -2,6 +2,7 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
 #include "common/platform.h"
 
 #if EMU_PLATFORM == PLATFORM_WINDOWS

+ 2 - 0
src/core/hle/service/srv.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include "common/logging/log.h"
+
 #include "core/hle/hle.h"
 #include "core/hle/service/srv.h"
 #include "core/hle/kernel/event.h"

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است