xenia-canary/src/xenia/base
DrChat 5da59a95c9 Merge branch 'linux' 2017-12-16 17:15:49 -06:00
..
README.md Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
arena.cc Some xb style cleanup. 2015-08-05 22:06:20 -07:00
arena.h Some xb style cleanup. 2015-08-05 22:06:20 -07:00
assert.h Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
atomic.h Linux tweaks. 2015-08-18 14:18:00 -07:00
bit_field.h Remove usage of non standard identity struct 2017-07-11 11:47:24 -06:00
bit_map.cc Use a 64-bit bitmap rather than a 32-bit bitmap. 2015-12-29 13:10:02 -08:00
bit_map.h bit_map: Add missing include for size_t definition 2015-12-30 17:42:18 -05:00
bit_stream.cc 32-bit value fix to the 64-bit type. 2017-07-01 22:37:12 -04:00
bit_stream.h Add missing header includes. 2015-09-22 07:38:59 -07:00
byte_order.h More style cleanup. 2015-08-06 20:17:01 -07:00
byte_stream.cc byte_stream: Remove template specialization in class scope 2015-12-30 17:42:18 -05:00
byte_stream.h byte_stream: Remove template specialization in class scope 2015-12-30 17:42:18 -05:00
clock.cc Save/Restore the guest clock in XThreads 2015-12-29 13:09:47 -08:00
clock.h Save/Restore the guest clock in XThreads 2015-12-29 13:09:47 -08:00
clock_posix.cc xenia-cpu-ppc-tests is now building on linux 2017-02-10 23:54:10 -06:00
clock_win.cc Replacing the tick count timer with xplat abstraction (also better rate). 2015-07-19 10:11:54 -07:00
debug_visualizers.natvis Base bitfield class 2017-02-19 19:58:58 -06:00
debugging.h Adding some comments. 2015-12-02 17:37:48 -08:00
debugging_mac.cc Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
debugging_posix.cc Fix Travis :| 2017-05-09 21:10:53 -05:00
debugging_win.cc Starting to remove windows.h includes from things. 2015-07-13 20:49:29 -07:00
delegate.h More style. 2015-08-07 21:29:03 -07:00
exception_handler.h More WIP architecture fixes (exception_handler/string_util) 2017-05-09 22:32:27 -05:00
exception_handler_linux.cc Fix travis LINT 2017-09-20 23:29:39 +02:00
exception_handler_posix.cc xenia-cpu-ppc-tests is now building on linux 2017-02-10 23:54:10 -06:00
exception_handler_win.cc A new debugger. 2015-09-20 21:31:05 -07:00
filesystem.cc Spliced out the FS wildcard stuff. 2017-01-19 17:06:35 -06:00
filesystem.h Spliced out the FS wildcard stuff. 2017-01-19 17:06:35 -06:00
filesystem_posix.cc Fix travis LINT 2017-09-20 23:29:39 +02:00
filesystem_wildcard.cc Added support for '?' to FS wildcard handling. 2017-01-19 18:13:07 -06:00
filesystem_wildcard.h Added support for '?' to FS wildcard handling. 2017-01-19 18:13:07 -06:00
filesystem_win.cc Fixed xe::filesystem::DeleteFolder on Windows. Should fix some issues where games tried to overwrite existing content such as saves and was failing. 2017-01-09 17:05:05 -06:00
logging.cc Use the app name as a default logfile. 2017-12-16 11:06:46 -06:00
logging.h Logging: Add a flag to specify the minimum log level 2017-03-24 16:28:41 -05:00
main.h More style cleanup. 2015-08-06 20:17:01 -07:00
main_posix.cc Logging to with a ringbuffer. Much faster. 2015-08-29 18:06:30 -07:00
main_win.cc Don't use xe::to_wstring for converting arguments back to wide strings on Windows (xe::to_wstring assumes input is valid UTF-8, which the arguments are not). Fixes #703. 2017-05-14 16:29:45 -05:00
mapped_memory.h xenia-base: Use unique_ptr constructor rather than make_unique to support GCC 4.8.4 2017-05-12 10:17:56 -05:00
mapped_memory_posix.cc xenia-base: Use unique_ptr constructor rather than make_unique to support GCC 4.8.4 2017-05-12 10:17:56 -05:00
mapped_memory_win.cc MappedMemory: Support opening empty files (and extending them) / remapping files / Truncate on close 2015-12-29 13:09:21 -08:00
math.cc More style cleanup. 2015-08-06 20:17:01 -07:00
math.h Fix travis LINT 2017-09-20 23:29:39 +02:00
memory.cc Add generic memory swap routines. 2017-05-09 20:52:09 -05:00
memory.h Base: Remove memory::DeallocationType::kDecommitRelease (an invalid combination) 2017-05-14 00:59:52 -05:00
memory_posix.cc Whoops - fix linux builds. 2017-05-08 22:26:48 -05:00
memory_test.cc Include order fixes. 2015-12-27 10:27:46 -08:00
memory_win.cc Base: Remove memory::DeallocationType::kDecommitRelease (an invalid combination) 2017-05-14 00:59:52 -05:00
mutex.cc Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
mutex.h Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
platform.h Add XE_ARCH_* 2017-05-07 18:25:06 -05:00
platform_linux.cc Fix travis LINT 2017-09-20 23:29:39 +02:00
platform_linux.h Fix travis LINT 2017-09-20 23:29:39 +02:00
platform_posix.h xenia-cpu-ppc-tests is now building on linux 2017-02-10 23:54:10 -06:00
platform_win.cc VirtualProtect platform abstraction. 2015-07-15 18:20:05 -07:00
platform_win.h Fixing include orders and whitelisting others. 2015-11-21 11:34:46 -08:00
premake5.lua Folding build_tools back into the main repo for simplicity. 2015-12-30 16:53:14 -08:00
profiling.cc Merge branch 'linux' of git://github.com/dougvj/xenia into linux 2017-12-14 19:20:02 -06:00
profiling.h Decouple MicroProfileFlip from Profiler::Present (and start a new frame in XE_SWAP) 2016-02-07 19:25:30 -06:00
reset_scope.h DANGER DANGER. Switching to global critical region. 2015-09-06 09:30:54 -07:00
ring_buffer.cc Update RingBuffer - Add immediate read/write and some error checking asserts. 2016-01-24 22:39:05 -06:00
ring_buffer.h Update RingBuffer - Add immediate read/write and some error checking asserts. 2016-01-24 22:39:05 -06:00
socket.h Some xb style cleanup. 2015-08-05 22:06:20 -07:00
socket_win.cc Format all code with new clang-format 2017-12-14 20:44:43 -06:00
string.cc Reconcile debugger and save state stuff into a single implementation. 2016-01-18 11:48:21 -08:00
string.h Trace dump tool, for dumping pngs (and in the future more stuff). 2015-12-13 11:59:14 -08:00
string_buffer.cc First pass ShaderTranslator base type, able to disasm in msft style. 2015-11-28 16:19:04 -08:00
string_buffer.h First pass ShaderTranslator base type, able to disasm in msft style. 2015-11-28 16:19:04 -08:00
string_util.h More WIP architecture fixes (exception_handler/string_util) 2017-05-09 22:32:27 -05:00
threading.cc Use stdlib 'hardware_concurrency' to get logical processor count 2016-01-20 11:04:28 -05:00
threading.h Fix travis LINT 2017-09-20 23:29:39 +02:00
threading_linux.cc Fix travis LINT 2017-09-20 23:29:39 +02:00
threading_mac.cc Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
threading_posix.cc Return dummy values for unimplemented threading functions 2017-12-16 17:02:06 -06:00
threading_win.cc Use stdlib 'hardware_concurrency' to get logical processor count 2016-01-20 11:04:28 -05:00
type_pool.h Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
vec128.h Tests: Handle integer floating point numbers 2017-03-06 01:04:59 -06:00
x64_context.cc Math: Fix [l/t]zcnt intrinsics on GCC 2017-05-11 10:32:13 -05:00
x64_context.h (for now) Stub X64Context out on non-AMD64 platforms 2017-05-09 20:53:25 -05:00

README.md

A lightweight cross-platform/compiler compatibility library.

This library presupposes C++11/14 support. As more compilers get C++14 it will assume that.

Other parts of the project use this to avoid creating spaghetti linkage. Code specific to the emulator should be kept out, as not all of the projects that depend on this need it.

Where possible, C++11/14 STL should be used instead of adding any code in here, and the code should be kept as small as possible (by reusing STL/etc). Third party dependencies should be kept to a minimum.

Target compilers:

  • MSVC++ 2013+
  • Clang 3.4+
  • GCC 4.8+.

Target platforms:

  • Windows 8+ (_win.cc suffix)
  • Mac OSX 10.9+ (_mac.cc suffix, falling back to _posix.cc)
  • Linux ? (_posix.cc suffix)

Avoid the use of platform-specific #ifdefs and instead try to put all platform-specific code in the appropriately suffixed cc files.