summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt7
-rw-r--r--src/citra/citra.cpp4
-rw-r--r--src/citra/config.cpp3
-rw-r--r--src/citra/emu_window/emu_window_glfw.cpp2
-rw-r--r--src/citra_qt/bootmanager.cpp1
-rw-r--r--src/citra_qt/bootmanager.h1
-rw-r--r--src/citra_qt/debugger/disassembler.cpp1
-rw-r--r--src/citra_qt/debugger/disassembler.h2
-rw-r--r--src/citra_qt/debugger/graphics_breakpoints.cpp2
-rw-r--r--src/citra_qt/debugger/ramview.cpp3
-rw-r--r--src/citra_qt/main.cpp3
-rw-r--r--src/common/CMakeLists.txt1
-rw-r--r--src/common/assert.h1
-rw-r--r--src/common/bit_field.h2
-rw-r--r--src/common/break_points.cpp1
-rw-r--r--src/common/break_points.h2
-rw-r--r--src/common/chunk_file.h3
-rw-r--r--src/common/common.h120
-rw-r--r--src/common/common_funcs.h82
-rw-r--r--src/common/common_paths.h3
-rw-r--r--src/common/common_types.h15
-rw-r--r--src/common/concurrent_ring_buffer.h2
-rw-r--r--src/common/emu_window.h6
-rw-r--r--src/common/file_util.cpp54
-rw-r--r--src/common/file_util.h2
-rw-r--r--src/common/hash.cpp3
-rw-r--r--src/common/hash.h2
-rw-r--r--src/common/linear_disk_cache.h2
-rw-r--r--src/common/logging/text_formatter.cpp1
-rw-r--r--src/common/math_util.cpp6
-rw-r--r--src/common/math_util.h2
-rw-r--r--src/common/mem_arena.cpp6
-rw-r--r--src/common/mem_arena.h2
-rw-r--r--src/common/memory_util.cpp3
-rw-r--r--src/common/misc.cpp4
-rw-r--r--src/common/platform.h57
-rw-r--r--src/common/profiler.cpp1
-rw-r--r--src/common/string_util.cpp4
-rw-r--r--src/common/string_util.h2
-rw-r--r--src/common/symbols.h4
-rw-r--r--src/common/thread.h1
-rw-r--r--src/common/thread_queue_list.h2
-rw-r--r--src/common/thunk.h2
-rw-r--r--src/common/timer.cpp4
-rw-r--r--src/common/timer.h2
-rw-r--r--src/core/CMakeLists.txt1
-rw-r--r--src/core/arm/arm_interface.h1
-rw-r--r--src/core/arm/dyncom/arm_dyncom.cpp2
-rw-r--r--src/core/arm/interpreter/armsupp.cpp2
-rw-r--r--src/core/arm/skyeye_common/armmmu.h2
-rw-r--r--src/core/arm/skyeye_common/vfp/vfp.cpp1
-rw-r--r--src/core/core.cpp1
-rw-r--r--src/core/core_timing.h2
-rw-r--r--src/core/file_sys/archive_backend.cpp127
-rw-r--r--src/core/file_sys/archive_backend.h147
-rw-r--r--src/core/file_sys/archive_extsavedata.cpp1
-rw-r--r--src/core/file_sys/archive_romfs.cpp1
-rw-r--r--src/core/file_sys/archive_savedata.cpp1
-rw-r--r--src/core/file_sys/archive_savedatacheck.cpp1
-rw-r--r--src/core/file_sys/archive_sdmc.cpp1
-rw-r--r--src/core/file_sys/directory_backend.h3
-rw-r--r--src/core/file_sys/disk_archive.cpp1
-rw-r--r--src/core/file_sys/disk_archive.h2
-rw-r--r--src/core/file_sys/file_backend.h2
-rw-r--r--src/core/file_sys/ivfc_archive.cpp1
-rw-r--r--src/core/file_sys/ivfc_archive.h2
-rw-r--r--src/core/hle/config_mem.cpp5
-rw-r--r--src/core/hle/hle.h7
-rw-r--r--src/core/hle/kernel/address_arbiter.cpp1
-rw-r--r--src/core/hle/kernel/event.cpp2
-rw-r--r--src/core/hle/kernel/kernel.cpp3
-rw-r--r--src/core/hle/kernel/kernel.h14
-rw-r--r--src/core/hle/kernel/mutex.cpp2
-rw-r--r--src/core/hle/kernel/semaphore.cpp2
-rw-r--r--src/core/hle/kernel/shared_memory.cpp2
-rw-r--r--src/core/hle/kernel/thread.cpp4
-rw-r--r--src/core/hle/kernel/timer.cpp3
-rw-r--r--src/core/hle/result.h1
-rw-r--r--src/core/hle/service/am_sys.cpp2
-rw-r--r--src/core/hle/service/apt/apt.cpp2
-rw-r--r--src/core/hle/service/apt/apt_s.cpp3
-rw-r--r--src/core/hle/service/apt/apt_u.cpp1
-rw-r--r--src/core/hle/service/cfg/cfg.cpp8
-rw-r--r--src/core/hle/service/cfg/cfg_u.cpp2
-rw-r--r--src/core/hle/service/dsp_dsp.cpp2
-rw-r--r--src/core/hle/service/err_f.cpp2
-rw-r--r--src/core/hle/service/fs/archive.cpp11
-rw-r--r--src/core/hle/service/fs/archive.h16
-rw-r--r--src/core/hle/service/fs/fs_user.cpp5
-rw-r--r--src/core/hle/service/hid/hid.cpp2
-rw-r--r--src/core/hle/service/ldr_ro.cpp2
-rw-r--r--src/core/hle/service/nim_u.cpp2
-rw-r--r--src/core/hle/service/ns_s.cpp2
-rw-r--r--src/core/hle/service/nwm_uds.cpp2
-rw-r--r--src/core/hle/service/ptm/ptm.cpp3
-rw-r--r--src/core/hle/service/ptm/ptm_u.cpp2
-rw-r--r--src/core/hle/service/service.cpp2
-rw-r--r--src/core/hle/service/service.h2
-rw-r--r--src/core/hle/service/soc_u.cpp1
-rw-r--r--src/core/hle/service/srv.cpp2
-rw-r--r--src/core/hle/service/y2r_u.cpp2
-rw-r--r--src/core/hle/shared_page.cpp4
-rw-r--r--src/core/hle/svc.cpp3
-rw-r--r--src/core/hw/gpu.h4
-rw-r--r--src/core/hw/hw.cpp1
-rw-r--r--src/core/hw/lcd.cpp3
-rw-r--r--src/core/hw/lcd.h3
-rw-r--r--src/core/loader/3dsx.cpp2
-rw-r--r--src/core/loader/elf.cpp3
-rw-r--r--src/core/loader/loader.cpp1
-rw-r--r--src/core/loader/loader.h2
-rw-r--r--src/core/loader/ncch.cpp2
-rw-r--r--src/core/loader/ncch.h4
-rw-r--r--src/core/mem_map.cpp4
-rw-r--r--src/core/mem_map.h3
-rw-r--r--src/core/mem_map_funcs.cpp4
-rw-r--r--src/video_core/color.h2
-rw-r--r--src/video_core/pica.h3
-rw-r--r--src/video_core/renderer_base.h2
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.cpp1
-rw-r--r--src/video_core/video_core.cpp2
-rw-r--r--src/video_core/video_core.h1
122 files changed, 433 insertions, 480 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 516aba554..b0fe285db 100644
--- a/CMakeLists.txt
+++ b/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)
diff --git a/src/citra/citra.cpp b/src/citra/citra.cpp
index 2c6ced920..1d7e7f270 100644
--- a/src/citra/citra.cpp
+++ b/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);
diff --git a/src/citra/config.cpp b/src/citra/config.cpp
index 43175d6cb..ab564559d 100644
--- a/src/citra/config.cpp
+++ b/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"
diff --git a/src/citra/emu_window/emu_window_glfw.cpp b/src/citra/emu_window/emu_window_glfw.cpp
index f879ee7ca..341b48d2a 100644
--- a/src/citra/emu_window/emu_window_glfw.cpp
+++ b/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"
diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp
index a7f949411..d3df289f8 100644
--- a/src/citra_qt/bootmanager.cpp
+++ b/src/citra_qt/bootmanager.cpp
@@ -8,7 +8,6 @@
#include <QWindow>
#endif
-#include "common/common.h"
#include "bootmanager.h"
#include "main.h"
diff --git a/src/citra_qt/bootmanager.h b/src/citra_qt/bootmanager.h
index 715faf2d7..d5d74c949 100644
--- a/src/citra_qt/bootmanager.h
+++ b/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"
diff --git a/src/citra_qt/debugger/disassembler.cpp b/src/citra_qt/debugger/disassembler.cpp
index 08c6b49bd..780607e82 100644
--- a/src/citra_qt/debugger/disassembler.cpp
+++ b/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"
diff --git a/src/citra_qt/debugger/disassembler.h b/src/citra_qt/debugger/disassembler.h
index 45b0a7e08..340fb9936 100644
--- a/src/citra_qt/debugger/disassembler.h
+++ b/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;
diff --git a/src/citra_qt/debugger/graphics_breakpoints.cpp b/src/citra_qt/debugger/graphics_breakpoints.cpp
index 92348be34..1da64f616 100644
--- a/src/citra_qt/debugger/graphics_breakpoints.cpp
+++ b/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"
diff --git a/src/citra_qt/debugger/ramview.cpp b/src/citra_qt/debugger/ramview.cpp
index 88570f2cd..7149a0485 100644
--- a/src/citra_qt/debugger/ramview.cpp
+++ b/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)
{
}
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index dd0e4de8f..d15338f0d 100644
--- a/src/citra_qt/main.cpp
+++ b/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);
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
bit_field.h
break_points.h
chunk_file.h
- common.h
common_funcs.h
common_paths.h
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 @@
#pragma once
+#include <cstdio>
#include <cstdlib>
#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 @@
#include <limits>
#include <type_traits>
-#include "common/common.h"
+#include "common/common_funcs.h"
/*
* 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 @@
// 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"
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 @@
#include <vector>
#include <string>
-#include "common/common.h"
+#include "common/common_types.h"
class DebugInterface;
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 @@
#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
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 @@
-// 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"
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 @@
#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);
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 @@
#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 '/'
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
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 {
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 @@
#include <mutex>
#include <thread>
-#include "common/common.h" // for NonCopyable
+#include "common/common_types.h" // for NonCopyable
namespace Common {
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 @@
#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
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 @@
// 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__)
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 @@
#include <string>
#include <vector>
-#include "common/common.h"
+#include "common/common_types.h"
#include "common/string_util.h"
// 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 @@
#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>
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 @@
#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
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 @@
#pragma once
-#include "common/common.h"
+#include "common/common_types.h"
#include <fstream>
// 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 @@
#include "common/logging/log.h"
#include "common/logging/text_formatter.h"
+#include "common/common_funcs.h"
#include "common/string_util.h"
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 @@
// 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
{
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 @@
#pragma once
-#include "common/common.h"
+#include "common/common_types.h"
#include <algorithm>
#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 @@
#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>
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 @@
#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
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 @@
// 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"
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 @@
// 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
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 @@
#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))))
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 @@
#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
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 @@
#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
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 @@
#include <sstream>
#include <vector>
-#include "common/common.h"
+#include "common/common_types.h"
namespace Common {
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 @@
#pragma once
#include <map>
+#include <string>
+#include <utility>
-#include "common/common.h"
+#include "common/common_types.h"
struct TSymbol
{
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 @@
#pragma once
-// Don't include common.h here as it will break LogManager
#include "common/common_types.h"
#include <cstdio>
#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 @@
#include <boost/range/algorithm_ext/erase.hpp>
-#include "common/common.h"
-
namespace Common {
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 @@
#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
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 @@
#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
{
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 @@
#pragma once
-#include "common/common.h"
+#include "common/common_types.h"
#include <string>
namespace Common
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 42733b95e..fa6b4215a 100644
--- a/src/core/CMakeLists.txt
+++ b/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
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h
index 310663774..85ed2c698 100644
--- a/src/core/arm/arm_interface.h
+++ b/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"
diff --git a/src/core/arm/dyncom/arm_dyncom.cpp b/src/core/arm/dyncom/arm_dyncom.cpp
index 128413262..42a63e46f 100644
--- a/src/core/arm/dyncom/arm_dyncom.cpp
+++ b/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"
diff --git a/src/core/arm/interpreter/armsupp.cpp b/src/core/arm/interpreter/armsupp.cpp
index a68d53695..15c6f595b 100644
--- a/src/core/arm/interpreter/armsupp.cpp
+++ b/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"
diff --git a/src/core/arm/skyeye_common/armmmu.h b/src/core/arm/skyeye_common/armmmu.h
index 22e564c3d..0463d83c8 100644
--- a/src/core/arm/skyeye_common/armmmu.h
+++ b/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"
diff --git a/src/core/arm/skyeye_common/vfp/vfp.cpp b/src/core/arm/skyeye_common/vfp/vfp.cpp
index d0fa157a2..b88d47750 100644
--- a/src/core/arm/skyeye_common/vfp/vfp.cpp
+++ b/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"
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 81e642318..1c9680d41 100644
--- a/src/core/core.cpp
+++ b/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"
diff --git a/src/core/core_timing.h b/src/core/core_timing.h
index d62ff3604..01519608d 100644
--- a/src/core/core_timing.h
+++ b/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;
diff --git a/src/core/file_sys/archive_backend.cpp b/src/core/file_sys/archive_backend.cpp
new file mode 100644
index 000000000..0439868ab
--- /dev/null
+++ b/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{};
+ }
+}
+
+}
diff --git a/src/core/file_sys/archive_backend.h b/src/core/file_sys/archive_backend.h
index 43a106549..c6a1be79d 100644
--- a/src/core/file_sys/archive_backend.h
+++ b/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;
diff --git a/src/core/file_sys/archive_extsavedata.cpp b/src/core/file_sys/archive_extsavedata.cpp
index 3076fa263..38d498d0e 100644
--- a/src/core/file_sys/archive_extsavedata.cpp
+++ b/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"
diff --git a/src/core/file_sys/archive_romfs.cpp b/src/core/file_sys/archive_romfs.cpp
index bf54a3866..d4a12ed10 100644
--- a/src/core/file_sys/archive_romfs.cpp
+++ b/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"
diff --git a/src/core/file_sys/archive_savedata.cpp b/src/core/file_sys/archive_savedata.cpp
index 8496e06f3..12624fa31 100644
--- a/src/core/file_sys/archive_savedata.cpp
+++ b/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"
diff --git a/src/core/file_sys/archive_savedatacheck.cpp b/src/core/file_sys/archive_savedatacheck.cpp
index 47d8a9d25..e7e4fbf1d 100644
--- a/src/core/file_sys/archive_savedatacheck.cpp
+++ b/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"
diff --git a/src/core/file_sys/archive_sdmc.cpp b/src/core/file_sys/archive_sdmc.cpp
index 92b20c7f6..c1234a186 100644
--- a/src/core/file_sys/archive_sdmc.cpp
+++ b/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"
diff --git a/src/core/file_sys/directory_backend.h b/src/core/file_sys/directory_backend.h
index 7f327dc42..a25dc0cfa 100644
--- a/src/core/file_sys/directory_backend.h
+++ b/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
diff --git a/src/core/file_sys/disk_archive.cpp b/src/core/file_sys/disk_archive.cpp
index f53fd57db..9980cced1 100644
--- a/src/core/file_sys/disk_archive.cpp
+++ b/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"
diff --git a/src/core/file_sys/disk_archive.h b/src/core/file_sys/disk_archive.h
index 770bd715e..a22d3837a 100644
--- a/src/core/file_sys/disk_archive.h
+++ b/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"
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/file_sys/file_backend.h b/src/core/file_sys/file_backend.h
index 35890af1f..0fcff1845 100644
--- a/src/core/file_sys/file_backend.h
+++ b/src/core/file_sys/file_backend.h
@@ -6,8 +6,6 @@
#include "common/common_types.h"
-#include "core/hle/kernel/kernel.h"
-
////////////////////////////////////////////////////////////////////////////////////////////////////
// FileSys namespace
diff --git a/src/core/file_sys/ivfc_archive.cpp b/src/core/file_sys/ivfc_archive.cpp
index 35aca54fa..2d2509d16 100644
--- a/src/core/file_sys/ivfc_archive.cpp
+++ b/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"
diff --git a/src/core/file_sys/ivfc_archive.h b/src/core/file_sys/ivfc_archive.h
index 1aff9e0a4..10415798d 100644
--- a/src/core/file_sys/ivfc_archive.h
+++ b/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"
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/hle/config_mem.cpp b/src/core/hle/config_mem.cpp
index 9fcfcc285..35dc9cf58 100644
--- a/src/core/hle/config_mem.cpp
+++ b/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;
diff --git a/src/core/hle/hle.h b/src/core/hle/hle.h
index 23de1aab7..e0b97797c 100644
--- a/src/core/hle/hle.h
+++ b/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
diff --git a/src/core/hle/kernel/address_arbiter.cpp b/src/core/hle/kernel/address_arbiter.cpp
index 19135266c..9d7f6b280 100644
--- a/src/core/hle/kernel/address_arbiter.cpp
+++ b/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"
diff --git a/src/core/hle/kernel/event.cpp b/src/core/hle/kernel/event.cpp
index 420906ec0..f338f3266 100644
--- a/src/core/hle/kernel/event.cpp
+++ b/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"
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index fca582bbe..533fe65fd 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/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"
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index ab06fa025..a7bc6b71a 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/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 {
diff --git a/src/core/hle/kernel/mutex.cpp b/src/core/hle/kernel/mutex.cpp
index ebc9e79d7..f530217fd 100644
--- a/src/core/hle/kernel/mutex.cpp
+++ b/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"
diff --git a/src/core/hle/kernel/semaphore.cpp b/src/core/hle/kernel/semaphore.cpp
index 6aecc24aa..5d6543ef4 100644
--- a/src/core/hle/kernel/semaphore.cpp
+++ b/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"
diff --git a/src/core/hle/kernel/shared_memory.cpp b/src/core/hle/kernel/shared_memory.cpp
index 9b2511b53..cb5c16696 100644
--- a/src/core/hle/kernel/shared_memory.cpp
+++ b/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"
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index d678f5f6f..9577b889a 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/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"
diff --git a/src/core/hle/kernel/timer.cpp b/src/core/hle/kernel/timer.cpp
index 36979248d..e69fece65 100644
--- a/src/core/hle/kernel/timer.cpp
+++ b/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"
diff --git a/src/core/hle/result.h b/src/core/hle/result.h
index 3648a168b..ce633d841 100644
--- a/src/core/hle/result.h
+++ b/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"
diff --git a/src/core/hle/service/am_sys.cpp b/src/core/hle/service/am_sys.cpp
index b244190a2..f9e3fe4b7 100644
--- a/src/core/hle/service/am_sys.cpp
+++ b/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"
diff --git a/src/core/hle/service/apt/apt.cpp b/src/core/hle/service/apt/apt.cpp
index 98ae80b3a..560c9dcf6 100644
--- a/src/core/hle/service/apt/apt.cpp
+++ b/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"
diff --git a/src/core/hle/service/apt/apt_s.cpp b/src/core/hle/service/apt/apt_s.cpp
index 3fd348651..396d1f04a 100644
--- a/src/core/hle/service/apt/apt_s.cpp
+++ b/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"
diff --git a/src/core/hle/service/apt/apt_u.cpp b/src/core/hle/service/apt/apt_u.cpp
index 5ab23801e..d006b5930 100644
--- a/src/core/hle/service/apt/apt_u.cpp
+++ b/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"
diff --git a/src/core/hle/service/cfg/cfg.cpp b/src/core/hle/service/cfg/cfg.cpp
index 5eccdecf7..2d26c9330 100644
--- a/src/core/hle/service/cfg/cfg.cpp
+++ b/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 {
diff --git a/src/core/hle/service/cfg/cfg_u.cpp b/src/core/hle/service/cfg/cfg_u.cpp
index c8c1c5b17..221de9918 100644
--- a/src/core/hle/service/cfg/cfg_u.cpp
+++ b/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"
diff --git a/src/core/hle/service/dsp_dsp.cpp b/src/core/hle/service/dsp_dsp.cpp
index 2e759a3e3..20dc4d648 100644
--- a/src/core/hle/service/dsp_dsp.cpp
+++ b/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"
diff --git a/src/core/hle/service/err_f.cpp b/src/core/hle/service/err_f.cpp
index 58c5acd1e..e8c06c1cf 100644
--- a/src/core/hle/service/err_f.cpp
+++ b/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"
diff --git a/src/core/hle/service/fs/archive.cpp b/src/core/hle/service/fs/archive.cpp
index b0fd834c7..6d4a9c7c9 100644
--- a/src/core/hle/service/fs/archive.cpp
+++ b/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]);
diff --git a/src/core/hle/service/fs/archive.h b/src/core/hle/service/fs/archive.h
index b00f0fd60..faab0cb79 100644
--- a/src/core/hle/service/fs/archive.h
+++ b/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;
};
/**
diff --git a/src/core/hle/service/fs/fs_user.cpp b/src/core/hle/service/fs/fs_user.cpp
index 5bc94b1b1..0d2a426b0 100644
--- a/src/core/hle/service/fs/fs_user.cpp
+++ b/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"
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index 0f30f743a..dd85848d0 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/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"
diff --git a/src/core/hle/service/ldr_ro.cpp b/src/core/hle/service/ldr_ro.cpp
index c0c4a2344..155b97f69 100644
--- a/src/core/hle/service/ldr_ro.cpp
+++ b/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"
diff --git a/src/core/hle/service/nim_u.cpp b/src/core/hle/service/nim_u.cpp
index a87d17ef0..5f13bd98e 100644
--- a/src/core/hle/service/nim_u.cpp
+++ b/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"
diff --git a/src/core/hle/service/ns_s.cpp b/src/core/hle/service/ns_s.cpp
index 5cf3e2039..6b3ef6ece 100644
--- a/src/core/hle/service/ns_s.cpp
+++ b/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"
diff --git a/src/core/hle/service/nwm_uds.cpp b/src/core/hle/service/nwm_uds.cpp
index 4b06efc3a..25b01860e 100644
--- a/src/core/hle/service/nwm_uds.cpp
+++ b/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"
diff --git a/src/core/hle/service/ptm/ptm.cpp b/src/core/hle/service/ptm/ptm.cpp
index d44510c1b..6480a323d 100644
--- a/src/core/hle/service/ptm/ptm.cpp
+++ b/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 {
diff --git a/src/core/hle/service/ptm/ptm_u.cpp b/src/core/hle/service/ptm/ptm_u.cpp
index 0af7c8bf6..9d6a5b0d7 100644
--- a/src/core/hle/service/ptm/ptm_u.cpp
+++ b/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"
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index d50327cb9..64185c62e 100644
--- a/src/core/hle/service/service.cpp
+++ b/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"
diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h
index 21ada67b5..77bfb9ff1 100644
--- a/src/core/hle/service/service.h
+++ b/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"
diff --git a/src/core/hle/service/soc_u.cpp b/src/core/hle/service/soc_u.cpp
index 231ead185..39b8d65fd 100644
--- a/src/core/hle/service/soc_u.cpp
+++ b/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
diff --git a/src/core/hle/service/srv.cpp b/src/core/hle/service/srv.cpp
index cc59a03ce..6c49fa6cf 100644
--- a/src/core/hle/service/srv.cpp
+++ b/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 --git a/src/core/hle/service/y2r_u.cpp b/src/core/hle/service/y2r_u.cpp
index 33ecf64a2..085192a07 100644
--- a/src/core/hle/service/y2r_u.cpp
+++ b/src/core/hle/service/y2r_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/kernel/event.h"
#include "core/hle/service/y2r_u.h"
diff --git a/src/core/hle/shared_page.cpp b/src/core/hle/shared_page.cpp
index 94fae2551..4f227a370 100644
--- a/src/core/hle/shared_page.cpp
+++ b/src/core/hle/shared_page.cpp
@@ -2,6 +2,8 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <cstring>
+
#include "common/common_types.h"
#include "common/common_funcs.h"
@@ -62,7 +64,7 @@ template void Read<u16>(u16 &var, const u32 addr);
template void Read<u8>(u8 &var, const u32 addr);
void Set3DSlider(float amount) {
- memset(&shared_page, 0, sizeof(shared_page));
+ std::memset(&shared_page, 0, sizeof(shared_page));
shared_page.sliderstate_3d = amount;
shared_page.ledstate_3d = (amount == 0.0f); // off when non-zero
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp
index 2da488d83..393cfbe79 100644
--- a/src/core/hle/svc.cpp
+++ b/src/core/hle/svc.cpp
@@ -4,6 +4,7 @@
#include <map>
+#include "common/logging/log.h"
#include "common/profiler.h"
#include "common/string_util.h"
#include "common/symbols.h"
@@ -311,7 +312,7 @@ static ResultCode GetResourceLimit(Handle* resource_limit, Handle process) {
/// Get resource limit current values
static ResultCode GetResourceLimitCurrentValues(s64* values, Handle resource_limit, void* names,
s32 name_count) {
- LOG_ERROR(Kernel_SVC, "(UNIMPLEMENTED) called resource_limit=%08X, names=%s, name_count=%d",
+ LOG_ERROR(Kernel_SVC, "(UNIMPLEMENTED) called resource_limit=%08X, names=%p, name_count=%d",
resource_limit, names, name_count);
Memory::Write32(Core::g_app_core->GetReg(0), 0); // Normmatt: Set used memory to 0 for now
return RESULT_SUCCESS;
diff --git a/src/core/hw/gpu.h b/src/core/hw/gpu.h
index c8f884494..699bcd2a5 100644
--- a/src/core/hw/gpu.h
+++ b/src/core/hw/gpu.h
@@ -6,8 +6,10 @@
#include <cstddef>
-#include "common/common_types.h"
+#include "common/assert.h"
#include "common/bit_field.h"
+#include "common/common_funcs.h"
+#include "common/common_types.h"
namespace GPU {
diff --git a/src/core/hw/hw.cpp b/src/core/hw/hw.cpp
index 236958139..f4906cc7e 100644
--- a/src/core/hw/hw.cpp
+++ b/src/core/hw/hw.cpp
@@ -3,6 +3,7 @@
// Refer to the license.txt file included.
#include "common/common_types.h"
+#include "common/logging/log.h"
#include "core/hw/hw.h"
#include "core/hw/gpu.h"
diff --git a/src/core/hw/lcd.cpp b/src/core/hw/lcd.cpp
index 8a09c3bc0..09134c95b 100644
--- a/src/core/hw/lcd.cpp
+++ b/src/core/hw/lcd.cpp
@@ -2,7 +2,10 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <cstring>
+
#include "common/common_types.h"
+#include "common/logging/log.h"
#include "core/arm/arm_interface.h"
#include "core/hle/hle.h"
diff --git a/src/core/hw/lcd.h b/src/core/hw/lcd.h
index 43893a625..fb14c3b21 100644
--- a/src/core/hw/lcd.h
+++ b/src/core/hw/lcd.h
@@ -6,8 +6,9 @@
#include <cstddef>
-#include "common/common_types.h"
#include "common/bit_field.h"
+#include "common/common_funcs.h"
+#include "common/common_types.h"
#define LCD_REG_INDEX(field_name) (offsetof(LCD::Regs, field_name) / sizeof(u32))
diff --git a/src/core/loader/3dsx.cpp b/src/core/loader/3dsx.cpp
index 958dd03e8..5d806c5d0 100644
--- a/src/core/loader/3dsx.cpp
+++ b/src/core/loader/3dsx.cpp
@@ -5,6 +5,8 @@
#include <algorithm>
#include <vector>
+#include "common/logging/log.h"
+
#include "core/file_sys/archive_romfs.h"
#include "core/loader/elf.h"
#include "core/loader/ncch.h"
diff --git a/src/core/loader/elf.cpp b/src/core/loader/elf.cpp
index 773eaf771..467e91924 100644
--- a/src/core/loader/elf.cpp
+++ b/src/core/loader/elf.cpp
@@ -5,8 +5,9 @@
#include <string>
#include <memory>
-#include "common/common.h"
+#include "common/common_types.h"
#include "common/file_util.h"
+#include "common/logging/log.h"
#include "common/symbols.h"
#include "core/mem_map.h"
diff --git a/src/core/loader/loader.cpp b/src/core/loader/loader.cpp
index aca09b374..de0ab540a 100644
--- a/src/core/loader/loader.cpp
+++ b/src/core/loader/loader.cpp
@@ -4,6 +4,7 @@
#include <string>
+#include "common/logging/log.h"
#include "common/make_unique.h"
#include "core/file_sys/archive_romfs.h"
diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h
index 3510c6b28..2b87239cf 100644
--- a/src/core/loader/loader.h
+++ b/src/core/loader/loader.h
@@ -6,7 +6,7 @@
#include <vector>
-#include "common/common.h"
+#include "common/common_types.h"
#include "common/file_util.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp
index 4efed78bf..9bce2b79d 100644
--- a/src/core/loader/ncch.cpp
+++ b/src/core/loader/ncch.cpp
@@ -4,6 +4,8 @@
#include <memory>
+#include "common/logging/log.h"
+
#include "core/loader/ncch.h"
#include "core/hle/kernel/kernel.h"
#include "core/mem_map.h"
diff --git a/src/core/loader/ncch.h b/src/core/loader/ncch.h
index 3dd151dbd..44c72a4e2 100644
--- a/src/core/loader/ncch.h
+++ b/src/core/loader/ncch.h
@@ -4,7 +4,9 @@
#pragma once
-#include "common/common.h"
+#include <memory>
+
+#include "common/common_types.h"
#include "core/loader/loader.h"
diff --git a/src/core/mem_map.cpp b/src/core/mem_map.cpp
index 22e359b3e..ae88cfb11 100644
--- a/src/core/mem_map.cpp
+++ b/src/core/mem_map.cpp
@@ -2,7 +2,9 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "common/common.h"
+#include "common/common_funcs.h"
+#include "common/common_types.h"
+#include "common/logging/log.h"
#include "common/mem_arena.h"
#include "core/mem_map.h"
diff --git a/src/core/mem_map.h b/src/core/mem_map.h
index 1af02973b..b11f2ea68 100644
--- a/src/core/mem_map.h
+++ b/src/core/mem_map.h
@@ -4,11 +4,8 @@
#pragma once
-#include "common/common.h"
#include "common/common_types.h"
-#include "core/hle/kernel/kernel.h"
-
namespace Memory {
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/mem_map_funcs.cpp b/src/core/mem_map_funcs.cpp
index 8759ebdfb..9a19c9bf8 100644
--- a/src/core/mem_map_funcs.cpp
+++ b/src/core/mem_map_funcs.cpp
@@ -4,7 +4,9 @@
#include <map>
-#include "common/common.h"
+#include "common/common_types.h"
+#include "common/logging/log.h"
+#include "common/swap.h"
#include "core/mem_map.h"
#include "core/hw/hw.h"
diff --git a/src/video_core/color.h b/src/video_core/color.h
index 43d635e2c..4d2026eb0 100644
--- a/src/video_core/color.h
+++ b/src/video_core/color.h
@@ -5,6 +5,8 @@
#pragma once
#include "common/common_types.h"
+#include "common/swap.h"
+
#include "video_core/math.h"
namespace Color {
diff --git a/src/video_core/pica.h b/src/video_core/pica.h
index 8acad8676..a0ba715f3 100644
--- a/src/video_core/pica.h
+++ b/src/video_core/pica.h
@@ -10,8 +10,11 @@
#include <map>
#include <vector>
+#include "common/assert.h"
#include "common/bit_field.h"
+#include "common/common_funcs.h"
#include "common/common_types.h"
+#include "common/logging/log.h"
#include "core/mem_map.h"
diff --git a/src/video_core/renderer_base.h b/src/video_core/renderer_base.h
index b77f29c11..b62409538 100644
--- a/src/video_core/renderer_base.h
+++ b/src/video_core/renderer_base.h
@@ -4,7 +4,7 @@
#pragma once
-#include "common/common.h"
+#include "common/common_types.h"
class RendererBase : NonCopyable {
public:
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index 5e864b75e..6b242a6ed 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -9,6 +9,7 @@
#include "core/settings.h"
#include "common/emu_window.h"
+#include "common/logging/log.h"
#include "common/profiler_reporting.h"
#include "video_core/video_core.h"
diff --git a/src/video_core/video_core.cpp b/src/video_core/video_core.cpp
index b9d4ede3a..42e3bdd5b 100644
--- a/src/video_core/video_core.cpp
+++ b/src/video_core/video_core.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/emu_window.h"
#include "core/core.h"
diff --git a/src/video_core/video_core.h b/src/video_core/video_core.h
index 1b51d39bf..f885bec21 100644
--- a/src/video_core/video_core.h
+++ b/src/video_core/video_core.h
@@ -4,7 +4,6 @@
#pragma once
-#include "common/common.h"
#include "common/emu_window.h"
#include "renderer_base.h"