xenia-canary/src/xenia/base
illusion98 eff388f243 Merge remote-tracking branch 'JoelLinn/fix-cpu-clock' into canary 2019-11-24 09:49:20 -05:00
..
testing Get rid of gflags alltogether 2019-08-03 02:34:19 +02: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 Fix Travis whining. 2018-11-22 09:48:04 -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 [CPU] Move XEX2 code into XexModule class, autodetect XEX key 2018-10-20 04:18:18 +01: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 Merge remote-tracking branch 'JoelLinn/fix-cpu-clock' into canary 2019-11-24 09:49:20 -05:00
clock.h Merge remote-tracking branch 'JoelLinn/fix-cpu-clock' into canary 2019-11-24 09:49:20 -05:00
clock_posix.cc Merge remote-tracking branch 'JoelLinn/fix-cpu-clock' into canary 2019-11-24 09:49:20 -05:00
clock_win.cc Merge remote-tracking branch 'JoelLinn/fix-cpu-clock' into canary 2019-11-24 09:49:20 -05:00
clock_x64.cc Merge remote-tracking branch 'JoelLinn/fix-cpu-clock' into canary 2019-11-24 09:49:20 -05:00
cvar.cc Fix up handling of positional options in cvar handling. 2019-08-24 07:41:55 -05:00
cvar.h Fix up handling of positional options in cvar handling. 2019-08-24 07:41:55 -05: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 [Memory] Move new watches to heap-aware Memory from MMIOHandler 2019-07-30 08:00:20 +03: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 [Memory] Move new watches to heap-aware Memory from MMIOHandler 2019-07-30 08:00:20 +03:00
filesystem.cc [Base/GPU] Fix some usage of xe::find_base_path. 2019-07-18 18:37:47 -05:00
filesystem.h Merge pull request #1254 from Wildenhaus/master 2019-05-04 11:30:48 -05:00
filesystem_posix.cc implement linux filesystem support 2019-04-08 01:06:06 -04: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 [Base] Fix Windows CreateFolder so it creates the entire path properly. 2019-07-18 17:47:25 -05:00
logging.cc [Base] Qualify std namespace. 2019-08-04 04:39:22 -05:00
logging.h [Base] Add wide versions of FatalError. 2019-08-04 03:26:18 -05:00
main.h Fix up handling of positional options in cvar handling. 2019-08-24 07:41:55 -05:00
main_init_posix.cc [App] Stub main_init for posix. 2019-04-20 10:57:41 -05:00
main_init_win.cc [App] Fix AVX check. For good this time. Hopefully. 2019-04-20 02:32:45 -05:00
main_posix.cc Fix up handling of positional options in cvar handling. 2019-08-24 07:41:55 -05:00
main_win.cc Fix up handling of positional options in cvar handling. 2019-08-24 07:41:55 -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 Merge remote-tracking branch 'JoelLinn/fix-cpu-clock' into canary 2019-11-24 09:49:20 -05:00
memory.cc Update documentation. 2018-11-22 09:20:09 -06:00
memory.h [Base] Const-ize store and store_and_swap templates. 2019-09-04 19:58:17 -05:00
memory_posix.cc [Base] Handle exec R/W mapped file handles 2017-12-19 19:36:10 -06: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 [Base] Widen LaunchBrowser. 2019-04-30 16:30:17 -05:00
platform_linux.cc [Base] Fix Travis whining. 2019-04-30 18:16:20 -05:00
platform_linux.h Fixup 360 support 2018-04-03 19:02:49 -05:00
platform_posix.h xenia-cpu-ppc-tests is now building on linux 2017-02-10 23:54:10 -06:00
platform_win.cc [Base] Widen LaunchBrowser. 2019-04-30 16:30:17 -05:00
platform_win.h Fixing include orders and whitelisting others. 2015-11-21 11:34:46 -08:00
premake5.lua Get rid of gflags alltogether 2019-08-03 02:34:19 +02:00
profiling.cc Clean up cvars (rename, recategorize). 2019-08-03 23:46:03 -05:00
profiling.h [Base] Add support for microprofile counters 2018-03-02 23:28:01 -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 [Base] RingBuffer: Add ReadAndSwap instead of piggybacking off of Read 2018-02-18 12:18:20 -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 [Base] Add wide version of split_path. 2019-08-04 06:47:09 -05:00
string.h [Base] Add wide version of split_path. 2019-08-04 06:47:09 -05:00
string_buffer.cc [Base] StringBuffer: Clear the C string in Reset 2018-11-10 16:33:40 +03: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.cc [Base] Drop inline on string_util/vec128 implementations for now because clang is whining. 2019-08-04 12:00:04 -05:00
string_util.h [Base] Drop inline on string_util/vec128 implementations for now because clang is whining. 2019-08-04 12:00:04 -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 [Base] Implement PosixEvent using eventfd 2017-12-20 17:51:31 -06:00
threading_win.cc Update documentation. 2018-11-22 09:20:09 -06:00
type_pool.h Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
vec128.cc [Base] Drop inline on string_util/vec128 implementations for now because clang is whining. 2019-08-04 12:00:04 -05:00
vec128.h [Base] Drop inline on string_util/vec128 implementations for now because clang is whining. 2019-08-04 12:00:04 -05: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.