xenia-canary/src/xenia/base
Sandy Carter 24e7bb5293 [Memory] Fix alignment to 16 bytes
Fix segmentation fault happening on linux when `src` or `dst` is not aligned to
16 bytes.
Assert against use of `src_ptr` and `dest_ptr` which are not unaligned to 16
bits.
2018-04-20 18:50:40 -07:00
..
testing [Base Tests] Add tests for all cases in memory.cc 2018-04-20 18:50:39 -07: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 [Base] Support sign-extension in bitfield 2018-04-14 17:34:21 -05: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 [Base] Fix Travis 2018-03-03 19:15:37 -06:00
logging.h [Base] Shutdown the logger to prevent truncation of output 2018-03-03 19:00:04 -06: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 [Base] Shutdown the logger to prevent truncation of output 2018-03-03 19:00:04 -06: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 [Memory] Fix alignment to 16 bytes 2018-04-20 18:50:40 -07:00
memory.h Base: Remove memory::DeallocationType::kDecommitRelease (an invalid combination) 2017-05-14 00:59:52 -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 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 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 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 [Base Tests] Move base tests to their own subdir 2018-04-20 17:08:28 -07:00
profiling.cc [UI] Update microprofile to latest 2018-02-28 18:52:45 -06: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 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 [Base] Implement PosixEvent using eventfd 2017-12-20 17:51:31 -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.