mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-15 22:54:00 +00:00
commit
4f4d230dac
122 changed files with 435 additions and 482 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#include <GLFW/glfw3.h>
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/logging/log.h"
|
||||
|
||||
#include "video_core/video_core.h"
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include <QWindow>
|
||||
#endif
|
||||
|
||||
#include "common/common.h"
|
||||
#include "bootmanager.h"
|
||||
#include "main.h"
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include <QThread>
|
||||
#include <QGLWidget>
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/emu_window.h"
|
||||
#include "common/thread.h"
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include "../bootmanager.h"
|
||||
#include "../hotkeys.h"
|
||||
|
||||
#include "common/common.h"
|
||||
#include "core/mem_map.h"
|
||||
|
||||
#include "core/core.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;
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
#include <QVBoxLayout>
|
||||
#include <QLabel>
|
||||
|
||||
#include "common/assert.h"
|
||||
|
||||
#include "graphics_breakpoints.h"
|
||||
#include "graphics_breakpoints_p.h"
|
||||
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
|
||||
#include "ramview.h"
|
||||
|
||||
#include "common/common.h"
|
||||
#include "core/mem_map.h"
|
||||
|
||||
|
||||
GRamView::GRamView(QWidget* parent) : QHexEdit(parent)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
|
||||
#include "common/common_funcs.h"
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#include <limits>
|
||||
#include <type_traits>
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_funcs.h"
|
||||
|
||||
/*
|
||||
* Abstract bitfield class
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_types.h"
|
||||
|
||||
class DebugInterface;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
|
@ -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);
|
||||
|
|
|
@ -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 '/'
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#include <mutex>
|
||||
#include <thread>
|
||||
|
||||
#include "common/common.h" // for NonCopyable
|
||||
#include "common/common_types.h" // for NonCopyable
|
||||
|
||||
namespace Common {
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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__)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_types.h"
|
||||
#include <fstream>
|
||||
|
||||
// defined in Version.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 {
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/math_util.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <numeric> // Necessary on OS X, but not Linux
|
||||
|
||||
#include "common/common_types.h"
|
||||
#include "common/math_util.h"
|
||||
|
||||
namespace MathUtil
|
||||
{
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_types.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <type_traits>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -63,48 +63,27 @@
|
|||
#define EMU_ARCHITECTURE_X86
|
||||
#endif
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// 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
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Compiler-Specific Definitions
|
||||
|
||||
#if EMU_PLATFORM == PLATFORM_WINDOWS
|
||||
|
||||
#include <time.h>
|
||||
|
||||
#ifndef NOMINMAX
|
||||
#define NOMINMAX
|
||||
#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
|
||||
|
||||
#define GCC_VERSION_AVAILABLE(major, minor) (defined(__GNUC__) && (__GNUC__ > (major) || \
|
||||
(__GNUC__ == (major) && __GNUC_MINOR__ >= (minor))))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#include <sstream>
|
||||
#include <vector>
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_types.h"
|
||||
|
||||
namespace Common {
|
||||
|
||||
|
|
|
@ -5,8 +5,10 @@
|
|||
#pragma once
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_types.h"
|
||||
|
||||
struct TSymbol
|
||||
{
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
|
||||
#include <boost/range/algorithm_ext/erase.hpp>
|
||||
|
||||
#include "common/common.h"
|
||||
|
||||
namespace Common {
|
||||
|
||||
template<class T, unsigned int N>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_types.h"
|
||||
#include <string>
|
||||
|
||||
namespace Common
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_types.h"
|
||||
#include "core/arm/skyeye_common/arm_regformat.h"
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "common/swap.h"
|
||||
|
||||
#include "core/mem_map.h"
|
||||
#include "core/arm/skyeye_common/armdefs.h"
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include <functional>
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_types.h"
|
||||
|
||||
extern int g_clock_rate_arm11;
|
||||
|
||||
|
|
127
src/core/file_sys/archive_backend.cpp
Normal file
127
src/core/file_sys/archive_backend.cpp
Normal file
|
@ -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{};
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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/hle/result.h"
|
||||
|
||||
#include "core/mem_map.h"
|
||||
#include "core/hle/kernel/kernel.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;
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -4,12 +4,11 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <array>
|
||||
#include <cstddef>
|
||||
|
||||
#include "common/common_types.h"
|
||||
|
||||
#include "core/hle/kernel/kernel.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// FileSys namespace
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -6,8 +6,6 @@
|
|||
|
||||
#include "common/common_types.h"
|
||||
|
||||
#include "core/hle/kernel/kernel.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// FileSys namespace
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -10,19 +10,11 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/common_types.h"
|
||||
|
||||
#include "core/hle/hle.h"
|
||||
#include "core/hle/result.h"
|
||||
|
||||
typedef u32 Handle;
|
||||
typedef s32 Result;
|
||||
|
||||
// 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;
|
||||
|
||||
namespace Kernel {
|
||||
|
||||
class Thread;
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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,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"
|
||||
|
|
|
@ -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,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,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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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,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,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"
|
||||
|
||||
|
|
|
@ -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]);
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -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,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,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,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"
|
||||
|
||||
|
|
|
@ -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,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,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 {
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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,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"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue