mirror of
				https://github.com/yuzu-emu/yuzu.git
				synced 2025-11-04 12:33:43 +00:00 
			
		
		
		
	
						commit
						4f4d230dac
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user