xenia-canary/src/xenia/base
Margen67 896ac4a682 Update documentation.
- Convert http to https, provide archive link when possible.
- Made CPU-JIT.png more readable on dark themes;
Added a white background so there isn't black text on a black
background.
2018-11-22 09:20:09 -06: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 Update documentation. 2018-11-22 09:20:09 -06: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 [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 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 Update documentation. 2018-11-22 09:20:09 -06:00
filesystem.cc Spliced out the FS wildcard stuff. 2017-01-19 17:06:35 -06:00
filesystem.h Use platform-specific user directory to store content. Create a file named portable.txt next to xenia.exe to restore previous behavior. 2018-11-21 18:07:45 -06:00
filesystem_posix.cc [Base] Fix missing include in filesystem_posix. 2018-11-22 06:41:58 -06: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 Use platform-specific user directory to store content. Create a file named portable.txt next to xenia.exe to restore previous behavior. 2018-11-21 18:07:45 -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] Undo last commit because it breaks file redirection. 2018-05-31 17:22:50 -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 Update documentation. 2018-11-22 09:20:09 -06: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 Update documentation. 2018-11-22 09:20:09 -06: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 Update documentation. 2018-11-22 09:20:09 -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 [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.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 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.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.