├── debian
├── compat
├── control
├── copyright
└── rules
├── debian_manager
├── compat
├── mxa-manager.sysuser
├── mxa-manager.sysusers
├── mxa-manager.service
├── control
├── copyright
└── rules
├── mxa_manager
├── .gitignore
├── include
│ ├── color_print.h
│ └── lock_table.h
└── mxa_manager.conf
├── mx_accl
├── pymodule
│ └── pybind11
├── ClassDiagram.cd
├── include
│ └── memx
│ │ └── accl
│ │ └── utils
│ │ ├── cpu_opts.h
│ │ ├── errors.h
│ │ └── macros.h
├── CMakeLists.txt
└── memx-accl.sln
├── misc
└── libmemx
│ ├── aarch64
│ └── libmemx.so
│ ├── riscv64
│ └── libmemx.so
│ └── x86_64
│ └── libmemx.so
├── figures
├── mx_accl.png
└── mx_accl_light.png
├── .gitmodules
├── extern
├── spdlog
│ ├── spdlog
│ │ ├── fmt
│ │ │ ├── bundled
│ │ │ │ ├── core.h
│ │ │ │ └── fmt.license.rst
│ │ │ ├── xchar.h
│ │ │ ├── chrono.h
│ │ │ ├── ostr.h
│ │ │ ├── ranges.h
│ │ │ ├── compile.h
│ │ │ ├── std.h
│ │ │ └── fmt.h
│ │ ├── details
│ │ │ ├── windows_include.h
│ │ │ ├── console_globals.h
│ │ │ ├── periodic_worker-inl.h
│ │ │ ├── synchronous_factory.h
│ │ │ ├── log_msg_buffer.h
│ │ │ ├── null_mutex.h
│ │ │ ├── backtracer.h
│ │ │ ├── log_msg.h
│ │ │ └── log_msg-inl.h
│ │ ├── fwd.h
│ │ ├── version.h
│ │ ├── formatter.h
│ │ ├── sinks
│ │ │ ├── sink-inl.h
│ │ │ ├── sink.h
│ │ │ ├── ostream_sink.h
│ │ │ ├── null_sink.h
│ │ │ ├── stdout_color_sinks-inl.h
│ │ │ └── basic_file_sink-inl.h
│ │ ├── cfg
│ │ │ ├── helpers.h
│ │ │ ├── env.h
│ │ │ └── argv.h
│ │ └── mdc.h
│ └── LICENSE
└── asio
│ ├── mxasio
│ ├── unyield.hpp
│ ├── yield.hpp
│ ├── ts
│ │ ├── io_context.hpp
│ │ ├── buffer.hpp
│ │ ├── net.hpp
│ │ ├── timer.hpp
│ │ ├── socket.hpp
│ │ ├── executor.hpp
│ │ └── internet.hpp
│ ├── detail
│ │ ├── limits.hpp
│ │ ├── cstddef.hpp
│ │ ├── array.hpp
│ │ ├── exception.hpp
│ │ ├── functional.hpp
│ │ ├── date_time_fwd.hpp
│ │ ├── regex_fwd.hpp
│ │ ├── array_fwd.hpp
│ │ ├── dependent_type.hpp
│ │ ├── win_iocp_thread_info.hpp
│ │ ├── impl
│ │ │ ├── thread_context.ipp
│ │ │ ├── posix_mutex.ipp
│ │ │ ├── posix_tss_ptr.ipp
│ │ │ ├── throw_error.ipp
│ │ │ └── win_tss_ptr.ipp
│ │ ├── assert.hpp
│ │ ├── operation.hpp
│ │ ├── cstdint.hpp
│ │ ├── noncopyable.hpp
│ │ ├── fd_set_adapter.hpp
│ │ ├── fenced_block.hpp
│ │ ├── null_fenced_block.hpp
│ │ ├── scheduler_thread_info.hpp
│ │ ├── resolve_op.hpp
│ │ ├── signal_init.hpp
│ │ ├── future.hpp
│ │ ├── non_const_lvalue.hpp
│ │ ├── wait_op.hpp
│ │ ├── event.hpp
│ │ ├── mutex.hpp
│ │ ├── timer_scheduler.hpp
│ │ ├── null_mutex.hpp
│ │ ├── global.hpp
│ │ ├── scheduler_task.hpp
│ │ ├── signal_op.hpp
│ │ ├── timer_scheduler_fwd.hpp
│ │ ├── null_static_mutex.hpp
│ │ ├── chrono.hpp
│ │ ├── signal_blocker.hpp
│ │ ├── null_global.hpp
│ │ ├── handler_cont_helpers.hpp
│ │ ├── null_tss_ptr.hpp
│ │ ├── std_fenced_block.hpp
│ │ ├── std_mutex.hpp
│ │ ├── select_interrupter.hpp
│ │ ├── source_location.hpp
│ │ ├── std_thread.hpp
│ │ ├── thread_context.hpp
│ │ ├── null_thread.hpp
│ │ ├── local_free_on_block_exit.hpp
│ │ ├── thread.hpp
│ │ ├── keyword_tss_ptr.hpp
│ │ ├── string_view.hpp
│ │ ├── posix_static_mutex.hpp
│ │ ├── static_mutex.hpp
│ │ ├── std_global.hpp
│ │ └── winrt_async_op.hpp
│ ├── io_service_strand.hpp
│ ├── buffered_stream_fwd.hpp
│ ├── version.hpp
│ ├── buffered_read_stream_fwd.hpp
│ ├── buffered_write_stream_fwd.hpp
│ ├── signal_set.hpp
│ ├── system_error.hpp
│ ├── static_thread_pool.hpp
│ ├── streambuf.hpp
│ ├── ssl.hpp
│ ├── io_service.hpp
│ ├── impl
│ │ ├── system_context.hpp
│ │ ├── executor.ipp
│ │ ├── multiple_exceptions.ipp
│ │ └── serial_port_base.hpp
│ ├── ssl
│ │ ├── impl
│ │ │ └── src.hpp
│ │ ├── detail
│ │ │ ├── openssl_types.hpp
│ │ │ └── verify_callback.hpp
│ │ └── stream_base.hpp
│ ├── associator.hpp
│ ├── stream_file.hpp
│ ├── basic_streambuf_fwd.hpp
│ ├── readable_pipe.hpp
│ ├── writable_pipe.hpp
│ ├── experimental
│ │ ├── append.hpp
│ │ ├── prepend.hpp
│ │ ├── as_tuple.hpp
│ │ ├── deferred.hpp
│ │ ├── detail
│ │ │ └── has_signature.hpp
│ │ └── impl
│ │ │ └── channel_error.ipp
│ ├── random_access_file.hpp
│ ├── serial_port.hpp
│ ├── posix
│ │ ├── descriptor.hpp
│ │ └── stream_descriptor.hpp
│ ├── execution
│ │ ├── impl
│ │ │ └── bad_executor.ipp
│ │ ├── invocable_archetype.hpp
│ │ └── bad_executor.hpp
│ ├── error_code.hpp
│ ├── windows
│ │ ├── stream_handle.hpp
│ │ ├── object_handle.hpp
│ │ ├── random_access_handle.hpp
│ │ └── overlapped_handle.hpp
│ ├── ip
│ │ ├── host_name.hpp
│ │ ├── resolver_query_base.hpp
│ │ └── impl
│ │ │ ├── basic_endpoint.hpp
│ │ │ ├── host_name.ipp
│ │ │ ├── network_v6.hpp
│ │ │ └── network_v4.hpp
│ ├── execution.hpp
│ ├── deadline_timer.hpp
│ ├── steady_timer.hpp
│ ├── system_timer.hpp
│ ├── high_resolution_timer.hpp
│ ├── is_executor.hpp
│ ├── is_contiguous_iterator.hpp
│ ├── multiple_exceptions.hpp
│ ├── wait_traits.hpp
│ └── handler_continuation_hook.hpp
│ └── LICENSE
├── .gitattributes
├── tools
├── CMakeLists.txt
└── acclBench
│ ├── CMakeLists.txt
│ ├── acclBench.vcxproj.filters
│ └── acclBench.sln
└── .gitignore
/debian/compat:
--------------------------------------------------------------------------------
1 | 10
2 |
--------------------------------------------------------------------------------
/debian_manager/compat:
--------------------------------------------------------------------------------
1 | 10
2 |
--------------------------------------------------------------------------------
/mxa_manager/.gitignore:
--------------------------------------------------------------------------------
1 | mxa_manager
2 |
--------------------------------------------------------------------------------
/mx_accl/pymodule/pybind11:
--------------------------------------------------------------------------------
1 | ../../extern/pybind11
--------------------------------------------------------------------------------
/debian_manager/mxa-manager.sysuser:
--------------------------------------------------------------------------------
1 | mxa-manager defaults
2 |
--------------------------------------------------------------------------------
/mx_accl/ClassDiagram.cd:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/misc/libmemx/aarch64/libmemx.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/memryx/MxAccl/HEAD/misc/libmemx/aarch64/libmemx.so
--------------------------------------------------------------------------------
/misc/libmemx/riscv64/libmemx.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/memryx/MxAccl/HEAD/misc/libmemx/riscv64/libmemx.so
--------------------------------------------------------------------------------
/misc/libmemx/x86_64/libmemx.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/memryx/MxAccl/HEAD/misc/libmemx/x86_64/libmemx.so
--------------------------------------------------------------------------------
/debian_manager/mxa-manager.sysusers:
--------------------------------------------------------------------------------
1 | g mxa-manager - -
2 | u mxa-manager - "MemryX MXA Manager Service"
3 |
--------------------------------------------------------------------------------
/figures/mx_accl.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f8c786bec7b2861f448a5ed1e51fc266fb3e1833a1cbeff8857fe3c9496daa93
3 | size 124812
4 |
--------------------------------------------------------------------------------
/figures/mx_accl_light.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0b5b93ea4962f4a7f492eb9f5b2a906ea90230d2a55734620bd23770d9f7d2b1
3 | size 134494
4 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "extern/pybind11"]
2 | path = extern/pybind11
3 | url = https://github.com/pybind/pybind11
4 | [submodule "extern/cpuinfo"]
5 | path = extern/cpuinfo
6 | url = https://github.com/pytorch/cpuinfo
7 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fmt/bundled/core.h:
--------------------------------------------------------------------------------
1 | // This file is only provided for compatibility and may be removed in future
2 | // versions. Use fmt/base.h if you don't need fmt::format and fmt/format.h
3 | // otherwise.
4 |
5 | #include "format.h"
6 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/details/windows_include.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #ifndef NOMINMAX
4 | #define NOMINMAX // prevent windows redefining min/max
5 | #endif
6 |
7 | #ifndef WIN32_LEAN_AND_MEAN
8 | #define WIN32_LEAN_AND_MEAN
9 | #endif
10 |
11 | #include
12 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.dfp filter=lfs diff=lfs merge=lfs -text
2 | *.jpg filter=lfs diff=lfs merge=lfs -text
3 | *.png filter=lfs diff=lfs merge=lfs -text
4 | *.mp4 filter=lfs diff=lfs merge=lfs -text
5 | *.onnx filter=lfs diff=lfs merge=lfs -text
6 | *.tflite filter=lfs diff=lfs merge=lfs -text
7 | *.pb filter=lfs diff=lfs merge=lfs -text
8 |
--------------------------------------------------------------------------------
/debian_manager/mxa-manager.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=The MemryX MX3 device management daemon.
3 |
4 | [Service]
5 | TimeoutStartSec=30
6 | ExecStartPre=/bin/sleep 2
7 | ExecStart=/usr/bin/mxa_manager
8 | Restart=on-failure
9 | RestartSec=2
10 | RuntimeDirectory=mxa_manager
11 | RuntimeDirectoryMode=0777
12 | User=mxa-manager
13 |
14 | [Install]
15 | WantedBy=multi-user.target
16 |
--------------------------------------------------------------------------------
/debian/control:
--------------------------------------------------------------------------------
1 | Source: memx-accl
2 | Maintainer: MemryX
3 | Build-Depends: debhelper (>= 10), memx-drivers (>= 2.1.0), memx-drivers (<< 2.2.0)
4 |
5 | Package: memx-accl
6 | Architecture: amd64 arm64 riscv64
7 | Recommends: mxa-manager
8 | Depends: memx-drivers (>= 2.1.0), memx-drivers (<< 2.2.0), ${shlibs:Depends}, ${misc:Depends}
9 | Description: MemryX Runtime API library for C++
10 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fwd.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | namespace spdlog {
7 | class logger;
8 | class formatter;
9 |
10 | namespace sinks {
11 | class sink;
12 | }
13 |
14 | namespace level {
15 | enum level_enum : int;
16 | }
17 |
18 | } // namespace spdlog
19 |
--------------------------------------------------------------------------------
/tools/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | SUBDIRLIST(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR} "*")
2 |
3 | FOREACH(subdir ${SUBDIRS})
4 | if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/CMakeLists.txt)
5 | if ("${CMAKE_BUILD_TYPE}" STREQUAL "Packaging")
6 | if(NOT ${subdir} STREQUAL "acclBench")
7 | continue()
8 | endif()
9 | endif()
10 | ADD_SUBDIRECTORY(${subdir})
11 | endif()
12 | ENDFOREACH()
13 |
--------------------------------------------------------------------------------
/debian_manager/control:
--------------------------------------------------------------------------------
1 | Source: mxa-manager
2 | Maintainer: MemryX
3 | Build-Depends: debhelper (>= 13.3), memx-drivers (>= 2.1.0), memx-drivers (<< 2.2.0), memx-accl (>= 2.1.0), memx-accl (<< 2.2.0), systemd-sysusers | dh-sysuser
4 |
5 | Package: mxa-manager
6 | Architecture: amd64 arm64 riscv64
7 | Depends: memx-accl (>= 2.1.0), memx-accl (<< 2.2.0), ${shlibs:Depends}, ${misc:Depends}
8 | Description: Hardware management daemon for MemryX MXAs
9 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/version.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #define SPDLOG_VER_MAJOR 1
7 | #define SPDLOG_VER_MINOR 15
8 | #define SPDLOG_VER_PATCH 3
9 |
10 | #define SPDLOG_TO_VERSION(major, minor, patch) (major * 10000 + minor * 100 + patch)
11 | #define SPDLOG_VERSION SPDLOG_TO_VERSION(SPDLOG_VER_MAJOR, SPDLOG_VER_MINOR, SPDLOG_VER_PATCH)
12 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/unyield.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // unyield.hpp
3 | // ~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifdef reenter
12 | # undef reenter
13 | #endif
14 |
15 | #ifdef yield
16 | # undef yield
17 | #endif
18 |
19 | #ifdef fork
20 | # undef fork
21 | #endif
22 |
--------------------------------------------------------------------------------
/tools/acclBench/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.10)
2 |
3 | get_filename_component(app_name ${CMAKE_CURRENT_SOURCE_DIR} NAME)
4 |
5 | set(CMAKE_CXX_STANDARD 17)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 |
8 | include_directories(${MX_API_DIR}/include)
9 |
10 | file(GLOB local_src
11 | "*.c"
12 | "*.cpp"
13 | )
14 |
15 | add_executable(${app_name} ${local_src})
16 |
17 | target_link_libraries(${app_name} mx_accl )
18 |
19 | install(TARGETS ${app_name} DESTINATION ${CMAKE_INSTALL_BINDIR})
20 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/formatter.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 | #include
8 |
9 | namespace spdlog {
10 |
11 | class formatter {
12 | public:
13 | virtual ~formatter() = default;
14 | virtual void format(const details::log_msg &msg, memory_buf_t &dest) = 0;
15 | virtual std::unique_ptr clone() const = 0;
16 | };
17 | } // namespace spdlog
18 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/yield.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // yield.hpp
3 | // ~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #include "coroutine.hpp"
12 |
13 | #ifndef reenter
14 | # define reenter(c) MXASIO_CORO_REENTER(c)
15 | #endif
16 |
17 | #ifndef yield
18 | # define yield MXASIO_CORO_YIELD
19 | #endif
20 |
21 | #ifndef fork
22 | # define fork MXASIO_CORO_FORK
23 | #endif
24 |
--------------------------------------------------------------------------------
/debian/copyright:
--------------------------------------------------------------------------------
1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2 | Source: https://github.com/memryx/MxAccl
3 | Upstream-Name: MemryX ACCeLerator Runtime (C++)
4 | Files:
5 | *
6 | Copyright: 2025, MemryX
7 | License: MPL-2.0
8 | This Source Code Form is subject to the terms of the Mozilla Public
9 | License, v. 2.0. If a copy of the MPL was not distributed with this
10 | file, You can obtain one at http://mozilla.org/MPL/2.0/.
11 | Comment:
12 | On Debian systems, the full text of the Mozilla Public License version 2.0
13 | can be found in `/usr/share/common-licenses/MPL-2.0'.
14 |
--------------------------------------------------------------------------------
/debian_manager/copyright:
--------------------------------------------------------------------------------
1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2 | Source: https://github.com/memryx/MxAccl
3 | Upstream-Name: MemryX ACCeLerator Runtime (C++)
4 | Files:
5 | *
6 | Copyright: 2025, MemryX
7 | License: MPL-2.0
8 | This Source Code Form is subject to the terms of the Mozilla Public
9 | License, v. 2.0. If a copy of the MPL was not distributed with this
10 | file, You can obtain one at http://mozilla.org/MPL/2.0/.
11 | Comment:
12 | On Debian systems, the full text of the Mozilla Public License version 2.0
13 | can be found in `/usr/share/common-licenses/MPL-2.0'.
14 |
15 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ts/io_context.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/io_context.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_TS_IO_CONTEXT_HPP
12 | #define MXASIO_TS_IO_CONTEXT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/io_context.hpp"
19 |
20 | #endif // MXASIO_TS_IO_CONTEXT_HPP
21 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/limits.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/limits.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_LIMITS_HPP
12 | #define MXASIO_DETAIL_LIMITS_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 |
21 | #endif // MXASIO_DETAIL_LIMITS_HPP
22 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fmt/xchar.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright(c) 2016 Gabi Melman.
3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 | //
5 |
6 | #pragma once
7 | //
8 | // include bundled or external copy of fmtlib's xchar support
9 | //
10 | #include
11 |
12 | #if !defined(SPDLOG_USE_STD_FORMAT)
13 | #if !defined(SPDLOG_FMT_EXTERNAL)
14 | #ifdef SPDLOG_HEADER_ONLY
15 | #ifndef FMT_HEADER_ONLY
16 | #define FMT_HEADER_ONLY
17 | #endif
18 | #endif
19 | #include
20 | #else
21 | #include
22 | #endif
23 | #endif
24 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/io_service_strand.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // io_service_strand.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IO_SERVICE_STRAND_HPP
12 | #define MXASIO_IO_SERVICE_STRAND_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/io_context_strand.hpp"
19 |
20 | #endif // MXASIO_IO_SERVICE_STRAND_HPP
21 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fmt/chrono.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright(c) 2016 Gabi Melman.
3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 | //
5 |
6 | #pragma once
7 | //
8 | // include bundled or external copy of fmtlib's chrono support
9 | //
10 | #include
11 |
12 | #if !defined(SPDLOG_USE_STD_FORMAT)
13 | #if !defined(SPDLOG_FMT_EXTERNAL)
14 | #ifdef SPDLOG_HEADER_ONLY
15 | #ifndef FMT_HEADER_ONLY
16 | #define FMT_HEADER_ONLY
17 | #endif
18 | #endif
19 | #include
20 | #else
21 | #include
22 | #endif
23 | #endif
24 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fmt/ostr.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright(c) 2016 Gabi Melman.
3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 | //
5 |
6 | #pragma once
7 | //
8 | // include bundled or external copy of fmtlib's ostream support
9 | //
10 | #include
11 |
12 | #if !defined(SPDLOG_USE_STD_FORMAT)
13 | #if !defined(SPDLOG_FMT_EXTERNAL)
14 | #ifdef SPDLOG_HEADER_ONLY
15 | #ifndef FMT_HEADER_ONLY
16 | #define FMT_HEADER_ONLY
17 | #endif
18 | #endif
19 | #include
20 | #else
21 | #include
22 | #endif
23 | #endif
24 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fmt/ranges.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright(c) 2016 Gabi Melman.
3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 | //
5 |
6 | #pragma once
7 | //
8 | // include bundled or external copy of fmtlib's ranges support
9 | //
10 | #include
11 |
12 | #if !defined(SPDLOG_USE_STD_FORMAT)
13 | #if !defined(SPDLOG_FMT_EXTERNAL)
14 | #ifdef SPDLOG_HEADER_ONLY
15 | #ifndef FMT_HEADER_ONLY
16 | #define FMT_HEADER_ONLY
17 | #endif
18 | #endif
19 | #include
20 | #else
21 | #include
22 | #endif
23 | #endif
24 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fmt/compile.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright(c) 2016 Gabi Melman.
3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 | //
5 |
6 | #pragma once
7 | //
8 | // include bundled or external copy of fmtlib's compile-time support
9 | //
10 | #include
11 |
12 | #if !defined(SPDLOG_USE_STD_FORMAT)
13 | #if !defined(SPDLOG_FMT_EXTERNAL)
14 | #ifdef SPDLOG_HEADER_ONLY
15 | #ifndef FMT_HEADER_ONLY
16 | #define FMT_HEADER_ONLY
17 | #endif
18 | #endif
19 | #include
20 | #else
21 | #include
22 | #endif
23 | #endif
24 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/buffered_stream_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // buffered_stream_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_BUFFERED_STREAM_FWD_HPP
12 | #define MXASIO_BUFFERED_STREAM_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | namespace mxasio {
19 |
20 | template
21 | class buffered_stream;
22 |
23 | } // namespace mxasio
24 |
25 | #endif // MXASIO_BUFFERED_STREAM_FWD_HPP
26 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ts/buffer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/buffer.hpp
3 | // ~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_TS_BUFFER_HPP
12 | #define MXASIO_TS_BUFFER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/buffer.hpp"
19 | #include "mxasio/completion_condition.hpp"
20 | #include "mxasio/read.hpp"
21 | #include "mxasio/write.hpp"
22 | #include "mxasio/read_until.hpp"
23 |
24 | #endif // MXASIO_TS_BUFFER_HPP
25 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/details/console_globals.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 | #include
8 |
9 | namespace spdlog {
10 | namespace details {
11 |
12 | struct console_mutex {
13 | using mutex_t = std::mutex;
14 | static mutex_t &mutex() {
15 | static mutex_t s_mutex;
16 | return s_mutex;
17 | }
18 | };
19 |
20 | struct console_nullmutex {
21 | using mutex_t = null_mutex;
22 | static mutex_t &mutex() {
23 | static mutex_t s_mutex;
24 | return s_mutex;
25 | }
26 | };
27 | } // namespace details
28 | } // namespace spdlog
29 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fmt/std.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright(c) 2016 Gabi Melman.
3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 | //
5 |
6 | #pragma once
7 | //
8 | // include bundled or external copy of fmtlib's std support (for formatting e.g.
9 | // std::filesystem::path, std::thread::id, std::monostate, std::variant, ...)
10 | //
11 | #include
12 |
13 | #if !defined(SPDLOG_USE_STD_FORMAT)
14 | #if !defined(SPDLOG_FMT_EXTERNAL)
15 | #ifdef SPDLOG_HEADER_ONLY
16 | #ifndef FMT_HEADER_ONLY
17 | #define FMT_HEADER_ONLY
18 | #endif
19 | #endif
20 | #include
21 | #else
22 | #include
23 | #endif
24 | #endif
25 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/cstddef.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/cstddef.hpp
3 | // ~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_CSTDDEF_HPP
12 | #define MXASIO_DETAIL_CSTDDEF_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 |
21 | namespace mxasio {
22 |
23 | using std::nullptr_t;
24 |
25 | } // namespace mxasio
26 |
27 | #endif // MXASIO_DETAIL_CSTDDEF_HPP
28 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/details/periodic_worker-inl.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #ifndef SPDLOG_HEADER_ONLY
7 | #include
8 | #endif
9 |
10 | namespace spdlog {
11 | namespace details {
12 |
13 | // stop the worker thread and join it
14 | SPDLOG_INLINE periodic_worker::~periodic_worker() {
15 | if (worker_thread_.joinable()) {
16 | {
17 | std::lock_guard lock(mutex_);
18 | active_ = false;
19 | }
20 | cv_.notify_one();
21 | worker_thread_.join();
22 | }
23 | }
24 |
25 | } // namespace details
26 | } // namespace spdlog
27 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/version.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // version.hpp
3 | // ~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_VERSION_HPP
12 | #define MXASIO_VERSION_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | // MXASIO_VERSION % 100 is the sub-minor version
19 | // MXASIO_VERSION / 100 % 1000 is the minor version
20 | // MXASIO_VERSION / 100000 is the major version
21 | #define MXASIO_VERSION 103002 // 1.30.2
22 |
23 | #endif // MXASIO_VERSION_HPP
24 |
--------------------------------------------------------------------------------
/mx_accl/include/memx/accl/utils/cpu_opts.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 MemryX
2 | // SPDX-License-Identifier: MPL-2.0
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla Public
5 | // License, v. 2.0. If a copy of the MPL was not distributed with this
6 | // file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef CPU_OPTS_H
9 | #define CPU_OPTS_H
10 |
11 | #pragma once
12 |
13 | namespace MX {
14 | namespace Utils {
15 |
16 | /**
17 | * @brief Sets the CPU affinity of the current thread and all children to the big cores.
18 | *
19 | * @param min_num_cores Minimum number of big cores needed on system in order to restrict affinity.
20 | */
21 | void set_self_affinity_to_big_cores(uint32_t min_num_cores);
22 |
23 | }
24 | }
25 |
26 | #endif // CPU_OPTS_H
27 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/buffered_read_stream_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // buffered_read_stream_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_BUFFERED_READ_STREAM_FWD_HPP
12 | #define MXASIO_BUFFERED_READ_STREAM_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | namespace mxasio {
19 |
20 | template
21 | class buffered_read_stream;
22 |
23 | } // namespace mxasio
24 |
25 | #endif // MXASIO_BUFFERED_READ_STREAM_FWD_HPP
26 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/buffered_write_stream_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // buffered_write_stream_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_BUFFERED_WRITE_STREAM_FWD_HPP
12 | #define MXASIO_BUFFERED_WRITE_STREAM_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | namespace mxasio {
19 |
20 | template
21 | class buffered_write_stream;
22 |
23 | } // namespace mxasio
24 |
25 | #endif // MXASIO_BUFFERED_WRITE_STREAM_FWD_HPP
26 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/array.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/array.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_ARRAY_HPP
12 | #define MXASIO_DETAIL_ARRAY_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #include
21 |
22 | namespace mxasio {
23 | namespace detail {
24 |
25 | using std::array;
26 |
27 | } // namespace detail
28 | } // namespace mxasio
29 |
30 | #endif // MXASIO_DETAIL_ARRAY_HPP
31 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ts/net.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/net.hpp
3 | // ~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_TS_NET_HPP
12 | #define MXASIO_TS_NET_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/ts/netfwd.hpp"
19 | #include "mxasio/ts/executor.hpp"
20 | #include "mxasio/ts/io_context.hpp"
21 | #include "mxasio/ts/timer.hpp"
22 | #include "mxasio/ts/buffer.hpp"
23 | #include "mxasio/ts/socket.hpp"
24 | #include "mxasio/ts/internet.hpp"
25 |
26 | #endif // MXASIO_TS_NET_HPP
27 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/signal_set.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // signal_set.hpp
3 | // ~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_SIGNAL_SET_HPP
12 | #define MXASIO_SIGNAL_SET_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/basic_signal_set.hpp"
20 |
21 | namespace mxasio {
22 |
23 | /// Typedef for the typical usage of a signal set.
24 | typedef basic_signal_set<> signal_set;
25 |
26 | } // namespace mxasio
27 |
28 | #endif // MXASIO_SIGNAL_SET_HPP
29 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ts/timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/timer.hpp
3 | // ~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_TS_TIMER_HPP
12 | #define MXASIO_TS_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/chrono.hpp"
19 |
20 | #include "mxasio/wait_traits.hpp"
21 | #include "mxasio/basic_waitable_timer.hpp"
22 | #include "mxasio/system_timer.hpp"
23 | #include "mxasio/steady_timer.hpp"
24 | #include "mxasio/high_resolution_timer.hpp"
25 |
26 | #endif // MXASIO_TS_TIMER_HPP
27 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/sinks/sink-inl.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #ifndef SPDLOG_HEADER_ONLY
7 | #include
8 | #endif
9 |
10 | #include
11 |
12 | SPDLOG_INLINE bool spdlog::sinks::sink::should_log(spdlog::level::level_enum msg_level) const {
13 | return msg_level >= level_.load(std::memory_order_relaxed);
14 | }
15 |
16 | SPDLOG_INLINE void spdlog::sinks::sink::set_level(level::level_enum log_level) {
17 | level_.store(log_level, std::memory_order_relaxed);
18 | }
19 |
20 | SPDLOG_INLINE spdlog::level::level_enum spdlog::sinks::sink::level() const {
21 | return static_cast(level_.load(std::memory_order_relaxed));
22 | }
23 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/exception.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/exception.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_EXCEPTION_HPP
12 | #define MXASIO_DETAIL_EXCEPTION_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 |
21 | namespace mxasio {
22 |
23 | using std::exception_ptr;
24 | using std::current_exception;
25 | using std::rethrow_exception;
26 |
27 | } // namespace mxasio
28 |
29 | #endif // MXASIO_DETAIL_EXCEPTION_HPP
30 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/cfg/helpers.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 | #include
8 |
9 | namespace spdlog {
10 | namespace cfg {
11 | namespace helpers {
12 | //
13 | // Init levels from given string
14 | //
15 | // Examples:
16 | //
17 | // set global level to debug: "debug"
18 | // turn off all logging except for logger1: "off,logger1=debug"
19 | // turn off all logging except for logger1 and logger2: "off,logger1=debug,logger2=info"
20 | //
21 | SPDLOG_API void load_levels(const std::string &txt);
22 | } // namespace helpers
23 |
24 | } // namespace cfg
25 | } // namespace spdlog
26 |
27 | #ifdef SPDLOG_HEADER_ONLY
28 | #include "helpers-inl.h"
29 | #endif // SPDLOG_HEADER_ONLY
30 |
--------------------------------------------------------------------------------
/debian/rules:
--------------------------------------------------------------------------------
1 | #!/usr/bin/make -f
2 |
3 | DH_VERBOSE = 1
4 |
5 | include /usr/share/dpkg/pkg-info.mk
6 | include /usr/share/dpkg/architecture.mk
7 |
8 | %:
9 | dh $@
10 |
11 | override_dh_install:
12 | dh_install build/mx_accl/libmx_accl.so.2 usr/lib/$(DEB_HOST_GNU_CPU)-linux-gnu/
13 | dh_link usr/lib/$(DEB_HOST_GNU_CPU)-linux-gnu/libmx_accl.so.2 usr/lib/$(DEB_HOST_GNU_CPU)-linux-gnu/libmx_accl.so
14 | dh_install mx_accl/include/memx/* usr/include/memx/
15 | dh_install build/samples/acclBench/acclBench usr/bin/
16 |
17 | override_dh_shlibdeps:
18 | dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
19 |
20 | override_dh_auto_configure:
21 | override_dh_auto_build:
22 | override_dh_auto_test:
23 |
24 | override_dh_auto_install:
25 | rm -rf build ; mkdir build ; cd build ; cmake -DCMAKE_BUILD_TYPE=Packaging .. && make -j 8
26 |
27 | override_dh_auto_clean:
28 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/details/synchronous_factory.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include "registry.h"
7 |
8 | namespace spdlog {
9 |
10 | // Default logger factory- creates synchronous loggers
11 | class logger;
12 |
13 | struct synchronous_factory {
14 | template
15 | static std::shared_ptr create(std::string logger_name, SinkArgs &&...args) {
16 | auto sink = std::make_shared(std::forward(args)...);
17 | auto new_logger = std::make_shared(std::move(logger_name), std::move(sink));
18 | details::registry::instance().initialize_logger(new_logger);
19 | return new_logger;
20 | }
21 | };
22 | } // namespace spdlog
23 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/system_error.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // system_error.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_SYSTEM_ERROR_HPP
12 | #define MXASIO_SYSTEM_ERROR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 |
25 | typedef std::system_error system_error;
26 |
27 | } // namespace mxasio
28 |
29 | #include "mxasio/detail/pop_options.hpp"
30 |
31 | #endif // MXASIO_SYSTEM_ERROR_HPP
32 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/functional.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/functional.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_FUNCTIONAL_HPP
12 | #define MXASIO_DETAIL_FUNCTIONAL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 |
21 | namespace mxasio {
22 | namespace detail {
23 |
24 | using std::function;
25 |
26 | } // namespace detail
27 |
28 | using std::ref;
29 | using std::reference_wrapper;
30 |
31 | } // namespace mxasio
32 |
33 | #endif // MXASIO_DETAIL_FUNCTIONAL_HPP
34 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/static_thread_pool.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // static_thread_pool.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_STATIC_THREAD_POOL_HPP
12 | #define MXASIO_STATIC_THREAD_POOL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/thread_pool.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 |
25 | typedef thread_pool static_thread_pool;
26 |
27 | } // namespace mxasio
28 |
29 | #include "mxasio/detail/pop_options.hpp"
30 |
31 | #endif // MXASIO_STATIC_THREAD_POOL_HPP
32 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/streambuf.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // streambuf.hpp
3 | // ~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_STREAMBUF_HPP
12 | #define MXASIO_STREAMBUF_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_NO_IOSTREAM)
21 |
22 | #include "mxasio/basic_streambuf.hpp"
23 |
24 | namespace mxasio {
25 |
26 | /// Typedef for the typical usage of basic_streambuf.
27 | typedef basic_streambuf<> streambuf;
28 |
29 | } // namespace mxasio
30 |
31 | #endif // !defined(MXASIO_NO_IOSTREAM)
32 |
33 | #endif // MXASIO_STREAMBUF_HPP
34 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ssl.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl.hpp
3 | // ~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_SSL_HPP
12 | #define MXASIO_SSL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/ssl/context.hpp"
19 | #include "mxasio/ssl/context_base.hpp"
20 | #include "mxasio/ssl/error.hpp"
21 | #include "mxasio/ssl/rfc2818_verification.hpp"
22 | #include "mxasio/ssl/host_name_verification.hpp"
23 | #include "mxasio/ssl/stream.hpp"
24 | #include "mxasio/ssl/stream_base.hpp"
25 | #include "mxasio/ssl/verify_context.hpp"
26 | #include "mxasio/ssl/verify_mode.hpp"
27 |
28 | #endif // MXASIO_SSL_HPP
29 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ts/socket.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/socket.hpp
3 | // ~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_TS_SOCKET_HPP
12 | #define MXASIO_TS_SOCKET_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/socket_base.hpp"
19 | #include "mxasio/basic_socket.hpp"
20 | #include "mxasio/basic_datagram_socket.hpp"
21 | #include "mxasio/basic_stream_socket.hpp"
22 | #include "mxasio/basic_socket_acceptor.hpp"
23 | #include "mxasio/basic_socket_streambuf.hpp"
24 | #include "mxasio/basic_socket_iostream.hpp"
25 | #include "mxasio/connect.hpp"
26 |
27 | #endif // MXASIO_TS_SOCKET_HPP
28 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/date_time_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/date_time_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_DATE_TIME_FWD_HPP
12 | #define MXASIO_DETAIL_DATE_TIME_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | namespace boost {
21 | namespace date_time {
22 |
23 | template
24 | class base_time;
25 |
26 | } // namespace date_time
27 | namespace posix_time {
28 |
29 | class ptime;
30 |
31 | } // namespace posix_time
32 | } // namespace boost
33 |
34 | #endif // MXASIO_DETAIL_DATE_TIME_FWD_HPP
35 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/io_service.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // io_service.hpp
3 | // ~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IO_SERVICE_HPP
12 | #define MXASIO_IO_SERVICE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/io_context.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 |
24 | #if !defined(MXASIO_NO_DEPRECATED)
25 | /// Typedef for backwards compatibility.
26 | typedef io_context io_service;
27 | #endif // !defined(MXASIO_NO_DEPRECATED)
28 |
29 | } // namespace mxasio
30 |
31 | #include "mxasio/detail/pop_options.hpp"
32 |
33 | #endif // MXASIO_IO_SERVICE_HPP
34 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fmt/fmt.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright(c) 2016-2018 Gabi Melman.
3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 | //
5 |
6 | #pragma once
7 |
8 | //
9 | // Include a bundled header-only copy of fmtlib or an external one.
10 | // By default spdlog include its own copy.
11 | //
12 | #include
13 |
14 | #if defined(SPDLOG_USE_STD_FORMAT) // SPDLOG_USE_STD_FORMAT is defined - use std::format
15 | #include
16 | #elif !defined(SPDLOG_FMT_EXTERNAL)
17 | #if !defined(SPDLOG_COMPILED_LIB) && !defined(FMT_HEADER_ONLY)
18 | #define FMT_HEADER_ONLY
19 | #endif
20 | #ifndef FMT_USE_WINDOWS_H
21 | #define FMT_USE_WINDOWS_H 0
22 | #endif
23 |
24 | #include
25 | #include
26 |
27 | #else // SPDLOG_FMT_EXTERNAL is defined - use external fmtlib
28 | #include
29 | #include
30 | #endif
31 |
--------------------------------------------------------------------------------
/mx_accl/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | include_directories("${MX_API_DIR}/include/")
2 |
3 | file(GLOB local_src src/*.cpp src/utils/*.cpp)
4 |
5 | add_library(${MXACCL_DYNAMIC} SHARED ${local_src})
6 | target_link_libraries(${MXACCL_DYNAMIC} memx pthread dl cpuinfo)
7 | set_target_properties(${MXACCL_DYNAMIC} PROPERTIES SOVERSION 2)
8 |
9 | target_compile_options(${MXACCL_DYNAMIC} PRIVATE -Werror)
10 |
11 | target_include_directories(${MXACCL_DYNAMIC} PRIVATE ${MX_API_HOME_DIR}/extern/asio)
12 | target_include_directories(${MXACCL_DYNAMIC} PRIVATE ${MX_API_HOME_DIR}/extern/spdlog)
13 |
14 | install(TARGETS ${MXACCL_DYNAMIC}
15 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
16 | PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
17 | )
18 |
19 | install(DIRECTORY ${MX_API_DIR}/include/memx/ DESTINATION include/memx)
20 |
21 |
22 | if(CMAKE_BUILD_TYPE MATCHES "Debug")
23 | target_link_options(${MXACCL_DYNAMIC}
24 | BEFORE PUBLIC PUBLIC
25 | )
26 | endif()
27 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/impl/system_context.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/system_context.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IMPL_SYSTEM_CONTEXT_HPP
12 | #define MXASIO_IMPL_SYSTEM_CONTEXT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/system_executor.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 |
24 | inline system_context::executor_type
25 | system_context::get_executor() noexcept
26 | {
27 | return system_executor();
28 | }
29 |
30 | } // namespace mxasio
31 |
32 | #include "mxasio/detail/pop_options.hpp"
33 |
34 | #endif // MXASIO_IMPL_SYSTEM_CONTEXT_HPP
35 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ssl/impl/src.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/ssl/src.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_SSL_IMPL_SRC_HPP
12 | #define MXASIO_SSL_IMPL_SRC_HPP
13 |
14 | #define MXASIO_SOURCE
15 |
16 | #include "mxasio/detail/config.hpp"
17 |
18 | #if defined(MXASIO_HEADER_ONLY)
19 | # error Do not compile Asio library source with MXASIO_HEADER_ONLY defined
20 | #endif
21 |
22 | #include "mxasio/ssl/impl/context.ipp"
23 | #include "mxasio/ssl/impl/error.ipp"
24 | #include "mxasio/ssl/detail/impl/engine.ipp"
25 | #include "mxasio/ssl/detail/impl/openssl_init.ipp"
26 | #include "mxasio/ssl/impl/host_name_verification.ipp"
27 | #include "mxasio/ssl/impl/rfc2818_verification.ipp"
28 |
29 | #endif // MXASIO_SSL_IMPL_SRC_HPP
30 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/regex_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/regex_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_REGEX_FWD_HPP
12 | #define MXASIO_DETAIL_REGEX_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #if defined(MXASIO_HAS_BOOST_REGEX)
19 |
20 | namespace boost {
21 |
22 | template
23 | struct sub_match;
24 |
25 | template
26 | class match_results;
27 |
28 | template
29 | class basic_regex;
30 |
31 | } // namespace boost
32 |
33 | #endif // defined(MXASIO_HAS_BOOST_REGEX)
34 |
35 | #endif // MXASIO_DETAIL_REGEX_FWD_HPP
36 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/associator.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // associator.hpp
3 | // ~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_ASSOCIATOR_HPP
12 | #define MXASIO_ASSOCIATOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 |
24 | /// Used to generically specialise associators for a type.
25 | template class Associator,
26 | typename T, typename DefaultCandidate>
27 | struct associator
28 | {
29 | };
30 |
31 | } // namespace mxasio
32 |
33 | #include "mxasio/detail/pop_options.hpp"
34 |
35 | #endif // MXASIO_ASSOCIATOR_HPP
36 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/array_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/array_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_ARRAY_FWD_HPP
12 | #define MXASIO_DETAIL_ARRAY_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | namespace boost {
21 |
22 | template
23 | class array;
24 |
25 | } // namespace boost
26 |
27 | // Standard library components can't be forward declared, so we'll have to
28 | // include the array header. Fortunately, it's fairly lightweight and doesn't
29 | // add significantly to the compile time.
30 | #include
31 |
32 | #endif // MXASIO_DETAIL_ARRAY_FWD_HPP
33 |
--------------------------------------------------------------------------------
/mxa_manager/include/color_print.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 MemryX
2 | // SPDX-License-Identifier: MPL-2.0
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla Public
5 | // License, v. 2.0. If a copy of the MPL was not distributed with this
6 | // file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef COLOR_PRINT_H
9 | #define COLOR_PRINT_H
10 |
11 | #pragma once
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 |
19 |
20 | // adds:
21 | //
22 | // 1. typedef enum of colors
23 | // 2. void color_printf(color, tag string, const char *fmt, ...);
24 |
25 | typedef enum : uint8_t {
26 | COLOR_RESET = 0,
27 | COLOR_RED,
28 | COLOR_GREEN,
29 | COLOR_YELLOW,
30 | COLOR_BLUE,
31 | COLOR_MAGENTA,
32 | COLOR_CYAN,
33 | COLOR_WHITE
34 | } color_t;
35 |
36 | void tag_printf(color_t c, const char* tag, int num, const char* fmt, ...);
37 |
38 | #endif // COLOR_PRINT_H
39 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/dependent_type.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/dependent_type.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_DEPENDENT_TYPE_HPP
12 | #define MXASIO_DETAIL_DEPENDENT_TYPE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 | namespace detail {
24 |
25 | template
26 | struct dependent_type
27 | {
28 | typedef T type;
29 | };
30 |
31 | } // namespace detail
32 | } // namespace mxasio
33 |
34 | #include "mxasio/detail/pop_options.hpp"
35 |
36 | #endif // MXASIO_DETAIL_DEPENDENT_TYPE_HPP
37 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/win_iocp_thread_info.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/win_iocp_thread_info.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP
12 | #define MXASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/thread_info_base.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 | namespace detail {
24 |
25 | struct win_iocp_thread_info : public thread_info_base
26 | {
27 | };
28 |
29 | } // namespace detail
30 | } // namespace mxasio
31 |
32 | #include "mxasio/detail/pop_options.hpp"
33 |
34 | #endif // MXASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP
35 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/stream_file.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // stream_file.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_STREAM_FILE_HPP
12 | #define MXASIO_STREAM_FILE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_FILE) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "mxasio/basic_stream_file.hpp"
24 |
25 | namespace mxasio {
26 |
27 | /// Typedef for the typical usage of a stream-oriented file.
28 | typedef basic_stream_file<> stream_file;
29 |
30 | } // namespace mxasio
31 |
32 | #endif // defined(MXASIO_HAS_FILE)
33 | // || defined(GENERATING_DOCUMENTATION)
34 |
35 | #endif // MXASIO_STREAM_FILE_HPP
36 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/basic_streambuf_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // basic_streambuf_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_BASIC_STREAMBUF_FWD_HPP
12 | #define MXASIO_BASIC_STREAMBUF_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_NO_IOSTREAM)
21 |
22 | #include
23 |
24 | namespace mxasio {
25 |
26 | template >
27 | class basic_streambuf;
28 |
29 | template >
30 | class basic_streambuf_ref;
31 |
32 | } // namespace mxasio
33 |
34 | #endif // !defined(MXASIO_NO_IOSTREAM)
35 |
36 | #endif // MXASIO_BASIC_STREAMBUF_FWD_HPP
37 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/readable_pipe.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // readable_pipe.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_READABLE_PIPE_HPP
12 | #define MXASIO_READABLE_PIPE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_PIPE) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "mxasio/basic_readable_pipe.hpp"
24 |
25 | namespace mxasio {
26 |
27 | /// Typedef for the typical usage of a readable pipe.
28 | typedef basic_readable_pipe<> readable_pipe;
29 |
30 | } // namespace mxasio
31 |
32 | #endif // defined(MXASIO_HAS_PIPE)
33 | // || defined(GENERATING_DOCUMENTATION)
34 |
35 | #endif // MXASIO_READABLE_PIPE_HPP
36 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/writable_pipe.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // writable_pipe.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_WRITABLE_PIPE_HPP
12 | #define MXASIO_WRITABLE_PIPE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_PIPE) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "mxasio/basic_writable_pipe.hpp"
24 |
25 | namespace mxasio {
26 |
27 | /// Typedef for the typical usage of a writable pipe.
28 | typedef basic_writable_pipe<> writable_pipe;
29 |
30 | } // namespace mxasio
31 |
32 | #endif // defined(MXASIO_HAS_PIPE)
33 | // || defined(GENERATING_DOCUMENTATION)
34 |
35 | #endif // MXASIO_WRITABLE_PIPE_HPP
36 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/impl/thread_context.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/impl/thread_context.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_IMPL_THREAD_CONTEXT_IPP
12 | #define MXASIO_DETAIL_IMPL_THREAD_CONTEXT_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 | namespace detail {
24 |
25 | thread_info_base* thread_context::top_of_thread_call_stack()
26 | {
27 | return thread_call_stack::top();
28 | }
29 |
30 | } // namespace detail
31 | } // namespace mxasio
32 |
33 | #include "mxasio/detail/pop_options.hpp"
34 |
35 | #endif // MXASIO_DETAIL_IMPL_THREAD_CONTEXT_IPP
36 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/sinks/sink.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 | #include
8 |
9 | namespace spdlog {
10 |
11 | namespace sinks {
12 | class SPDLOG_API sink {
13 | public:
14 | virtual ~sink() = default;
15 | virtual void log(const details::log_msg &msg) = 0;
16 | virtual void flush() = 0;
17 | virtual void set_pattern(const std::string &pattern) = 0;
18 | virtual void set_formatter(std::unique_ptr sink_formatter) = 0;
19 |
20 | void set_level(level::level_enum log_level);
21 | level::level_enum level() const;
22 | bool should_log(level::level_enum msg_level) const;
23 |
24 | protected:
25 | // sink log level - default is all
26 | level_t level_{level::trace};
27 | };
28 |
29 | } // namespace sinks
30 | } // namespace spdlog
31 |
32 | #ifdef SPDLOG_HEADER_ONLY
33 | #include "sink-inl.h"
34 | #endif
35 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/assert.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/assert.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_ASSERT_HPP
12 | #define MXASIO_DETAIL_ASSERT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_BOOST_ASSERT)
21 | # include
22 | #else // defined(MXASIO_HAS_BOOST_ASSERT)
23 | # include
24 | #endif // defined(MXASIO_HAS_BOOST_ASSERT)
25 |
26 | #if defined(MXASIO_HAS_BOOST_ASSERT)
27 | # define MXASIO_ASSERT(expr) BOOST_ASSERT(expr)
28 | #else // defined(MXASIO_HAS_BOOST_ASSERT)
29 | # define MXASIO_ASSERT(expr) assert(expr)
30 | #endif // defined(MXASIO_HAS_BOOST_ASSERT)
31 |
32 | #endif // MXASIO_DETAIL_ASSERT_HPP
33 |
--------------------------------------------------------------------------------
/mx_accl/include/memx/accl/utils/errors.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 MemryX
2 | // SPDX-License-Identifier: MPL-2.0
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla Public
5 | // License, v. 2.0. If a copy of the MPL was not distributed with this
6 | // file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef ERRORS_H
9 | #define ERRORS_H
10 |
11 | #pragma once
12 |
13 | namespace MX
14 | {
15 | namespace Utils
16 | {
17 | enum MEMX_API_EXPORT MX_status {
18 | MX_STATUS_OK = 0,
19 | MX_STATUS_TIMEOUT = 1,
20 | MX_STATUS_INVALID_DFP,
21 | MX_STATUS_INVALID_DATA_FMT,
22 | MX_STATUS_INVALID_CHIP_GEN,
23 | MX_STATUS_ERR_OPEN_DEV,
24 | MX_STATUS_ERR_GET_CHIPNUM,
25 | MX_STATUS_ERR_DFP_MISMATCH_WITH_HARDWARE,
26 | MX_STATUS_ERR_DOWNLOAD_MODEL,
27 | MX_STATUS_ERR_ENABLE_STREAM,
28 | MX_STATUS_ERR_STREAM_IFMAP,
29 | MX_STATUS_ERR_STREAM_OFMAP,
30 | MX_STATUS_END,
31 |
32 | MX_STATUS_ERR_INTERNAL = 1000, // error code >= 1000
33 | };
34 | } // namespace MX
35 | } // namespace Utils
36 |
37 | #endif
38 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/experimental/append.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // experimental/append.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_EXPERIMENTAL_APPEND_HPP
12 | #define MXASIO_EXPERIMENTAL_APPEND_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/append.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace experimental {
25 |
26 | #if !defined(MXASIO_NO_DEPRECATED)
27 | using mxasio::append_t;
28 | using mxasio::append;
29 | #endif // !defined(MXASIO_NO_DEPRECATED)
30 |
31 | } // namespace experimental
32 | } // namespace mxasio
33 |
34 | #include "mxasio/detail/pop_options.hpp"
35 |
36 | #endif // MXASIO_EXPERIMENTAL_APPEND_HPP
37 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/operation.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/operation.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_OPERATION_HPP
12 | #define MXASIO_DETAIL_OPERATION_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_IOCP)
21 | #include "mxasio/detail/win_iocp_operation.hpp"
22 | #else
23 | #include "mxasio/detail/scheduler_operation.hpp"
24 | #endif
25 |
26 | namespace mxasio {
27 | namespace detail {
28 |
29 | #if defined(MXASIO_HAS_IOCP)
30 | typedef win_iocp_operation operation;
31 | #else
32 | typedef scheduler_operation operation;
33 | #endif
34 |
35 | } // namespace detail
36 | } // namespace mxasio
37 |
38 | #endif // MXASIO_DETAIL_OPERATION_HPP
39 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/experimental/prepend.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // experimental/prepend.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_EXPERIMENTAL_PREPEND_HPP
12 | #define MXASIO_EXPERIMENTAL_PREPEND_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/prepend.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace experimental {
25 |
26 | #if !defined(MXASIO_NO_DEPRECATED)
27 | using mxasio::prepend_t;
28 | using mxasio::prepend;
29 | #endif // !defined(MXASIO_NO_DEPRECATED)
30 |
31 | } // namespace experimental
32 | } // namespace mxasio
33 |
34 | #include "mxasio/detail/pop_options.hpp"
35 |
36 | #endif // MXASIO_EXPERIMENTAL_PREPEND_HPP
37 |
--------------------------------------------------------------------------------
/mxa_manager/mxa_manager.conf:
--------------------------------------------------------------------------------
1 | # address to listen on
2 | #
3 | # * Linux defaults to UNIX socket in /run/mxa_manager/
4 | # * Windows defaults to 127.0.0.1 to use local TCP connections
5 | # * set to 0.0.0.0 or an interface address to accept network traffic
6 | #
7 | LISTEN_ADDRESS="/run/mxa_manager/"
8 |
9 | # the daemon will use 3 ports in order starting with this number
10 | #
11 | # NOTE: be sure to make sure your client applications use these ports too!
12 | BASE_PORT=10000
13 |
14 | # mxa-manager's log level (to system log, i.e. journalctl or syslog)
15 | #
16 | # higher levels give more information, useful for debugging
17 | #
18 | # options are: off, low (default), medium, high
19 | LOG_LEVEL=low
20 |
21 | # how frequently to poll for hardware stats (in milliseconds)
22 | #
23 | # this includes chip temperature, power usage, and pipeline pressure
24 | #
25 | # lower values give faster and more accurate averages, but will
26 | # increase the CPU usage of mxa-manager
27 | #
28 | # generally speaking, values below 100ms are not recommended
29 | # default is 500 ms
30 | HW_MONITOR_INTERVAL=500
31 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/experimental/as_tuple.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // experimental/as_tuple.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_EXPERIMENTAL_AS_TUPLE_HPP
12 | #define MXASIO_EXPERIMENTAL_AS_TUPLE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/as_tuple.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace experimental {
25 |
26 | #if !defined(MXASIO_NO_DEPRECATED)
27 | using mxasio::as_tuple_t;
28 | using mxasio::as_tuple;
29 | #endif // !defined(MXASIO_NO_DEPRECATED)
30 |
31 | } // namespace experimental
32 | } // namespace mxasio
33 |
34 | #include "mxasio/detail/pop_options.hpp"
35 |
36 | #endif // MXASIO_EXPERIMENTAL_AS_TUPLE_HPP
37 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/experimental/deferred.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // experimental/deferred.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_EXPERIMENTAL_DEFERRED_HPP
12 | #define MXASIO_EXPERIMENTAL_DEFERRED_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/deferred.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace experimental {
25 |
26 | #if !defined(MXASIO_NO_DEPRECATED)
27 | using mxasio::deferred_t;
28 | using mxasio::deferred;
29 | #endif // !defined(MXASIO_NO_DEPRECATED)
30 |
31 | } // namespace experimental
32 | } // namespace mxasio
33 |
34 | #include "mxasio/detail/pop_options.hpp"
35 |
36 | #endif // MXASIO_EXPERIMENTAL_DEFERRED_HPP
37 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/random_access_file.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // random_access_file.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_RANDOM_ACCESS_FILE_HPP
12 | #define MXASIO_RANDOM_ACCESS_FILE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_FILE) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "mxasio/basic_random_access_file.hpp"
24 |
25 | namespace mxasio {
26 |
27 | /// Typedef for the typical usage of a random-access file.
28 | typedef basic_random_access_file<> random_access_file;
29 |
30 | } // namespace mxasio
31 |
32 | #endif // defined(MXASIO_HAS_FILE)
33 | // || defined(GENERATING_DOCUMENTATION)
34 |
35 | #endif // MXASIO_RANDOM_ACCESS_FILE_HPP
36 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/details/log_msg_buffer.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 |
8 | namespace spdlog {
9 | namespace details {
10 |
11 | // Extend log_msg with internal buffer to store its payload.
12 | // This is needed since log_msg holds string_views that points to stack data.
13 |
14 | class SPDLOG_API log_msg_buffer : public log_msg {
15 | memory_buf_t buffer;
16 | void update_string_views();
17 |
18 | public:
19 | log_msg_buffer() = default;
20 | explicit log_msg_buffer(const log_msg &orig_msg);
21 | log_msg_buffer(const log_msg_buffer &other);
22 | log_msg_buffer(log_msg_buffer &&other) SPDLOG_NOEXCEPT;
23 | log_msg_buffer &operator=(const log_msg_buffer &other);
24 | log_msg_buffer &operator=(log_msg_buffer &&other) SPDLOG_NOEXCEPT;
25 | };
26 |
27 | } // namespace details
28 | } // namespace spdlog
29 |
30 | #ifdef SPDLOG_HEADER_ONLY
31 | #include "log_msg_buffer-inl.h"
32 | #endif
33 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/details/null_mutex.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 | #include
8 | // null, no cost dummy "mutex" and dummy "atomic" int
9 |
10 | namespace spdlog {
11 | namespace details {
12 | struct null_mutex {
13 | void lock() const {}
14 | void unlock() const {}
15 | };
16 |
17 | struct null_atomic_int {
18 | int value;
19 | null_atomic_int() = default;
20 |
21 | explicit null_atomic_int(int new_value)
22 | : value(new_value) {}
23 |
24 | int load(std::memory_order = std::memory_order_relaxed) const { return value; }
25 |
26 | void store(int new_value, std::memory_order = std::memory_order_relaxed) { value = new_value; }
27 |
28 | int exchange(int new_value, std::memory_order = std::memory_order_relaxed) {
29 | std::swap(new_value, value);
30 | return new_value; // return value before the call
31 | }
32 | };
33 |
34 | } // namespace details
35 | } // namespace spdlog
36 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/impl/executor.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/executor.ipp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IMPL_EXECUTOR_IPP
12 | #define MXASIO_IMPL_EXECUTOR_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_NO_TS_EXECUTORS)
21 |
22 | #include "mxasio/executor.hpp"
23 |
24 | #include "mxasio/detail/push_options.hpp"
25 |
26 | namespace mxasio {
27 |
28 | bad_executor::bad_executor() noexcept
29 | {
30 | }
31 |
32 | const char* bad_executor::what() const noexcept
33 | {
34 | return "bad executor";
35 | }
36 |
37 | } // namespace mxasio
38 |
39 | #include "mxasio/detail/pop_options.hpp"
40 |
41 | #endif // !defined(MXASIO_NO_TS_EXECUTORS)
42 |
43 | #endif // MXASIO_IMPL_EXECUTOR_IPP
44 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/serial_port.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // serial_port.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
7 | //
8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 | //
11 |
12 | #ifndef MXASIO_SERIAL_PORT_HPP
13 | #define MXASIO_SERIAL_PORT_HPP
14 |
15 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
16 | # pragma once
17 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18 |
19 | #include "mxasio/detail/config.hpp"
20 |
21 | #if defined(MXASIO_HAS_SERIAL_PORT) \
22 | || defined(GENERATING_DOCUMENTATION)
23 |
24 | #include "mxasio/basic_serial_port.hpp"
25 |
26 | namespace mxasio {
27 |
28 | /// Typedef for the typical usage of a serial port.
29 | typedef basic_serial_port<> serial_port;
30 |
31 | } // namespace mxasio
32 |
33 | #endif // defined(MXASIO_HAS_SERIAL_PORT)
34 | // || defined(GENERATING_DOCUMENTATION)
35 |
36 | #endif // MXASIO_SERIAL_PORT_HPP
37 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/cstdint.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/cstdint.hpp
3 | // ~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_CSTDINT_HPP
12 | #define MXASIO_DETAIL_CSTDINT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 |
21 | namespace mxasio {
22 |
23 | using std::int16_t;
24 | using std::int_least16_t;
25 | using std::uint16_t;
26 | using std::uint_least16_t;
27 | using std::int32_t;
28 | using std::int_least32_t;
29 | using std::uint32_t;
30 | using std::uint_least32_t;
31 | using std::int64_t;
32 | using std::int_least64_t;
33 | using std::uint64_t;
34 | using std::uint_least64_t;
35 | using std::uintptr_t;
36 | using std::uintmax_t;
37 |
38 | } // namespace mxasio
39 |
40 | #endif // MXASIO_DETAIL_CSTDINT_HPP
41 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode/
2 | # Prerequisites
3 | *.d
4 |
5 | # Compiled Object files
6 | *.slo
7 | *.lo
8 | *.o
9 | *.obj
10 |
11 | # Precompiled Headers
12 | *.gch
13 | *.pch
14 |
15 | # Compiled Dynamic libraries
16 | *.so
17 | *.dylib
18 | *.dll
19 |
20 | # Fortran module files
21 | *.mod
22 | *.smod
23 |
24 | # Compiled Static libraries
25 | *.lai
26 | *.la
27 | *.a
28 | *.lib
29 |
30 | # Executables
31 | *.exe
32 | *.out
33 | *.app
34 |
35 | build/
36 | Testing/
37 | mx_accl/memx-accl/
38 | mx_accl/x64/
39 | mx_accl/.vs/
40 | mx_accl/memx-accl.vcxproj.user
41 | samples/windows/depthEstimation/depthEstimation/
42 | samples/windows/depthEstimation/x64/
43 | samples/windows/depthEstimation/.vs/
44 | samples/windows/depthEstimation/depthEstimation.vcxproj.user
45 | samples/windows/CenterNet_Onnx/CenterNet_Onnx/
46 | samples/windows/CenterNet_Onnx/x64/
47 | samples/windows/CenterNet_Onnx/.vs/
48 | samples/windows/CenterNet_Onnx/CenterNet_Onnx.vcxproj.user
49 | samples/MultiModel/libtorch*
50 | samples/acclBench/acclBench/
51 | samples/acclBench/x64/
52 | samples/acclBench/.vs/
53 | samples/acclBench/acclBench.vcxproj.user
54 |
55 | deps/
56 |
--------------------------------------------------------------------------------
/debian_manager/rules:
--------------------------------------------------------------------------------
1 | #!/usr/bin/make -f
2 |
3 | DH_VERBOSE = 1
4 |
5 | include /usr/share/dpkg/pkg-info.mk
6 | include /usr/share/dpkg/architecture.mk
7 |
8 | %:
9 | dh $@ --with=systemd,sysuser
10 |
11 | override_dh_install:
12 | dh_install build/mxa_manager/mxa_manager usr/bin/
13 | dh_install mxa_manager/mxa_manager.conf etc/memryx/
14 |
15 | override_dh_systemd_enable:
16 | dh_systemd_enable --name=mxa-manager
17 |
18 | override_dh_systemd_start:
19 | dh_systemd_start --name=mxa-manager
20 |
21 | override_dh_installinit:
22 | dh_installinit --name=mxa-manager
23 |
24 | override_dh_shlibdeps:
25 | dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
26 |
27 | override_dh_gencontrol:
28 | sed -i -E 's/\b(sysuser-helper) \([^)]+\)/\1/g' debian/mxa-manager.substvars
29 | sed -i -E 's/[, ]+,/,/g; s/,\s*$$//' debian/mxa-manager.substvars
30 | dh_gencontrol
31 |
32 | override_dh_auto_configure:
33 | override_dh_auto_build:
34 | override_dh_auto_test:
35 |
36 | override_dh_auto_install:
37 | rm -rf build ; mkdir build ; cd build ; cmake -DCMAKE_BUILD_TYPE=Packaging .. && make -j 4
38 |
39 | override_dh_auto_clean:
40 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/noncopyable.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/noncopyable.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_NONCOPYABLE_HPP
12 | #define MXASIO_DETAIL_NONCOPYABLE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 | namespace detail {
24 |
25 | class noncopyable
26 | {
27 | protected:
28 | noncopyable() {}
29 | ~noncopyable() {}
30 | private:
31 | noncopyable(const noncopyable&);
32 | const noncopyable& operator=(const noncopyable&);
33 | };
34 |
35 | } // namespace detail
36 |
37 | using mxasio::detail::noncopyable;
38 |
39 | } // namespace mxasio
40 |
41 | #include "mxasio/detail/pop_options.hpp"
42 |
43 | #endif // MXASIO_DETAIL_NONCOPYABLE_HPP
44 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/posix/descriptor.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // posix/descriptor.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_POSIX_DESCRIPTOR_HPP
12 | #define MXASIO_POSIX_DESCRIPTOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_POSIX_STREAM_DESCRIPTOR) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "mxasio/posix/basic_descriptor.hpp"
24 |
25 | namespace mxasio {
26 | namespace posix {
27 |
28 | /// Typedef for the typical usage of basic_descriptor.
29 | typedef basic_descriptor<> descriptor;
30 |
31 | } // namespace posix
32 | } // namespace mxasio
33 |
34 | #endif // defined(MXASIO_HAS_POSIX_STREAM_DESCRIPTOR)
35 | // || defined(GENERATING_DOCUMENTATION)
36 |
37 | #endif // MXASIO_POSIX_DESCRIPTOR_HPP
38 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/execution/impl/bad_executor.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // exection/impl/bad_executor.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_EXECUTION_IMPL_BAD_EXECUTOR_IPP
12 | #define MXASIO_EXECUTION_IMPL_BAD_EXECUTOR_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/execution/bad_executor.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace execution {
25 |
26 | bad_executor::bad_executor() noexcept
27 | {
28 | }
29 |
30 | const char* bad_executor::what() const noexcept
31 | {
32 | return "bad executor";
33 | }
34 |
35 | } // namespace execution
36 | } // namespace mxasio
37 |
38 | #include "mxasio/detail/pop_options.hpp"
39 |
40 | #endif // MXASIO_EXECUTION_IMPL_BAD_EXECUTOR_IPP
41 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/cfg/env.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 | #include
6 | #include
7 | #include
8 |
9 | //
10 | // Init levels and patterns from env variables SPDLOG_LEVEL
11 | // Inspired from Rust's "env_logger" crate (https://crates.io/crates/env_logger).
12 | // Note - fallback to "info" level on unrecognized levels
13 | //
14 | // Examples:
15 | //
16 | // set global level to debug:
17 | // export SPDLOG_LEVEL=debug
18 | //
19 | // turn off all logging except for logger1:
20 | // export SPDLOG_LEVEL="*=off,logger1=debug"
21 | //
22 |
23 | // turn off all logging except for logger1 and logger2:
24 | // export SPDLOG_LEVEL="off,logger1=debug,logger2=info"
25 |
26 | namespace spdlog {
27 | namespace cfg {
28 | inline void load_env_levels(const char* var = "SPDLOG_LEVEL") {
29 | auto env_val = details::os::getenv(var);
30 | if (!env_val.empty()) {
31 | helpers::load_levels(env_val);
32 | }
33 | }
34 |
35 | } // namespace cfg
36 | } // namespace spdlog
37 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/error_code.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // error_code.hpp
3 | // ~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_ERROR_CODE_HPP
12 | #define MXASIO_ERROR_CODE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 |
25 | typedef std::error_category error_category;
26 | typedef std::error_code error_code;
27 |
28 | /// Returns the error category used for the system errors produced by asio.
29 | extern MXASIO_DECL const error_category& system_category();
30 |
31 | } // namespace mxasio
32 |
33 | #include "mxasio/detail/pop_options.hpp"
34 |
35 | #if defined(MXASIO_HEADER_ONLY)
36 | #include "mxasio/impl/error_code.ipp"
37 | #endif // defined(MXASIO_HEADER_ONLY)
38 |
39 | #endif // MXASIO_ERROR_CODE_HPP
40 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ssl/detail/openssl_types.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/detail/openssl_types.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_SSL_DETAIL_OPENSSL_TYPES_HPP
12 | #define MXASIO_SSL_DETAIL_OPENSSL_TYPES_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/socket_types.hpp"
20 | #if defined(MXASIO_USE_WOLFSSL)
21 | # include
22 | #endif // defined(MXASIO_USE_WOLFSSL)
23 | #include
24 | #include
25 | #if !defined(OPENSSL_NO_ENGINE)
26 | # include
27 | #endif // !defined(OPENSSL_NO_ENGINE)
28 | #include
29 | #include
30 | #include
31 | #include
32 | #include
33 |
34 | #endif // MXASIO_SSL_DETAIL_OPENSSL_TYPES_HPP
35 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/fd_set_adapter.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/fd_set_adapter.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_FD_SET_ADAPTER_HPP
12 | #define MXASIO_DETAIL_FD_SET_ADAPTER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_WINDOWS_RUNTIME)
21 |
22 | #include "mxasio/detail/posix_fd_set_adapter.hpp"
23 | #include "mxasio/detail/win_fd_set_adapter.hpp"
24 |
25 | namespace mxasio {
26 | namespace detail {
27 |
28 | #if defined(MXASIO_WINDOWS) || defined(__CYGWIN__)
29 | typedef win_fd_set_adapter fd_set_adapter;
30 | #else
31 | typedef posix_fd_set_adapter fd_set_adapter;
32 | #endif
33 |
34 | } // namespace detail
35 | } // namespace mxasio
36 |
37 | #endif // !defined(MXASIO_WINDOWS_RUNTIME)
38 |
39 | #endif // MXASIO_DETAIL_FD_SET_ADAPTER_HPP
40 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/windows/stream_handle.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // windows/stream_handle.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_WINDOWS_STREAM_HANDLE_HPP
12 | #define MXASIO_WINDOWS_STREAM_HANDLE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_WINDOWS_STREAM_HANDLE) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "mxasio/windows/basic_stream_handle.hpp"
24 |
25 | namespace mxasio {
26 | namespace windows {
27 |
28 | /// Typedef for the typical usage of a stream-oriented handle.
29 | typedef basic_stream_handle<> stream_handle;
30 |
31 | } // namespace windows
32 | } // namespace mxasio
33 |
34 | #endif // defined(MXASIO_HAS_WINDOWS_STREAM_HANDLE)
35 | // || defined(GENERATING_DOCUMENTATION)
36 |
37 | #endif // MXASIO_WINDOWS_STREAM_HANDLE_HPP
38 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/fenced_block.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/fenced_block.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_FENCED_BLOCK_HPP
12 | #define MXASIO_DETAIL_FENCED_BLOCK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_HAS_THREADS) \
21 | || defined(MXASIO_DISABLE_FENCED_BLOCK)
22 | #include "mxasio/detail/null_fenced_block.hpp"
23 | #else
24 | #include "mxasio/detail/std_fenced_block.hpp"
25 | #endif
26 |
27 | namespace mxasio {
28 | namespace detail {
29 |
30 | #if !defined(MXASIO_HAS_THREADS) \
31 | || defined(MXASIO_DISABLE_FENCED_BLOCK)
32 | typedef null_fenced_block fenced_block;
33 | #else
34 | typedef std_fenced_block fenced_block;
35 | #endif
36 |
37 | } // namespace detail
38 | } // namespace mxasio
39 |
40 | #endif // MXASIO_DETAIL_FENCED_BLOCK_HPP
41 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ip/host_name.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/host_name.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IP_HOST_NAME_HPP
12 | #define MXASIO_IP_HOST_NAME_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 | #include "mxasio/error_code.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 | namespace ip {
26 |
27 | /// Get the current host name.
28 | MXASIO_DECL std::string host_name();
29 |
30 | /// Get the current host name.
31 | MXASIO_DECL std::string host_name(mxasio::error_code& ec);
32 |
33 | } // namespace ip
34 | } // namespace mxasio
35 |
36 | #include "mxasio/detail/pop_options.hpp"
37 |
38 | #if defined(MXASIO_HEADER_ONLY)
39 | #include "mxasio/ip/impl/host_name.ipp"
40 | #endif // defined(MXASIO_HEADER_ONLY)
41 |
42 | #endif // MXASIO_IP_HOST_NAME_HPP
43 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ts/executor.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/executor.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_TS_EXECUTOR_HPP
12 | #define MXASIO_TS_EXECUTOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/async_result.hpp"
19 | #include "mxasio/associated_allocator.hpp"
20 | #include "mxasio/execution_context.hpp"
21 | #include "mxasio/is_executor.hpp"
22 | #include "mxasio/associated_executor.hpp"
23 | #include "mxasio/bind_executor.hpp"
24 | #include "mxasio/executor_work_guard.hpp"
25 | #include "mxasio/system_executor.hpp"
26 | #include "mxasio/executor.hpp"
27 | #include "mxasio/any_io_executor.hpp"
28 | #include "mxasio/dispatch.hpp"
29 | #include "mxasio/post.hpp"
30 | #include "mxasio/defer.hpp"
31 | #include "mxasio/strand.hpp"
32 | #include "mxasio/packaged_task.hpp"
33 | #include "mxasio/use_future.hpp"
34 |
35 | #endif // MXASIO_TS_EXECUTOR_HPP
36 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/null_fenced_block.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_fenced_block.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_NULL_FENCED_BLOCK_HPP
12 | #define MXASIO_DETAIL_NULL_FENCED_BLOCK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/noncopyable.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 | namespace detail {
24 |
25 | class null_fenced_block
26 | : private noncopyable
27 | {
28 | public:
29 | enum half_or_full_t { half, full };
30 |
31 | // Constructor.
32 | explicit null_fenced_block(half_or_full_t)
33 | {
34 | }
35 |
36 | // Destructor.
37 | ~null_fenced_block()
38 | {
39 | }
40 | };
41 |
42 | } // namespace detail
43 | } // namespace mxasio
44 |
45 | #include "mxasio/detail/pop_options.hpp"
46 |
47 | #endif // MXASIO_DETAIL_NULL_FENCED_BLOCK_HPP
48 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/scheduler_thread_info.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/scheduler_thread_info.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP
12 | #define MXASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/op_queue.hpp"
19 | #include "mxasio/detail/thread_info_base.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace detail {
25 |
26 | class scheduler;
27 | class scheduler_operation;
28 |
29 | struct scheduler_thread_info : public thread_info_base
30 | {
31 | op_queue private_op_queue;
32 | long private_outstanding_work;
33 | };
34 |
35 | } // namespace detail
36 | } // namespace mxasio
37 |
38 | #include "mxasio/detail/pop_options.hpp"
39 |
40 | #endif // MXASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP
41 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/posix/stream_descriptor.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // posix/stream_descriptor.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_POSIX_STREAM_DESCRIPTOR_HPP
12 | #define MXASIO_POSIX_STREAM_DESCRIPTOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_POSIX_STREAM_DESCRIPTOR) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "mxasio/posix/basic_stream_descriptor.hpp"
24 |
25 | namespace mxasio {
26 | namespace posix {
27 |
28 | /// Typedef for the typical usage of a stream-oriented descriptor.
29 | typedef basic_stream_descriptor<> stream_descriptor;
30 |
31 | } // namespace posix
32 | } // namespace mxasio
33 |
34 | #endif // defined(MXASIO_HAS_POSIX_STREAM_DESCRIPTOR)
35 | // || defined(GENERATING_DOCUMENTATION)
36 |
37 | #endif // MXASIO_POSIX_STREAM_DESCRIPTOR_HPP
38 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/resolve_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/resolve_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_RESOLVE_OP_HPP
12 | #define MXASIO_DETAIL_RESOLVE_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/error.hpp"
20 | #include "mxasio/detail/operation.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 | namespace detail {
26 |
27 | class resolve_op : public operation
28 | {
29 | public:
30 | // The error code to be passed to the completion handler.
31 | mxasio::error_code ec_;
32 |
33 | protected:
34 | resolve_op(func_type complete_func)
35 | : operation(complete_func)
36 | {
37 | }
38 | };
39 |
40 | } // namespace detail
41 | } // namespace mxasio
42 |
43 | #include "mxasio/detail/pop_options.hpp"
44 |
45 | #endif // MXASIO_DETAIL_RESOLVE_OP_HPP
46 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/signal_init.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/signal_init.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_SIGNAL_INIT_HPP
12 | #define MXASIO_DETAIL_SIGNAL_INIT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_WINDOWS) && !defined(__CYGWIN__)
21 |
22 | #include
23 |
24 | #include "mxasio/detail/push_options.hpp"
25 |
26 | namespace mxasio {
27 | namespace detail {
28 |
29 | template
30 | class signal_init
31 | {
32 | public:
33 | // Constructor.
34 | signal_init()
35 | {
36 | std::signal(Signal, SIG_IGN);
37 | }
38 | };
39 |
40 | } // namespace detail
41 | } // namespace mxasio
42 |
43 | #include "mxasio/detail/pop_options.hpp"
44 |
45 | #endif // !defined(MXASIO_WINDOWS) && !defined(__CYGWIN__)
46 |
47 | #endif // MXASIO_DETAIL_SIGNAL_INIT_HPP
48 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/execution.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // execution.hpp
3 | // ~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_EXECUTION_HPP
12 | #define MXASIO_EXECUTION_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/execution/allocator.hpp"
19 | #include "mxasio/execution/any_executor.hpp"
20 | #include "mxasio/execution/bad_executor.hpp"
21 | #include "mxasio/execution/blocking.hpp"
22 | #include "mxasio/execution/blocking_adaptation.hpp"
23 | #include "mxasio/execution/context.hpp"
24 | #include "mxasio/execution/context_as.hpp"
25 | #include "mxasio/execution/executor.hpp"
26 | #include "mxasio/execution/invocable_archetype.hpp"
27 | #include "mxasio/execution/mapping.hpp"
28 | #include "mxasio/execution/occupancy.hpp"
29 | #include "mxasio/execution/outstanding_work.hpp"
30 | #include "mxasio/execution/prefer_only.hpp"
31 | #include "mxasio/execution/relationship.hpp"
32 |
33 | #endif // MXASIO_EXECUTION_HPP
34 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/windows/object_handle.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // windows/object_handle.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | // Copyright (c) 2011 Boris Schaeling (boris@highscore.de)
7 | //
8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 | //
11 |
12 | #ifndef MXASIO_WINDOWS_OBJECT_HANDLE_HPP
13 | #define MXASIO_WINDOWS_OBJECT_HANDLE_HPP
14 |
15 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
16 | # pragma once
17 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18 |
19 | #include "mxasio/detail/config.hpp"
20 |
21 | #if defined(MXASIO_HAS_WINDOWS_OBJECT_HANDLE) \
22 | || defined(GENERATING_DOCUMENTATION)
23 |
24 | #include "mxasio/windows/basic_object_handle.hpp"
25 |
26 | namespace mxasio {
27 | namespace windows {
28 |
29 | /// Typedef for the typical usage of an object handle.
30 | typedef basic_object_handle<> object_handle;
31 |
32 | } // namespace windows
33 | } // namespace mxasio
34 |
35 | #endif // defined(MXASIO_HAS_WINDOWS_OBJECT_HANDLE)
36 | // || defined(GENERATING_DOCUMENTATION)
37 |
38 | #endif // MXASIO_WINDOWS_OBJECT_HANDLE_HPP
39 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/deadline_timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // deadline_timer.hpp
3 | // ~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DEADLINE_TIMER_HPP
12 | #define MXASIO_DEADLINE_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_BOOST_DATE_TIME) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "mxasio/detail/socket_types.hpp" // Must come before posix_time.
24 | #include "mxasio/basic_deadline_timer.hpp"
25 |
26 | #include
27 |
28 | namespace mxasio {
29 |
30 | /// Typedef for the typical usage of timer. Uses a UTC clock.
31 | typedef basic_deadline_timer deadline_timer;
32 |
33 | } // namespace mxasio
34 |
35 | #endif // defined(MXASIO_HAS_BOOST_DATE_TIME)
36 | // || defined(GENERATING_DOCUMENTATION)
37 |
38 | #endif // MXASIO_DEADLINE_TIMER_HPP
39 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/future.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/future.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_FUTURE_HPP
12 | #define MXASIO_DETAIL_FUTURE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 |
21 | // Even though the future header is available, libstdc++ may not implement the
22 | // std::future class itself. However, we need to have already included the
23 | // future header to reliably test for _GLIBCXX_HAS_GTHREADS.
24 | #if defined(__GNUC__) && !defined(MXASIO_HAS_CLANG_LIBCXX)
25 | # if defined(_GLIBCXX_HAS_GTHREADS)
26 | # define MXASIO_HAS_STD_FUTURE_CLASS 1
27 | # endif // defined(_GLIBCXX_HAS_GTHREADS)
28 | #else // defined(__GNUC__) && !defined(MXASIO_HAS_CLANG_LIBCXX)
29 | # define MXASIO_HAS_STD_FUTURE_CLASS 1
30 | #endif // defined(__GNUC__) && !defined(MXASIO_HAS_CLANG_LIBCXX)
31 |
32 | #endif // MXASIO_DETAIL_FUTURE_HPP
33 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/steady_timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // steady_timer.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_STEADY_TIMER_HPP
12 | #define MXASIO_STEADY_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/basic_waitable_timer.hpp"
20 | #include "mxasio/detail/chrono.hpp"
21 |
22 | namespace mxasio {
23 |
24 | /// Typedef for a timer based on the steady clock.
25 | /**
26 | * This typedef uses the C++11 @c <chrono> standard library facility, if
27 | * available. Otherwise, it may use the Boost.Chrono library. To explicitly
28 | * utilise Boost.Chrono, use the basic_waitable_timer template directly:
29 | * @code
30 | * typedef basic_waitable_timer timer;
31 | * @endcode
32 | */
33 | typedef basic_waitable_timer steady_timer;
34 |
35 | } // namespace mxasio
36 |
37 | #endif // MXASIO_STEADY_TIMER_HPP
38 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/system_timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // system_timer.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_SYSTEM_TIMER_HPP
12 | #define MXASIO_SYSTEM_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/basic_waitable_timer.hpp"
20 | #include "mxasio/detail/chrono.hpp"
21 |
22 | namespace mxasio {
23 |
24 | /// Typedef for a timer based on the system clock.
25 | /**
26 | * This typedef uses the C++11 @c <chrono> standard library facility, if
27 | * available. Otherwise, it may use the Boost.Chrono library. To explicitly
28 | * utilise Boost.Chrono, use the basic_waitable_timer template directly:
29 | * @code
30 | * typedef basic_waitable_timer timer;
31 | * @endcode
32 | */
33 | typedef basic_waitable_timer system_timer;
34 |
35 | } // namespace mxasio
36 |
37 | #endif // MXASIO_SYSTEM_TIMER_HPP
38 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/windows/random_access_handle.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // windows/random_access_handle.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP
12 | #define MXASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \
21 | || defined(GENERATING_DOCUMENTATION)
22 |
23 | #include "mxasio/windows/basic_random_access_handle.hpp"
24 |
25 | namespace mxasio {
26 | namespace windows {
27 |
28 | /// Typedef for the typical usage of a random-access handle.
29 | typedef basic_random_access_handle<> random_access_handle;
30 |
31 | } // namespace windows
32 | } // namespace mxasio
33 |
34 | #endif // defined(MXASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE)
35 | // || defined(GENERATING_DOCUMENTATION)
36 |
37 | #endif // MXASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP
38 |
--------------------------------------------------------------------------------
/mxa_manager/include/lock_table.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 MemryX
2 | // SPDX-License-Identifier: MPL-2.0
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla Public
5 | // License, v. 2.0. If a copy of the MPL was not distributed with this
6 | // file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef LOCK_TABLE_H
9 | #define LOCK_TABLE_H
10 |
11 | #pragma once
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 |
18 | namespace MX
19 | {
20 | namespace Manager
21 | {
22 |
23 | class LockTable
24 | {
25 | private:
26 | int num_devices;
27 | bool* lock_states;
28 | uint32_t* owner_ids;
29 | std::shared_mutex* dev_mutexes;
30 | std::condition_variable_any* dev_cvs;
31 |
32 | public:
33 | LockTable();
34 | ~LockTable();
35 |
36 | void init(int n);
37 |
38 | void lock(int32_t dev_id, uint32_t client_id);
39 | bool trylock(int32_t dev_id, uint32_t client_id);
40 | bool unlock(int32_t dev_id, uint32_t client_id);
41 | bool check_lock(int32_t dev_id, uint32_t* owner_id);
42 | bool clear_client(uint32_t client_id);
43 |
44 | void print();
45 |
46 | };
47 |
48 | }
49 | }
50 |
51 | #endif // LOCK_TABLE_H
52 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/non_const_lvalue.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/non_const_lvalue.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_NON_CONST_LVALUE_HPP
12 | #define MXASIO_DETAIL_NON_CONST_LVALUE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/type_traits.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace detail {
25 |
26 | template
27 | struct non_const_lvalue
28 | {
29 | explicit non_const_lvalue(T& t)
30 | : value(static_cast>::value, decay_t&, T&&>>(t))
32 | {
33 | }
34 |
35 | conditional_t>::value, decay_t&, decay_t> value;
36 | };
37 |
38 | } // namespace detail
39 | } // namespace mxasio
40 |
41 | #include "mxasio/detail/pop_options.hpp"
42 |
43 | #endif // MXASIO_DETAIL_NON_CONST_LVALUE_HPP
44 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/execution/invocable_archetype.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // execution/invocable_archetype.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_EXECUTION_INVOCABLE_ARCHETYPE_HPP
12 | #define MXASIO_EXECUTION_INVOCABLE_ARCHETYPE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/type_traits.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace execution {
25 |
26 | /// An archetypal function object used for determining adherence to the
27 | /// execution::executor concept.
28 | struct invocable_archetype
29 | {
30 | /// Function call operator.
31 | template
32 | void operator()(Args&&...)
33 | {
34 | }
35 | };
36 |
37 | } // namespace execution
38 | } // namespace mxasio
39 |
40 | #include "mxasio/detail/pop_options.hpp"
41 |
42 | #endif // MXASIO_EXECUTION_INVOCABLE_ARCHETYPE_HPP
43 |
44 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/wait_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/wait_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_WAIT_OP_HPP
12 | #define MXASIO_DETAIL_WAIT_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/operation.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace detail {
25 |
26 | class wait_op
27 | : public operation
28 | {
29 | public:
30 | // The error code to be passed to the completion handler.
31 | mxasio::error_code ec_;
32 |
33 | // The operation key used for targeted cancellation.
34 | void* cancellation_key_;
35 |
36 | protected:
37 | wait_op(func_type func)
38 | : operation(func),
39 | cancellation_key_(0)
40 | {
41 | }
42 | };
43 |
44 | } // namespace detail
45 | } // namespace mxasio
46 |
47 | #include "mxasio/detail/pop_options.hpp"
48 |
49 | #endif // MXASIO_DETAIL_WAIT_OP_HPP
50 |
--------------------------------------------------------------------------------
/mx_accl/include/memx/accl/utils/macros.h:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 MemryX
2 | // SPDX-License-Identifier: MPL-2.0
3 | //
4 | // This Source Code Form is subject to the terms of the Mozilla Public
5 | // License, v. 2.0. If a copy of the MPL was not distributed with this
6 | // file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 |
8 | #ifndef MX_MACROS_H
9 | #define MX_MACROS_H
10 |
11 | #pragma once
12 |
13 | // Branch predictor hints: speeds up critical paths
14 | #ifdef __GNUC__
15 | #define LIKELY(condition) __builtin_expect(static_cast(condition), true)
16 | #define UNLIKELY(condition) __builtin_expect(static_cast(condition), false)
17 | #else
18 | #define LIKELY(condition) (condition)
19 | #define UNLIKELY(condition) (condition)
20 | #endif
21 |
22 | // Thread Sanitizer annotation macros
23 | #ifdef __SANITIZE_THREAD__
24 | #include
25 | #define TSAN_ACQUIRE(a) __tsan_acquire(a)
26 | #define TSAN_RELEASE(a) __tsan_release(a)
27 | #else
28 | #define TSAN_ACQUIRE(a)
29 | #define TSAN_RELEASE(a)
30 | #endif
31 |
32 | // Pipeline pressure thresholds
33 | #define MEMX_PRESSURE_LOW_THRESH 20.0f
34 | #define MEMX_PRESSURE_MEDIUM_THRESH 65.0f
35 | #define MEMX_PRESSURE_HIGH_THRESH 92.0f
36 |
37 | #endif // MX_MACROS_H
38 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/impl/multiple_exceptions.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/multiple_exceptions.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IMPL_MULTIPLE_EXCEPTIONS_IPP
12 | #define MXASIO_IMPL_MULTIPLE_EXCEPTIONS_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/multiple_exceptions.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 |
25 | multiple_exceptions::multiple_exceptions(
26 | std::exception_ptr first) noexcept
27 | : first_(static_cast(first))
28 | {
29 | }
30 |
31 | const char* multiple_exceptions::what() const noexcept
32 | {
33 | return "multiple exceptions";
34 | }
35 |
36 | std::exception_ptr multiple_exceptions::first_exception() const
37 | {
38 | return first_;
39 | }
40 |
41 | } // namespace mxasio
42 |
43 | #include "mxasio/detail/pop_options.hpp"
44 |
45 | #endif // MXASIO_IMPL_MULTIPLE_EXCEPTIONS_IPP
46 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/event.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/event.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_EVENT_HPP
12 | #define MXASIO_DETAIL_EVENT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_HAS_THREADS)
21 | #include "mxasio/detail/null_event.hpp"
22 | #elif defined(MXASIO_WINDOWS)
23 | #include "mxasio/detail/win_event.hpp"
24 | #elif defined(MXASIO_HAS_PTHREADS)
25 | #include "mxasio/detail/posix_event.hpp"
26 | #else
27 | #include "mxasio/detail/std_event.hpp"
28 | #endif
29 |
30 | namespace mxasio {
31 | namespace detail {
32 |
33 | #if !defined(MXASIO_HAS_THREADS)
34 | typedef null_event event;
35 | #elif defined(MXASIO_WINDOWS)
36 | typedef win_event event;
37 | #elif defined(MXASIO_HAS_PTHREADS)
38 | typedef posix_event event;
39 | #else
40 | typedef std_event event;
41 | #endif
42 |
43 | } // namespace detail
44 | } // namespace mxasio
45 |
46 | #endif // MXASIO_DETAIL_EVENT_HPP
47 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/mutex.hpp
3 | // ~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_MUTEX_HPP
12 | #define MXASIO_DETAIL_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_HAS_THREADS)
21 | #include "mxasio/detail/null_mutex.hpp"
22 | #elif defined(MXASIO_WINDOWS)
23 | #include "mxasio/detail/win_mutex.hpp"
24 | #elif defined(MXASIO_HAS_PTHREADS)
25 | #include "mxasio/detail/posix_mutex.hpp"
26 | #else
27 | #include "mxasio/detail/std_mutex.hpp"
28 | #endif
29 |
30 | namespace mxasio {
31 | namespace detail {
32 |
33 | #if !defined(MXASIO_HAS_THREADS)
34 | typedef null_mutex mutex;
35 | #elif defined(MXASIO_WINDOWS)
36 | typedef win_mutex mutex;
37 | #elif defined(MXASIO_HAS_PTHREADS)
38 | typedef posix_mutex mutex;
39 | #else
40 | typedef std_mutex mutex;
41 | #endif
42 |
43 | } // namespace detail
44 | } // namespace mxasio
45 |
46 | #endif // MXASIO_DETAIL_MUTEX_HPP
47 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ip/resolver_query_base.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/resolver_query_base.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IP_RESOLVER_QUERY_BASE_HPP
12 | #define MXASIO_IP_RESOLVER_QUERY_BASE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/ip/resolver_base.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace ip {
25 |
26 | /// The resolver_query_base class is used as a base for the
27 | /// basic_resolver_query class templates to provide a common place to define
28 | /// the flag constants.
29 | class resolver_query_base : public resolver_base
30 | {
31 | protected:
32 | /// Protected destructor to prevent deletion through this type.
33 | ~resolver_query_base()
34 | {
35 | }
36 | };
37 |
38 | } // namespace ip
39 | } // namespace mxasio
40 |
41 | #include "mxasio/detail/pop_options.hpp"
42 |
43 | #endif // MXASIO_IP_RESOLVER_QUERY_BASE_HPP
44 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/windows/overlapped_handle.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // windows/overlapped_handle.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_WINDOWS_OVERLAPPED_HANDLE_HPP
12 | #define MXASIO_WINDOWS_OVERLAPPED_HANDLE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \
21 | || defined(MXASIO_HAS_WINDOWS_STREAM_HANDLE) \
22 | || defined(GENERATING_DOCUMENTATION)
23 |
24 | #include "mxasio/windows/basic_overlapped_handle.hpp"
25 |
26 | namespace mxasio {
27 | namespace windows {
28 |
29 | /// Typedef for the typical usage of an overlapped handle.
30 | typedef basic_overlapped_handle<> overlapped_handle;
31 |
32 | } // namespace windows
33 | } // namespace mxasio
34 |
35 | #endif // defined(MXASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE)
36 | // || defined(MXASIO_HAS_WINDOWS_STREAM_HANDLE)
37 | // || defined(GENERATING_DOCUMENTATION)
38 |
39 | #endif // MXASIO_WINDOWS_OVERLAPPED_HANDLE_HPP
40 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/timer_scheduler.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/timer_scheduler.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_TIMER_SCHEDULER_HPP
12 | #define MXASIO_DETAIL_TIMER_SCHEDULER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/timer_scheduler_fwd.hpp"
20 |
21 | #if defined(MXASIO_WINDOWS_RUNTIME)
22 | #include "mxasio/detail/winrt_timer_scheduler.hpp"
23 | #elif defined(MXASIO_HAS_IOCP)
24 | #include "mxasio/detail/win_iocp_io_context.hpp"
25 | #elif defined(MXASIO_HAS_IO_URING_AS_DEFAULT)
26 | #include "mxasio/detail/io_uring_service.hpp"
27 | #elif defined(MXASIO_HAS_EPOLL)
28 | #include "mxasio/detail/epoll_reactor.hpp"
29 | #elif defined(MXASIO_HAS_KQUEUE)
30 | #include "mxasio/detail/kqueue_reactor.hpp"
31 | #elif defined(MXASIO_HAS_DEV_POLL)
32 | #include "mxasio/detail/dev_poll_reactor.hpp"
33 | #else
34 | #include "mxasio/detail/select_reactor.hpp"
35 | #endif
36 |
37 | #endif // MXASIO_DETAIL_TIMER_SCHEDULER_HPP
38 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/impl/posix_mutex.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/impl/posix_mutex.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_IMPL_POSIX_MUTEX_IPP
12 | #define MXASIO_DETAIL_IMPL_POSIX_MUTEX_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_PTHREADS)
21 |
22 | #include "mxasio/detail/posix_mutex.hpp"
23 | #include "mxasio/detail/throw_error.hpp"
24 | #include "mxasio/error.hpp"
25 |
26 | #include "mxasio/detail/push_options.hpp"
27 |
28 | namespace mxasio {
29 | namespace detail {
30 |
31 | posix_mutex::posix_mutex()
32 | {
33 | int error = ::pthread_mutex_init(&mutex_, 0);
34 | mxasio::error_code ec(error,
35 | mxasio::error::get_system_category());
36 | mxasio::detail::throw_error(ec, "mutex");
37 | }
38 |
39 | } // namespace detail
40 | } // namespace mxasio
41 |
42 | #include "mxasio/detail/pop_options.hpp"
43 |
44 | #endif // defined(MXASIO_HAS_PTHREADS)
45 |
46 | #endif // MXASIO_DETAIL_IMPL_POSIX_MUTEX_IPP
47 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ip/impl/basic_endpoint.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/basic_endpoint.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IP_IMPL_BASIC_ENDPOINT_HPP
12 | #define MXASIO_IP_IMPL_BASIC_ENDPOINT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #if !defined(MXASIO_NO_IOSTREAM)
19 |
20 | #include "mxasio/detail/throw_error.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 | namespace ip {
26 |
27 | template
28 | std::basic_ostream& operator<<(
29 | std::basic_ostream& os,
30 | const basic_endpoint& endpoint)
31 | {
32 | mxasio::ip::detail::endpoint tmp_ep(endpoint.address(), endpoint.port());
33 | return os << tmp_ep.to_string().c_str();
34 | }
35 |
36 | } // namespace ip
37 | } // namespace mxasio
38 |
39 | #include "mxasio/detail/pop_options.hpp"
40 |
41 | #endif // !defined(MXASIO_NO_IOSTREAM)
42 |
43 | #endif // MXASIO_IP_IMPL_BASIC_ENDPOINT_HPP
44 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/high_resolution_timer.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // high_resolution_timer.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_HIGH_RESOLUTION_TIMER_HPP
12 | #define MXASIO_HIGH_RESOLUTION_TIMER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/basic_waitable_timer.hpp"
20 | #include "mxasio/detail/chrono.hpp"
21 |
22 | namespace mxasio {
23 |
24 | /// Typedef for a timer based on the high resolution clock.
25 | /**
26 | * This typedef uses the C++11 @c <chrono> standard library facility, if
27 | * available. Otherwise, it may use the Boost.Chrono library. To explicitly
28 | * utilise Boost.Chrono, use the basic_waitable_timer template directly:
29 | * @code
30 | * typedef basic_waitable_timer timer;
31 | * @endcode
32 | */
33 | typedef basic_waitable_timer<
34 | chrono::high_resolution_clock>
35 | high_resolution_timer;
36 |
37 | } // namespace mxasio
38 |
39 | #endif // MXASIO_HIGH_RESOLUTION_TIMER_HPP
40 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/details/backtracer.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 | #include
8 |
9 | #include
10 | #include
11 | #include
12 |
13 | // Store log messages in circular buffer.
14 | // Useful for storing debug data in case of error/warning happens.
15 |
16 | namespace spdlog {
17 | namespace details {
18 | class SPDLOG_API backtracer {
19 | mutable std::mutex mutex_;
20 | std::atomic enabled_{false};
21 | circular_q messages_;
22 |
23 | public:
24 | backtracer() = default;
25 | backtracer(const backtracer &other);
26 |
27 | backtracer(backtracer &&other) SPDLOG_NOEXCEPT;
28 | backtracer &operator=(backtracer other);
29 |
30 | void enable(size_t size);
31 | void disable();
32 | bool enabled() const;
33 | void push_back(const log_msg &msg);
34 | bool empty() const;
35 |
36 | // pop all items in the q and apply the given fun on each of them.
37 | void foreach_pop(std::function fun);
38 | };
39 |
40 | } // namespace details
41 | } // namespace spdlog
42 |
43 | #ifdef SPDLOG_HEADER_ONLY
44 | #include "backtracer-inl.h"
45 | #endif
46 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/null_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_NULL_MUTEX_HPP
12 | #define MXASIO_DETAIL_NULL_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #include "mxasio/detail/noncopyable.hpp"
21 | #include "mxasio/detail/scoped_lock.hpp"
22 |
23 | #include "mxasio/detail/push_options.hpp"
24 |
25 | namespace mxasio {
26 | namespace detail {
27 |
28 | class null_mutex
29 | : private noncopyable
30 | {
31 | public:
32 | typedef mxasio::detail::scoped_lock scoped_lock;
33 |
34 | // Constructor.
35 | null_mutex()
36 | {
37 | }
38 |
39 | // Destructor.
40 | ~null_mutex()
41 | {
42 | }
43 |
44 | // Lock the mutex.
45 | void lock()
46 | {
47 | }
48 |
49 | // Unlock the mutex.
50 | void unlock()
51 | {
52 | }
53 | };
54 |
55 | } // namespace detail
56 | } // namespace mxasio
57 |
58 | #include "mxasio/detail/pop_options.hpp"
59 |
60 | #endif // MXASIO_DETAIL_NULL_MUTEX_HPP
61 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/details/log_msg.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 | #include
8 |
9 | namespace spdlog {
10 | namespace details {
11 | struct SPDLOG_API log_msg {
12 | log_msg() = default;
13 | log_msg(log_clock::time_point log_time,
14 | source_loc loc,
15 | string_view_t logger_name,
16 | level::level_enum lvl,
17 | string_view_t msg);
18 | log_msg(source_loc loc, string_view_t logger_name, level::level_enum lvl, string_view_t msg);
19 | log_msg(string_view_t logger_name, level::level_enum lvl, string_view_t msg);
20 | log_msg(const log_msg &other) = default;
21 | log_msg &operator=(const log_msg &other) = default;
22 |
23 | string_view_t logger_name;
24 | level::level_enum level{level::off};
25 | log_clock::time_point time;
26 | size_t thread_id{0};
27 |
28 | // wrapping the formatted text with color (updated by pattern_formatter).
29 | mutable size_t color_range_start{0};
30 | mutable size_t color_range_end{0};
31 |
32 | source_loc source;
33 | string_view_t payload;
34 | };
35 | } // namespace details
36 | } // namespace spdlog
37 |
38 | #ifdef SPDLOG_HEADER_ONLY
39 | #include "log_msg-inl.h"
40 | #endif
41 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/global.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/global.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_GLOBAL_HPP
12 | #define MXASIO_DETAIL_GLOBAL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_HAS_THREADS)
21 | #include "mxasio/detail/null_global.hpp"
22 | #elif defined(MXASIO_WINDOWS)
23 | #include "mxasio/detail/win_global.hpp"
24 | #elif defined(MXASIO_HAS_PTHREADS)
25 | #include "mxasio/detail/posix_global.hpp"
26 | #else
27 | #include "mxasio/detail/std_global.hpp"
28 | #endif
29 |
30 | namespace mxasio {
31 | namespace detail {
32 |
33 | template
34 | inline T& global()
35 | {
36 | #if !defined(MXASIO_HAS_THREADS)
37 | return null_global();
38 | #elif defined(MXASIO_WINDOWS)
39 | return win_global();
40 | #elif defined(MXASIO_HAS_PTHREADS)
41 | return posix_global();
42 | #else
43 | return std_global();
44 | #endif
45 | }
46 |
47 | } // namespace detail
48 | } // namespace mxasio
49 |
50 | #endif // MXASIO_DETAIL_GLOBAL_HPP
51 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/impl/posix_tss_ptr.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/impl/posix_tss_ptr.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP
12 | #define MXASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_PTHREADS)
21 |
22 | #include "mxasio/detail/posix_tss_ptr.hpp"
23 | #include "mxasio/detail/throw_error.hpp"
24 | #include "mxasio/error.hpp"
25 |
26 | #include "mxasio/detail/push_options.hpp"
27 |
28 | namespace mxasio {
29 | namespace detail {
30 |
31 | void posix_tss_ptr_create(pthread_key_t& key)
32 | {
33 | int error = ::pthread_key_create(&key, 0);
34 | mxasio::error_code ec(error,
35 | mxasio::error::get_system_category());
36 | mxasio::detail::throw_error(ec, "tss");
37 | }
38 |
39 | } // namespace detail
40 | } // namespace mxasio
41 |
42 | #include "mxasio/detail/pop_options.hpp"
43 |
44 | #endif // defined(MXASIO_HAS_PTHREADS)
45 |
46 | #endif // MXASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP
47 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/scheduler_task.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/scheduler_task.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_SCHEDULER_TASK_HPP
12 | #define MXASIO_DETAIL_SCHEDULER_TASK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/op_queue.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 | namespace detail {
24 |
25 | class scheduler_operation;
26 |
27 | // Base class for all tasks that may be run by a scheduler.
28 | class scheduler_task
29 | {
30 | public:
31 | // Run the task once until interrupted or events are ready to be dispatched.
32 | virtual void run(long usec, op_queue& ops) = 0;
33 |
34 | // Interrupt the task.
35 | virtual void interrupt() = 0;
36 |
37 | protected:
38 | // Prevent deletion through this type.
39 | ~scheduler_task()
40 | {
41 | }
42 | };
43 |
44 | } // namespace detail
45 | } // namespace mxasio
46 |
47 | #include "mxasio/detail/pop_options.hpp"
48 |
49 | #endif // MXASIO_DETAIL_SCHEDULER_TASK_HPP
50 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/cfg/argv.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 | #include
6 | #include
7 |
8 | //
9 | // Init log levels using each argv entry that starts with "SPDLOG_LEVEL="
10 | //
11 | // set all loggers to debug level:
12 | // example.exe "SPDLOG_LEVEL=debug"
13 |
14 | // set logger1 to trace level
15 | // example.exe "SPDLOG_LEVEL=logger1=trace"
16 |
17 | // turn off all logging except for logger1 and logger2:
18 | // example.exe "SPDLOG_LEVEL=off,logger1=debug,logger2=info"
19 |
20 | namespace spdlog {
21 | namespace cfg {
22 |
23 | // search for SPDLOG_LEVEL= in the args and use it to init the levels
24 | inline void load_argv_levels(int argc, const char **argv) {
25 | const std::string spdlog_level_prefix = "SPDLOG_LEVEL=";
26 | for (int i = 1; i < argc; i++) {
27 | std::string arg = argv[i];
28 | if (arg.find(spdlog_level_prefix) == 0) {
29 | auto levels_string = arg.substr(spdlog_level_prefix.size());
30 | helpers::load_levels(levels_string);
31 | }
32 | }
33 | }
34 |
35 | inline void load_argv_levels(int argc, char **argv) {
36 | load_argv_levels(argc, const_cast(argv));
37 | }
38 |
39 | } // namespace cfg
40 | } // namespace spdlog
41 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ssl/stream_base.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/stream_base.hpp
3 | // ~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_SSL_STREAM_BASE_HPP
12 | #define MXASIO_SSL_STREAM_BASE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 | namespace ssl {
24 |
25 | /// The stream_base class is used as a base for the mxasio::ssl::stream
26 | /// class template so that we have a common place to define various enums.
27 | class stream_base
28 | {
29 | public:
30 | /// Different handshake types.
31 | enum handshake_type
32 | {
33 | /// Perform handshaking as a client.
34 | client,
35 |
36 | /// Perform handshaking as a server.
37 | server
38 | };
39 |
40 | protected:
41 | /// Protected destructor to prevent deletion through this type.
42 | ~stream_base()
43 | {
44 | }
45 | };
46 |
47 | } // namespace ssl
48 | } // namespace mxasio
49 |
50 | #include "mxasio/detail/pop_options.hpp"
51 |
52 | #endif // MXASIO_SSL_STREAM_BASE_HPP
53 |
--------------------------------------------------------------------------------
/extern/asio/LICENSE:
--------------------------------------------------------------------------------
1 | Boost Software License - Version 1.0 - August 17th, 2003
2 |
3 | Permission is hereby granted, free of charge, to any person or organization
4 | obtaining a copy of the software and accompanying documentation covered by
5 | this license (the "Software") to use, reproduce, display, distribute,
6 | execute, and transmit the Software, and to prepare derivative works of the
7 | Software, and to permit third-parties to whom the Software is furnished to
8 | do so, all subject to the following:
9 |
10 | The copyright notices in the Software and this entire statement, including
11 | the above license grant, this restriction and the following disclaimer,
12 | must be included in all copies of the Software, in whole or in part, and
13 | all derivative works of the Software, unless such copies or derivative
14 | works are solely in the form of machine-executable object code generated by
15 | a source language processor.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 | DEALINGS IN THE SOFTWARE.
24 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/execution/bad_executor.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // execution/bad_executor.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_EXECUTION_BAD_EXECUTOR_HPP
12 | #define MXASIO_EXECUTION_BAD_EXECUTOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 | namespace execution {
24 |
25 | /// Exception thrown when trying to access an empty polymorphic executor.
26 | class bad_executor
27 | : public std::exception
28 | {
29 | public:
30 | /// Constructor.
31 | MXASIO_DECL bad_executor() noexcept;
32 |
33 | /// Obtain message associated with exception.
34 | MXASIO_DECL virtual const char* what() const noexcept;
35 | };
36 |
37 | } // namespace execution
38 | } // namespace mxasio
39 |
40 | #include "mxasio/detail/pop_options.hpp"
41 |
42 | #if defined(MXASIO_HEADER_ONLY)
43 | #include "mxasio/execution/impl/bad_executor.ipp"
44 | #endif // defined(MXASIO_HEADER_ONLY)
45 |
46 | #endif // MXASIO_EXECUTION_BAD_EXECUTOR_HPP
47 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/sinks/ostream_sink.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 | #include
8 |
9 | #include
10 | #include
11 |
12 | namespace spdlog {
13 | namespace sinks {
14 | template
15 | class ostream_sink final : public base_sink {
16 | public:
17 | explicit ostream_sink(std::ostream &os, bool force_flush = false)
18 | : ostream_(os),
19 | force_flush_(force_flush) {}
20 | ostream_sink(const ostream_sink &) = delete;
21 | ostream_sink &operator=(const ostream_sink &) = delete;
22 |
23 | protected:
24 | void sink_it_(const details::log_msg &msg) override {
25 | memory_buf_t formatted;
26 | base_sink::formatter_->format(msg, formatted);
27 | ostream_.write(formatted.data(), static_cast(formatted.size()));
28 | if (force_flush_) {
29 | ostream_.flush();
30 | }
31 | }
32 |
33 | void flush_() override { ostream_.flush(); }
34 |
35 | std::ostream &ostream_;
36 | bool force_flush_;
37 | };
38 |
39 | using ostream_sink_mt = ostream_sink;
40 | using ostream_sink_st = ostream_sink;
41 |
42 | } // namespace sinks
43 | } // namespace spdlog
44 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/sinks/null_sink.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #include
7 | #include
8 | #include
9 |
10 | #include
11 |
12 | namespace spdlog {
13 | namespace sinks {
14 |
15 | template
16 | class null_sink final : public base_sink {
17 | protected:
18 | void sink_it_(const details::log_msg &) override {}
19 | void flush_() override {}
20 | };
21 |
22 | using null_sink_mt = null_sink;
23 | using null_sink_st = null_sink;
24 |
25 | } // namespace sinks
26 |
27 | template
28 | inline std::shared_ptr null_logger_mt(const std::string &logger_name) {
29 | auto null_logger = Factory::template create(logger_name);
30 | null_logger->set_level(level::off);
31 | return null_logger;
32 | }
33 |
34 | template
35 | inline std::shared_ptr null_logger_st(const std::string &logger_name) {
36 | auto null_logger = Factory::template create(logger_name);
37 | null_logger->set_level(level::off);
38 | return null_logger;
39 | }
40 |
41 | } // namespace spdlog
42 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/signal_op.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/signal_op.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_SIGNAL_OP_HPP
12 | #define MXASIO_DETAIL_SIGNAL_OP_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/operation.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace detail {
25 |
26 | class signal_op
27 | : public operation
28 | {
29 | public:
30 | // The error code to be passed to the completion handler.
31 | mxasio::error_code ec_;
32 |
33 | // The operation key used for targeted cancellation.
34 | void* cancellation_key_;
35 |
36 | // The signal number to be passed to the completion handler.
37 | int signal_number_;
38 |
39 | protected:
40 | signal_op(func_type func)
41 | : operation(func),
42 | cancellation_key_(0),
43 | signal_number_(0)
44 | {
45 | }
46 | };
47 |
48 | } // namespace detail
49 | } // namespace mxasio
50 |
51 | #include "mxasio/detail/pop_options.hpp"
52 |
53 | #endif // MXASIO_DETAIL_SIGNAL_OP_HPP
54 |
--------------------------------------------------------------------------------
/tools/acclBench/acclBench.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav
15 |
16 |
17 |
18 |
19 | Source Files
20 |
21 |
22 | Source Files
23 |
24 |
25 |
26 |
27 | Header Files
28 |
29 |
30 | Header Files
31 |
32 |
33 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/is_executor.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // is_executor.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IS_EXECUTOR_HPP
12 | #define MXASIO_IS_EXECUTOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/is_executor.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 |
25 | /// The is_executor trait detects whether a type T meets the Executor type
26 | /// requirements.
27 | /**
28 | * Class template @c is_executor is a UnaryTypeTrait that is derived from @c
29 | * true_type if the type @c T meets the syntactic requirements for Executor,
30 | * otherwise @c false_type.
31 | */
32 | template
33 | struct is_executor
34 | #if defined(GENERATING_DOCUMENTATION)
35 | : integral_constant
36 | #else // defined(GENERATING_DOCUMENTATION)
37 | : mxasio::detail::is_executor
38 | #endif // defined(GENERATING_DOCUMENTATION)
39 | {
40 | };
41 |
42 | } // namespace mxasio
43 |
44 | #include "mxasio/detail/pop_options.hpp"
45 |
46 | #endif // MXASIO_IS_EXECUTOR_HPP
47 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/timer_scheduler_fwd.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/timer_scheduler_fwd.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP
12 | #define MXASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | namespace mxasio {
21 | namespace detail {
22 |
23 | #if defined(MXASIO_WINDOWS_RUNTIME)
24 | typedef class winrt_timer_scheduler timer_scheduler;
25 | #elif defined(MXASIO_HAS_IOCP)
26 | typedef class win_iocp_io_context timer_scheduler;
27 | #elif defined(MXASIO_HAS_IO_URING_AS_DEFAULT)
28 | typedef class io_uring_service timer_scheduler;
29 | #elif defined(MXASIO_HAS_EPOLL)
30 | typedef class epoll_reactor timer_scheduler;
31 | #elif defined(MXASIO_HAS_KQUEUE)
32 | typedef class kqueue_reactor timer_scheduler;
33 | #elif defined(MXASIO_HAS_DEV_POLL)
34 | typedef class dev_poll_reactor timer_scheduler;
35 | #else
36 | typedef class select_reactor timer_scheduler;
37 | #endif
38 |
39 | } // namespace detail
40 | } // namespace mxasio
41 |
42 | #endif // MXASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP
43 |
--------------------------------------------------------------------------------
/extern/spdlog/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Gabi Melman.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
23 | -- NOTE: Third party dependency used by this software --
24 | This software depends on the fmt lib (MIT License),
25 | and users must comply to its license: https://raw.githubusercontent.com/fmtlib/fmt/master/LICENSE
26 |
27 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/null_static_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_static_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_NULL_STATIC_MUTEX_HPP
12 | #define MXASIO_DETAIL_NULL_STATIC_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_HAS_THREADS)
21 |
22 | #include "mxasio/detail/scoped_lock.hpp"
23 |
24 | #include "mxasio/detail/push_options.hpp"
25 |
26 | namespace mxasio {
27 | namespace detail {
28 |
29 | struct null_static_mutex
30 | {
31 | typedef mxasio::detail::scoped_lock scoped_lock;
32 |
33 | // Initialise the mutex.
34 | void init()
35 | {
36 | }
37 |
38 | // Lock the mutex.
39 | void lock()
40 | {
41 | }
42 |
43 | // Unlock the mutex.
44 | void unlock()
45 | {
46 | }
47 |
48 | int unused_;
49 | };
50 |
51 | #define MXASIO_NULL_STATIC_MUTEX_INIT { 0 }
52 |
53 | } // namespace detail
54 | } // namespace mxasio
55 |
56 | #include "mxasio/detail/pop_options.hpp"
57 |
58 | #endif // !defined(MXASIO_HAS_THREADS)
59 |
60 | #endif // MXASIO_DETAIL_NULL_STATIC_MUTEX_HPP
61 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/chrono.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/chrono.hpp
3 | // ~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_CHRONO_HPP
12 | #define MXASIO_DETAIL_CHRONO_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 |
21 | namespace mxasio {
22 | namespace chrono {
23 |
24 | using std::chrono::duration;
25 | using std::chrono::time_point;
26 | using std::chrono::duration_cast;
27 | using std::chrono::nanoseconds;
28 | using std::chrono::microseconds;
29 | using std::chrono::milliseconds;
30 | using std::chrono::seconds;
31 | using std::chrono::minutes;
32 | using std::chrono::hours;
33 | using std::chrono::time_point_cast;
34 | #if defined(MXASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK)
35 | typedef std::chrono::monotonic_clock steady_clock;
36 | #else // defined(MXASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK)
37 | using std::chrono::steady_clock;
38 | #endif // defined(MXASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK)
39 | using std::chrono::system_clock;
40 | using std::chrono::high_resolution_clock;
41 |
42 | } // namespace chrono
43 | } // namespace mxasio
44 |
45 | #endif // MXASIO_DETAIL_CHRONO_HPP
46 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ts/internet.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ts/internet.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_TS_INTERNET_HPP
12 | #define MXASIO_TS_INTERNET_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/ip/address.hpp"
19 | #include "mxasio/ip/address_v4.hpp"
20 | #include "mxasio/ip/address_v4_iterator.hpp"
21 | #include "mxasio/ip/address_v4_range.hpp"
22 | #include "mxasio/ip/address_v6.hpp"
23 | #include "mxasio/ip/address_v6_iterator.hpp"
24 | #include "mxasio/ip/address_v6_range.hpp"
25 | #include "mxasio/ip/bad_address_cast.hpp"
26 | #include "mxasio/ip/basic_endpoint.hpp"
27 | #include "mxasio/ip/basic_resolver_query.hpp"
28 | #include "mxasio/ip/basic_resolver_entry.hpp"
29 | #include "mxasio/ip/basic_resolver_iterator.hpp"
30 | #include "mxasio/ip/basic_resolver.hpp"
31 | #include "mxasio/ip/host_name.hpp"
32 | #include "mxasio/ip/network_v4.hpp"
33 | #include "mxasio/ip/network_v6.hpp"
34 | #include "mxasio/ip/tcp.hpp"
35 | #include "mxasio/ip/udp.hpp"
36 | #include "mxasio/ip/v6_only.hpp"
37 | #include "mxasio/ip/unicast.hpp"
38 | #include "mxasio/ip/multicast.hpp"
39 |
40 | #endif // MXASIO_TS_INTERNET_HPP
41 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/impl/throw_error.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/impl/throw_error.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_IMPL_THROW_ERROR_IPP
12 | #define MXASIO_DETAIL_IMPL_THROW_ERROR_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/throw_error.hpp"
20 | #include "mxasio/system_error.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 | namespace detail {
26 |
27 | void do_throw_error(
28 | const mxasio::error_code& err
29 | MXASIO_SOURCE_LOCATION_PARAM)
30 | {
31 | mxasio::system_error e(err);
32 | mxasio::detail::throw_exception(e MXASIO_SOURCE_LOCATION_ARG);
33 | }
34 |
35 | void do_throw_error(
36 | const mxasio::error_code& err,
37 | const char* location
38 | MXASIO_SOURCE_LOCATION_PARAM)
39 | {
40 | mxasio::system_error e(err, location);
41 | mxasio::detail::throw_exception(e MXASIO_SOURCE_LOCATION_ARG);
42 | }
43 |
44 | } // namespace detail
45 | } // namespace mxasio
46 |
47 | #include "mxasio/detail/pop_options.hpp"
48 |
49 | #endif // MXASIO_DETAIL_IMPL_THROW_ERROR_IPP
50 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/signal_blocker.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/signal_blocker.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_SIGNAL_BLOCKER_HPP
12 | #define MXASIO_DETAIL_SIGNAL_BLOCKER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_HAS_THREADS) || defined(MXASIO_WINDOWS) \
21 | || defined(MXASIO_WINDOWS_RUNTIME) \
22 | || defined(__CYGWIN__) || defined(__SYMBIAN32__)
23 | #include "mxasio/detail/null_signal_blocker.hpp"
24 | #elif defined(MXASIO_HAS_PTHREADS)
25 | #include "mxasio/detail/posix_signal_blocker.hpp"
26 | #else
27 | # error Only Windows and POSIX are supported!
28 | #endif
29 |
30 | namespace mxasio {
31 | namespace detail {
32 |
33 | #if !defined(MXASIO_HAS_THREADS) || defined(MXASIO_WINDOWS) \
34 | || defined(MXASIO_WINDOWS_RUNTIME) \
35 | || defined(__CYGWIN__) || defined(__SYMBIAN32__)
36 | typedef null_signal_blocker signal_blocker;
37 | #elif defined(MXASIO_HAS_PTHREADS)
38 | typedef posix_signal_blocker signal_blocker;
39 | #endif
40 |
41 | } // namespace detail
42 | } // namespace mxasio
43 |
44 | #endif // MXASIO_DETAIL_SIGNAL_BLOCKER_HPP
45 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/is_contiguous_iterator.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // is_contiguous_iterator.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IS_CONTIGUOUS_ITERATOR_HPP
12 | #define MXASIO_IS_CONTIGUOUS_ITERATOR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 | #include "mxasio/detail/type_traits.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 |
26 | /// The is_contiguous_iterator class is a traits class that may be used to
27 | /// determine whether a type is a contiguous iterator.
28 | template
29 | struct is_contiguous_iterator :
30 | #if defined(MXASIO_HAS_STD_CONCEPTS) \
31 | || defined(GENERATING_DOCUMENTATION)
32 | integral_constant>
33 | #else // defined(MXASIO_HAS_STD_CONCEPTS)
34 | // || defined(GENERATING_DOCUMENTATION)
35 | is_pointer
36 | #endif // defined(MXASIO_HAS_STD_CONCEPTS)
37 | // || defined(GENERATING_DOCUMENTATION)
38 | {
39 | };
40 |
41 | } // namespace mxasio
42 |
43 | #include "mxasio/detail/pop_options.hpp"
44 |
45 | #endif // MXASIO_IS_CONTIGUOUS_ITERATOR_HPP
46 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/null_global.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_global.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_NULL_GLOBAL_HPP
12 | #define MXASIO_DETAIL_NULL_GLOBAL_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 | namespace detail {
24 |
25 | template
26 | struct null_global_impl
27 | {
28 | null_global_impl()
29 | : ptr_(0)
30 | {
31 | }
32 |
33 | // Destructor automatically cleans up the global.
34 | ~null_global_impl()
35 | {
36 | delete ptr_;
37 | }
38 |
39 | static null_global_impl instance_;
40 | T* ptr_;
41 | };
42 |
43 | template
44 | null_global_impl null_global_impl::instance_;
45 |
46 | template
47 | T& null_global()
48 | {
49 | if (null_global_impl::instance_.ptr_ == 0)
50 | null_global_impl::instance_.ptr_ = new T;
51 | return *null_global_impl::instance_.ptr_;
52 | }
53 |
54 | } // namespace detail
55 | } // namespace mxasio
56 |
57 | #include "mxasio/detail/pop_options.hpp"
58 |
59 | #endif // MXASIO_DETAIL_NULL_GLOBAL_HPP
60 |
--------------------------------------------------------------------------------
/mx_accl/memx-accl.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.9.34622.214
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "memx-accl", "memx-accl.vcxproj", "{6DE13FB8-6E7C-4A60-8418-7BF6AF5106EF}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {6DE13FB8-6E7C-4A60-8418-7BF6AF5106EF}.Debug|x64.ActiveCfg = Debug|x64
17 | {6DE13FB8-6E7C-4A60-8418-7BF6AF5106EF}.Debug|x64.Build.0 = Debug|x64
18 | {6DE13FB8-6E7C-4A60-8418-7BF6AF5106EF}.Debug|x86.ActiveCfg = Debug|Win32
19 | {6DE13FB8-6E7C-4A60-8418-7BF6AF5106EF}.Debug|x86.Build.0 = Debug|Win32
20 | {6DE13FB8-6E7C-4A60-8418-7BF6AF5106EF}.Release|x64.ActiveCfg = Release|x64
21 | {6DE13FB8-6E7C-4A60-8418-7BF6AF5106EF}.Release|x64.Build.0 = Release|x64
22 | {6DE13FB8-6E7C-4A60-8418-7BF6AF5106EF}.Release|x86.ActiveCfg = Release|Win32
23 | {6DE13FB8-6E7C-4A60-8418-7BF6AF5106EF}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {E04EA6C2-0526-4C03-A322-C8FA34311D33}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/handler_cont_helpers.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/handler_cont_helpers.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_HANDLER_CONT_HELPERS_HPP
12 | #define MXASIO_DETAIL_HANDLER_CONT_HELPERS_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/memory.hpp"
20 | #include "mxasio/handler_continuation_hook.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | // Calls to asio_handler_is_continuation must be made from a namespace that
25 | // does not contain overloads of this function. This namespace is defined here
26 | // for that purpose.
27 | namespace mxasio_handler_cont_helpers {
28 |
29 | template
30 | inline bool is_continuation(Context& context)
31 | {
32 | #if !defined(MXASIO_HAS_HANDLER_HOOKS)
33 | return false;
34 | #else
35 | using mxasio::asio_handler_is_continuation;
36 | return asio_handler_is_continuation(
37 | mxasio::detail::addressof(context));
38 | #endif
39 | }
40 |
41 | } // namespace mxasio_handler_cont_helpers
42 |
43 | #include "mxasio/detail/pop_options.hpp"
44 |
45 | #endif // MXASIO_DETAIL_HANDLER_CONT_HELPERS_HPP
46 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/null_tss_ptr.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/null_tss_ptr.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_NULL_TSS_PTR_HPP
12 | #define MXASIO_DETAIL_NULL_TSS_PTR_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_HAS_THREADS)
21 |
22 | #include "mxasio/detail/noncopyable.hpp"
23 |
24 | #include "mxasio/detail/push_options.hpp"
25 |
26 | namespace mxasio {
27 | namespace detail {
28 |
29 | template
30 | class null_tss_ptr
31 | : private noncopyable
32 | {
33 | public:
34 | // Constructor.
35 | null_tss_ptr()
36 | : value_(0)
37 | {
38 | }
39 |
40 | // Destructor.
41 | ~null_tss_ptr()
42 | {
43 | }
44 |
45 | // Get the value.
46 | operator T*() const
47 | {
48 | return value_;
49 | }
50 |
51 | // Set the value.
52 | void operator=(T* value)
53 | {
54 | value_ = value;
55 | }
56 |
57 | private:
58 | T* value_;
59 | };
60 |
61 | } // namespace detail
62 | } // namespace mxasio
63 |
64 | #include "mxasio/detail/pop_options.hpp"
65 |
66 | #endif // !defined(MXASIO_HAS_THREADS)
67 |
68 | #endif // MXASIO_DETAIL_NULL_TSS_PTR_HPP
69 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/std_fenced_block.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/std_fenced_block.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_STD_FENCED_BLOCK_HPP
12 | #define MXASIO_DETAIL_STD_FENCED_BLOCK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 | #include "mxasio/detail/noncopyable.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 | namespace detail {
26 |
27 | class std_fenced_block
28 | : private noncopyable
29 | {
30 | public:
31 | enum half_t { half };
32 | enum full_t { full };
33 |
34 | // Constructor for a half fenced block.
35 | explicit std_fenced_block(half_t)
36 | {
37 | }
38 |
39 | // Constructor for a full fenced block.
40 | explicit std_fenced_block(full_t)
41 | {
42 | std::atomic_thread_fence(std::memory_order_acquire);
43 | }
44 |
45 | // Destructor.
46 | ~std_fenced_block()
47 | {
48 | std::atomic_thread_fence(std::memory_order_release);
49 | }
50 | };
51 |
52 | } // namespace detail
53 | } // namespace mxasio
54 |
55 | #include "mxasio/detail/pop_options.hpp"
56 |
57 | #endif // MXASIO_DETAIL_STD_FENCED_BLOCK_HPP
58 |
--------------------------------------------------------------------------------
/tools/acclBench/acclBench.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.11.35303.130
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "acclBench", "acclBench.vcxproj", "{82FCA772-84A0-464A-B5FC-01E6614D472F}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {82FCA772-84A0-464A-B5FC-01E6614D472F}.Debug|x64.ActiveCfg = Debug|x64
17 | {82FCA772-84A0-464A-B5FC-01E6614D472F}.Debug|x64.Build.0 = Debug|x64
18 | {82FCA772-84A0-464A-B5FC-01E6614D472F}.Debug|x86.ActiveCfg = Debug|Win32
19 | {82FCA772-84A0-464A-B5FC-01E6614D472F}.Debug|x86.Build.0 = Debug|Win32
20 | {82FCA772-84A0-464A-B5FC-01E6614D472F}.Release|x64.ActiveCfg = Release|x64
21 | {82FCA772-84A0-464A-B5FC-01E6614D472F}.Release|x64.Build.0 = Release|x64
22 | {82FCA772-84A0-464A-B5FC-01E6614D472F}.Release|x86.ActiveCfg = Release|Win32
23 | {82FCA772-84A0-464A-B5FC-01E6614D472F}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {2FB1DE23-E28A-4C6B-AFDD-EE1231A6167D}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/std_mutex.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/std_mutex.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_STD_MUTEX_HPP
12 | #define MXASIO_DETAIL_STD_MUTEX_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 | #include "mxasio/detail/noncopyable.hpp"
21 | #include "mxasio/detail/scoped_lock.hpp"
22 |
23 | #include "mxasio/detail/push_options.hpp"
24 |
25 | namespace mxasio {
26 | namespace detail {
27 |
28 | class std_event;
29 |
30 | class std_mutex
31 | : private noncopyable
32 | {
33 | public:
34 | typedef mxasio::detail::scoped_lock scoped_lock;
35 |
36 | // Constructor.
37 | std_mutex()
38 | {
39 | }
40 |
41 | // Destructor.
42 | ~std_mutex()
43 | {
44 | }
45 |
46 | // Lock the mutex.
47 | void lock()
48 | {
49 | mutex_.lock();
50 | }
51 |
52 | // Unlock the mutex.
53 | void unlock()
54 | {
55 | mutex_.unlock();
56 | }
57 |
58 | private:
59 | friend class std_event;
60 | std::mutex mutex_;
61 | };
62 |
63 | } // namespace detail
64 | } // namespace mxasio
65 |
66 | #include "mxasio/detail/pop_options.hpp"
67 |
68 | #endif // MXASIO_DETAIL_STD_MUTEX_HPP
69 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/select_interrupter.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/select_interrupter.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_SELECT_INTERRUPTER_HPP
12 | #define MXASIO_DETAIL_SELECT_INTERRUPTER_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if !defined(MXASIO_WINDOWS_RUNTIME)
21 |
22 | #if defined(MXASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__)
23 | #include "mxasio/detail/socket_select_interrupter.hpp"
24 | #elif defined(MXASIO_HAS_EVENTFD)
25 | #include "mxasio/detail/eventfd_select_interrupter.hpp"
26 | #else
27 | #include "mxasio/detail/pipe_select_interrupter.hpp"
28 | #endif
29 |
30 | namespace mxasio {
31 | namespace detail {
32 |
33 | #if defined(MXASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__)
34 | typedef socket_select_interrupter select_interrupter;
35 | #elif defined(MXASIO_HAS_EVENTFD)
36 | typedef eventfd_select_interrupter select_interrupter;
37 | #else
38 | typedef pipe_select_interrupter select_interrupter;
39 | #endif
40 |
41 | } // namespace detail
42 | } // namespace mxasio
43 |
44 | #endif // !defined(MXASIO_WINDOWS_RUNTIME)
45 |
46 | #endif // MXASIO_DETAIL_SELECT_INTERRUPTER_HPP
47 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/fmt/bundled/fmt.license.rst:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012 - present, Victor Zverovich and {fmt} contributors
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
22 | --- Optional exception to the license ---
23 |
24 | As an exception, if, as a result of your compiling your source code, portions
25 | of this Software are embedded into a machine-executable object form of such
26 | source code, you may redistribute such embedded portions in such object form
27 | without including the above copyright and permission notices.
28 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/multiple_exceptions.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // multiple_exceptions.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_MULTIPLE_EXCEPTIONS_HPP
12 | #define MXASIO_MULTIPLE_EXCEPTIONS_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 | #include "mxasio/detail/push_options.hpp"
21 |
22 | namespace mxasio {
23 |
24 | /// Exception thrown when there are multiple pending exceptions to rethrow.
25 | class multiple_exceptions
26 | : public std::exception
27 | {
28 | public:
29 | /// Constructor.
30 | MXASIO_DECL multiple_exceptions(
31 | std::exception_ptr first) noexcept;
32 |
33 | /// Obtain message associated with exception.
34 | MXASIO_DECL virtual const char* what() const
35 | noexcept;
36 |
37 | /// Obtain a pointer to the first exception.
38 | MXASIO_DECL std::exception_ptr first_exception() const;
39 |
40 | private:
41 | std::exception_ptr first_;
42 | };
43 |
44 | } // namespace mxasio
45 |
46 | #include "mxasio/detail/pop_options.hpp"
47 |
48 | #if defined(MXASIO_HEADER_ONLY)
49 | #include "mxasio/impl/multiple_exceptions.ipp"
50 | #endif // defined(MXASIO_HEADER_ONLY)
51 |
52 | #endif // MXASIO_MULTIPLE_EXCEPTIONS_HPP
53 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ip/impl/host_name.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/host_name.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IP_IMPL_HOST_NAME_IPP
12 | #define MXASIO_IP_IMPL_HOST_NAME_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/socket_ops.hpp"
20 | #include "mxasio/detail/throw_error.hpp"
21 | #include "mxasio/detail/winsock_init.hpp"
22 | #include "mxasio/ip/host_name.hpp"
23 |
24 | #include "mxasio/detail/push_options.hpp"
25 |
26 | namespace mxasio {
27 | namespace ip {
28 |
29 | std::string host_name()
30 | {
31 | char name[1024];
32 | mxasio::error_code ec;
33 | if (mxasio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0)
34 | {
35 | mxasio::detail::throw_error(ec);
36 | return std::string();
37 | }
38 | return std::string(name);
39 | }
40 |
41 | std::string host_name(mxasio::error_code& ec)
42 | {
43 | char name[1024];
44 | if (mxasio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0)
45 | return std::string();
46 | return std::string(name);
47 | }
48 |
49 | } // namespace ip
50 | } // namespace mxasio
51 |
52 | #include "mxasio/detail/pop_options.hpp"
53 |
54 | #endif // MXASIO_IP_IMPL_HOST_NAME_IPP
55 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ip/impl/network_v6.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/network_v6.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_IP_IMPL_NETWORK_V6_HPP
12 | #define MXASIO_IP_IMPL_NETWORK_V6_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #if !defined(MXASIO_NO_IOSTREAM)
19 |
20 | #include "mxasio/detail/throw_error.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 | namespace ip {
26 |
27 | template
28 | std::basic_ostream& operator<<(
29 | std::basic_ostream& os, const network_v6& addr)
30 | {
31 | mxasio::error_code ec;
32 | std::string s = addr.to_string(ec);
33 | if (ec)
34 | {
35 | if (os.exceptions() & std::basic_ostream::failbit)
36 | mxasio::detail::throw_error(ec);
37 | else
38 | os.setstate(std::basic_ostream::failbit);
39 | }
40 | else
41 | for (std::string::iterator i = s.begin(); i != s.end(); ++i)
42 | os << os.widen(*i);
43 | return os;
44 | }
45 |
46 | } // namespace ip
47 | } // namespace mxasio
48 |
49 | #include "mxasio/detail/pop_options.hpp"
50 |
51 | #endif // !defined(MXASIO_NO_IOSTREAM)
52 |
53 | #endif // MXASIO_IP_IMPL_NETWORK_V6_HPP
54 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/source_location.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/source_location.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_SOURCE_LOCATION_HPP
12 | #define MXASIO_DETAIL_SOURCE_LOCATION_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_HAS_SOURCE_LOCATION)
21 |
22 | #if defined(MXASIO_HAS_STD_SOURCE_LOCATION)
23 | # include
24 | #elif defined(MXASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION)
25 | # include
26 | #else // defined(MXASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION)
27 | # error MXASIO_HAS_SOURCE_LOCATION is set \
28 | but no source_location is available
29 | #endif // defined(MXASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION)
30 |
31 | namespace mxasio {
32 | namespace detail {
33 |
34 | #if defined(MXASIO_HAS_STD_SOURCE_LOCATION)
35 | using std::source_location;
36 | #elif defined(MXASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION)
37 | using std::experimental::source_location;
38 | #endif // defined(MXASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION)
39 |
40 | } // namespace detail
41 | } // namespace mxasio
42 |
43 | #endif // defined(MXASIO_HAS_SOURCE_LOCATION)
44 |
45 | #endif // MXASIO_DETAIL_SOURCE_LOCATION_HPP
46 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/std_thread.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/std_thread.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_STD_THREAD_HPP
12 | #define MXASIO_DETAIL_STD_THREAD_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include
20 | #include "mxasio/detail/noncopyable.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 | namespace detail {
26 |
27 | class std_thread
28 | : private noncopyable
29 | {
30 | public:
31 | // Constructor.
32 | template
33 | std_thread(Function f, unsigned int = 0)
34 | : thread_(f)
35 | {
36 | }
37 |
38 | // Destructor.
39 | ~std_thread()
40 | {
41 | join();
42 | }
43 |
44 | // Wait for the thread to exit.
45 | void join()
46 | {
47 | if (thread_.joinable())
48 | thread_.join();
49 | }
50 |
51 | // Get number of CPUs.
52 | static std::size_t hardware_concurrency()
53 | {
54 | return std::thread::hardware_concurrency();
55 | }
56 |
57 | private:
58 | std::thread thread_;
59 | };
60 |
61 | } // namespace detail
62 | } // namespace mxasio
63 |
64 | #include "mxasio/detail/pop_options.hpp"
65 |
66 | #endif // MXASIO_DETAIL_STD_THREAD_HPP
67 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/experimental/detail/has_signature.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // experimental/detail/has_signature.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_EXPERIMENTAL_DETAIL_HAS_SIGNATURE_HPP
12 | #define MXASIO_EXPERIMENTAL_DETAIL_HAS_SIGNATURE_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 | #include "mxasio/detail/type_traits.hpp"
20 |
21 | #include "mxasio/detail/push_options.hpp"
22 |
23 | namespace mxasio {
24 | namespace experimental {
25 | namespace detail {
26 |
27 | template
28 | struct has_signature;
29 |
30 | template
31 | struct has_signature;
32 |
33 | template
34 | struct has_signature : false_type
35 | {
36 | };
37 |
38 | template
39 | struct has_signature : true_type
40 | {
41 | };
42 |
43 | template
44 | struct has_signature : has_signature
45 | {
46 | };
47 |
48 | } // namespace detail
49 | } // namespace experimental
50 | } // namespace mxasio
51 |
52 | #include "mxasio/detail/pop_options.hpp"
53 |
54 | #endif // MXASIO_EXPERIMENTAL_DETAIL_HAS_SIGNATURE_HPP
55 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/impl/serial_port_base.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // impl/serial_port_base.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
7 | //
8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 | //
11 |
12 | #ifndef MXASIO_IMPL_SERIAL_PORT_BASE_HPP
13 | #define MXASIO_IMPL_SERIAL_PORT_BASE_HPP
14 |
15 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
16 | # pragma once
17 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18 |
19 | #include "mxasio/detail/push_options.hpp"
20 |
21 | namespace mxasio {
22 |
23 | inline serial_port_base::baud_rate::baud_rate(unsigned int rate)
24 | : value_(rate)
25 | {
26 | }
27 |
28 | inline unsigned int serial_port_base::baud_rate::value() const
29 | {
30 | return value_;
31 | }
32 |
33 | inline serial_port_base::flow_control::type
34 | serial_port_base::flow_control::value() const
35 | {
36 | return value_;
37 | }
38 |
39 | inline serial_port_base::parity::type serial_port_base::parity::value() const
40 | {
41 | return value_;
42 | }
43 |
44 | inline serial_port_base::stop_bits::type
45 | serial_port_base::stop_bits::value() const
46 | {
47 | return value_;
48 | }
49 |
50 | inline unsigned int serial_port_base::character_size::value() const
51 | {
52 | return value_;
53 | }
54 |
55 | } // namespace mxasio
56 |
57 | #include "mxasio/detail/pop_options.hpp"
58 |
59 | #endif // MXASIO_IMPL_SERIAL_PORT_BASE_HPP
60 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/details/log_msg-inl.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #ifndef SPDLOG_HEADER_ONLY
7 | #include
8 | #endif
9 |
10 | #include
11 |
12 | namespace spdlog {
13 | namespace details {
14 |
15 | SPDLOG_INLINE log_msg::log_msg(spdlog::log_clock::time_point log_time,
16 | spdlog::source_loc loc,
17 | string_view_t a_logger_name,
18 | spdlog::level::level_enum lvl,
19 | spdlog::string_view_t msg)
20 | : logger_name(a_logger_name),
21 | level(lvl),
22 | time(log_time)
23 | #ifndef SPDLOG_NO_THREAD_ID
24 | ,
25 | thread_id(os::thread_id())
26 | #endif
27 | ,
28 | source(loc),
29 | payload(msg) {
30 | }
31 |
32 | SPDLOG_INLINE log_msg::log_msg(spdlog::source_loc loc,
33 | string_view_t a_logger_name,
34 | spdlog::level::level_enum lvl,
35 | spdlog::string_view_t msg)
36 | : log_msg(os::now(), loc, a_logger_name, lvl, msg) {}
37 |
38 | SPDLOG_INLINE log_msg::log_msg(string_view_t a_logger_name,
39 | spdlog::level::level_enum lvl,
40 | spdlog::string_view_t msg)
41 | : log_msg(os::now(), source_loc{}, a_logger_name, lvl, msg) {}
42 |
43 | } // namespace details
44 | } // namespace spdlog
45 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/sinks/stdout_color_sinks-inl.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #ifndef SPDLOG_HEADER_ONLY
7 | #include
8 | #endif
9 |
10 | #include
11 | #include
12 |
13 | namespace spdlog {
14 |
15 | template
16 | SPDLOG_INLINE std::shared_ptr stdout_color_mt(const std::string &logger_name,
17 | color_mode mode) {
18 | return Factory::template create(logger_name, mode);
19 | }
20 |
21 | template
22 | SPDLOG_INLINE std::shared_ptr stdout_color_st(const std::string &logger_name,
23 | color_mode mode) {
24 | return Factory::template create(logger_name, mode);
25 | }
26 |
27 | template
28 | SPDLOG_INLINE std::shared_ptr stderr_color_mt(const std::string &logger_name,
29 | color_mode mode) {
30 | return Factory::template create(logger_name, mode);
31 | }
32 |
33 | template
34 | SPDLOG_INLINE std::shared_ptr stderr_color_st(const std::string &logger_name,
35 | color_mode mode) {
36 | return Factory::template create(logger_name, mode);
37 | }
38 | } // namespace spdlog
39 |
--------------------------------------------------------------------------------
/extern/spdlog/spdlog/sinks/basic_file_sink-inl.h:
--------------------------------------------------------------------------------
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3 |
4 | #pragma once
5 |
6 | #ifndef SPDLOG_HEADER_ONLY
7 | #include
8 | #endif
9 |
10 | #include
11 | #include
12 |
13 | namespace spdlog {
14 | namespace sinks {
15 |
16 | template
17 | SPDLOG_INLINE basic_file_sink::basic_file_sink(const filename_t &filename,
18 | bool truncate,
19 | const file_event_handlers &event_handlers)
20 | : file_helper_{event_handlers} {
21 | file_helper_.open(filename, truncate);
22 | }
23 |
24 | template
25 | SPDLOG_INLINE const filename_t &basic_file_sink::filename() const {
26 | return file_helper_.filename();
27 | }
28 |
29 | template
30 | SPDLOG_INLINE void basic_file_sink::truncate() {
31 | std::lock_guard lock(base_sink::mutex_);
32 | file_helper_.reopen(true);
33 | }
34 |
35 | template
36 | SPDLOG_INLINE void basic_file_sink::sink_it_(const details::log_msg &msg) {
37 | memory_buf_t formatted;
38 | base_sink::formatter_->format(msg, formatted);
39 | file_helper_.write(formatted);
40 | }
41 |
42 | template
43 | SPDLOG_INLINE void basic_file_sink::flush_() {
44 | file_helper_.flush();
45 | }
46 |
47 | } // namespace sinks
48 | } // namespace spdlog
49 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/impl/win_tss_ptr.ipp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/impl/win_tss_ptr.ipp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP
12 | #define MXASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #if defined(MXASIO_WINDOWS)
21 |
22 | #include "mxasio/detail/throw_error.hpp"
23 | #include "mxasio/detail/win_tss_ptr.hpp"
24 | #include "mxasio/error.hpp"
25 |
26 | #include "mxasio/detail/push_options.hpp"
27 |
28 | namespace mxasio {
29 | namespace detail {
30 |
31 | DWORD win_tss_ptr_create()
32 | {
33 | #if defined(UNDER_CE)
34 | const DWORD out_of_indexes = 0xFFFFFFFF;
35 | #else
36 | const DWORD out_of_indexes = TLS_OUT_OF_INDEXES;
37 | #endif
38 |
39 | DWORD tss_key = ::TlsAlloc();
40 | if (tss_key == out_of_indexes)
41 | {
42 | DWORD last_error = ::GetLastError();
43 | mxasio::error_code ec(last_error,
44 | mxasio::error::get_system_category());
45 | mxasio::detail::throw_error(ec, "tss");
46 | }
47 | return tss_key;
48 | }
49 |
50 | } // namespace detail
51 | } // namespace mxasio
52 |
53 | #include "mxasio/detail/pop_options.hpp"
54 |
55 | #endif // defined(MXASIO_WINDOWS)
56 |
57 | #endif // MXASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP
58 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ssl/detail/verify_callback.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ssl/detail/verify_callback.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP
12 | #define MXASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/config.hpp"
19 |
20 | #include "mxasio/ssl/verify_context.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 | namespace ssl {
26 | namespace detail {
27 |
28 | class verify_callback_base
29 | {
30 | public:
31 | virtual ~verify_callback_base()
32 | {
33 | }
34 |
35 | virtual bool call(bool preverified, verify_context& ctx) = 0;
36 | };
37 |
38 | template
39 | class verify_callback : public verify_callback_base
40 | {
41 | public:
42 | explicit verify_callback(VerifyCallback callback)
43 | : callback_(callback)
44 | {
45 | }
46 |
47 | virtual bool call(bool preverified, verify_context& ctx)
48 | {
49 | return callback_(preverified, ctx);
50 | }
51 |
52 | private:
53 | VerifyCallback callback_;
54 | };
55 |
56 | } // namespace detail
57 | } // namespace ssl
58 | } // namespace mxasio
59 |
60 | #include "mxasio/detail/pop_options.hpp"
61 |
62 | #endif // MXASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP
63 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/detail/thread_context.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // detail/thread_context.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_DETAIL_THREAD_CONTEXT_HPP
12 | #define MXASIO_DETAIL_THREAD_CONTEXT_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include
19 | #include
20 | #include "mxasio/detail/call_stack.hpp"
21 |
22 | #include "mxasio/detail/push_options.hpp"
23 |
24 | namespace mxasio {
25 | namespace detail {
26 |
27 | class thread_info_base;
28 |
29 | // Base class for things that manage threads (scheduler, win_iocp_io_context).
30 | class thread_context
31 | {
32 | public:
33 | // Obtain a pointer to the top of the thread call stack. Returns null when
34 | // not running inside a thread context.
35 | MXASIO_DECL static thread_info_base* top_of_thread_call_stack();
36 |
37 | protected:
38 | // Per-thread call stack to track the state of each thread in the context.
39 | typedef call_stack thread_call_stack;
40 | };
41 |
42 | } // namespace detail
43 | } // namespace mxasio
44 |
45 | #include "mxasio/detail/pop_options.hpp"
46 |
47 | #if defined(MXASIO_HEADER_ONLY)
48 | #include "mxasio/detail/impl/thread_context.ipp"
49 | #endif // defined(MXASIO_HEADER_ONLY)
50 |
51 | #endif // MXASIO_DETAIL_THREAD_CONTEXT_HPP
52 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/wait_traits.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // wait_traits.hpp
3 | // ~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | //
7 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | //
10 |
11 | #ifndef MXASIO_WAIT_TRAITS_HPP
12 | #define MXASIO_WAIT_TRAITS_HPP
13 |
14 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 | # pragma once
16 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 |
18 | #include "mxasio/detail/push_options.hpp"
19 |
20 | namespace mxasio {
21 |
22 | /// Wait traits suitable for use with the basic_waitable_timer class template.
23 | template
24 | struct wait_traits
25 | {
26 | /// Convert a clock duration into a duration used for waiting.
27 | /**
28 | * @returns @c d.
29 | */
30 | static typename Clock::duration to_wait_duration(
31 | const typename Clock::duration& d)
32 | {
33 | return d;
34 | }
35 |
36 | /// Convert a clock duration into a duration used for waiting.
37 | /**
38 | * @returns @c d.
39 | */
40 | static typename Clock::duration to_wait_duration(
41 | const typename Clock::time_point& t)
42 | {
43 | typename Clock::time_point now = Clock::now();
44 | if (now + (Clock::duration::max)() < t)
45 | return (Clock::duration::max)();
46 | if (now + (Clock::duration::min)() > t)
47 | return (Clock::duration::min)();
48 | return t - now;
49 | }
50 | };
51 |
52 | } // namespace mxasio
53 |
54 | #include "mxasio/detail/pop_options.hpp"
55 |
56 | #endif // MXASIO_WAIT_TRAITS_HPP
57 |
--------------------------------------------------------------------------------
/extern/asio/mxasio/ip/impl/network_v4.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // ip/impl/network_v4.hpp
3 | // ~~~~~~~~~~~~~~~~~~~~~~
4 | //
5 | // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 | // Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail dot com)
7 | //
8 | // Distributed under the Boost Software License, Version 1.0. (See accompanying
9 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 | //
11 |
12 | #ifndef MXASIO_IP_IMPL_NETWORK_V4_HPP
13 | #define MXASIO_IP_IMPL_NETWORK_V4_HPP
14 |
15 | #if defined(_MSC_VER) && (_MSC_VER >= 1200)
16 | # pragma once
17 | #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18 |
19 | #if !defined(MXASIO_NO_IOSTREAM)
20 |
21 | #include "mxasio/detail/throw_error.hpp"
22 |
23 | #include "mxasio/detail/push_options.hpp"
24 |
25 | namespace mxasio {
26 | namespace ip {
27 |
28 | template
29 | std::basic_ostream& operator<<(
30 | std::basic_ostream& os, const network_v4& addr)
31 | {
32 | mxasio::error_code ec;
33 | std::string s = addr.to_string(ec);
34 | if (ec)
35 | {
36 | if (os.exceptions() & std::basic_ostream::failbit)
37 | mxasio::detail::throw_error(ec);
38 | else
39 | os.setstate(std::basic_ostream