mirror of
https://github.com/patchzyy/wiicompiled
synced 2026-10-10 10:33:58 -04:00
54c608ef9c
* runtime: add experimental x86-64-v2 profile * fix review findings in network and translator * build: include mbedtls in macos compile audit * review fixes * cmake: restore macOS deployment target floor before project() * fix: Preserve explicit package versions and gate v3 tests on host support * fix: Prevent TLS session reuse after failed writes * fix: Gate cross-compiled profile tests on emulator availability --------- Co-authored-by: patchzyy <64382339+patchzyy@users.noreply.github.com>
25 lines
861 B
C++
25 lines
861 B
C++
#pragma once
|
|
|
|
#include <cstddef>
|
|
|
|
// HostContext is the deliberately small boundary between the guest scheduler
|
|
// and the host's cooperative-context facility. Windows uses native Fibers;
|
|
// Linux uses libco's host backend; Intel macOS uses its System V x86-64 backend. macOS AArch64 uses
|
|
// the local assembly backend because it must preserve Darwin's platform-reserved
|
|
// x18 register, which libco's AArch64 backend does not save. Its handles are
|
|
// only valid on the thread that initialized the scheduler.
|
|
namespace HostContext {
|
|
|
|
using Handle = void*;
|
|
using Entry = void (*)(void*);
|
|
|
|
bool InitializeScheduler(Handle* scheduler);
|
|
void ShutdownScheduler(Handle scheduler);
|
|
|
|
Handle Create(std::size_t stackSize, Entry entry, void* argument);
|
|
void Destroy(Handle context);
|
|
bool IsCurrent(Handle context);
|
|
void Switch(Handle target);
|
|
|
|
} // namespace HostContext
|