mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-07 23:00:19 +02:00
We are going to need a unix library. Going to take this one step at a time without AI/ML so I fully understand all the pieces of the puzzle, and to ensure we don't lose any functionality before we're ready. This only ensures that we are building the Linux facing .so files for arm64ec and wow64, but they are empty today. Next PR will be initializing it on the PE side.
24 lines
723 B
C++
24 lines
723 B
C++
// SPDX-License-Identifier: MIT
|
|
#include <cstdint>
|
|
#include <type_traits>
|
|
|
|
#include "FEXUnixLib.h"
|
|
|
|
// Equivalent to C++23's std::to_underlying.
|
|
template<typename Enum>
|
|
[[nodiscard]]
|
|
constexpr std::underlying_type_t<Enum> ToUnderlying(Enum e) noexcept {
|
|
return static_cast<std::underlying_type_t<Enum>>(e);
|
|
}
|
|
|
|
using NTSTATUS = int32_t;
|
|
using unixlib_entry_t = NTSTATUS (*)(void*);
|
|
|
|
constexpr NTSTATUS STATUS_SUCCESS = 0;
|
|
constexpr NTSTATUS STATUS_NOT_SUPPORTED = 0xC00000BB;
|
|
constexpr NTSTATUS STATUS_INTERNAL_ERROR = 0xC00000E5;
|
|
|
|
extern "C" const unixlib_entry_t __wine_unix_call_funcs[] = {};
|
|
|
|
static_assert(sizeof(__wine_unix_call_funcs) / sizeof(__wine_unix_call_funcs[0]) == ToUnderlying(FEXUnixLibFunctions::MAX));
|