Initial guest-to-host trampoline generation

This commit is contained in:
2025-10-30 02:23:09 -06:00
parent 9367f003c5
commit 55a62a27c9
85 changed files with 1750 additions and 1807 deletions

View File

@@ -8,28 +8,28 @@
namespace kernel32 {
LONG WIN_FUNC InterlockedIncrement(LONG volatile *Addend) {
LONG WINAPI InterlockedIncrement(LONG volatile *Addend) {
HOST_CONTEXT_GUARD();
VERBOSE_LOG("InterlockedIncrement(%p)\n", Addend);
std::atomic_ref<LONG> a(*const_cast<LONG *>(Addend));
return a.fetch_add(1, std::memory_order_seq_cst) + 1;
}
LONG WIN_FUNC InterlockedDecrement(LONG volatile *Addend) {
LONG WINAPI InterlockedDecrement(LONG volatile *Addend) {
HOST_CONTEXT_GUARD();
VERBOSE_LOG("InterlockedDecrement(%p)\n", Addend);
std::atomic_ref<LONG> a(*const_cast<LONG *>(Addend));
return a.fetch_sub(1, std::memory_order_seq_cst) - 1;
}
LONG WIN_FUNC InterlockedExchange(LONG volatile *Target, LONG Value) {
LONG WINAPI InterlockedExchange(LONG volatile *Target, LONG Value) {
HOST_CONTEXT_GUARD();
VERBOSE_LOG("InterlockedExchange(%p, %ld)\n", Target, static_cast<long>(Value));
std::atomic_ref<LONG> a(*const_cast<LONG *>(Target));
return a.exchange(Value, std::memory_order_seq_cst);
}
LONG WIN_FUNC InterlockedCompareExchange(LONG volatile *Destination, LONG Exchange, LONG Comperand) {
LONG WINAPI InterlockedCompareExchange(LONG volatile *Destination, LONG Exchange, LONG Comperand) {
HOST_CONTEXT_GUARD();
VERBOSE_LOG("InterlockedCompareExchange(%p, %ld, %ld)\n", Destination, static_cast<long>(Exchange),
static_cast<long>(Comperand));
@@ -40,7 +40,7 @@ LONG WIN_FUNC InterlockedCompareExchange(LONG volatile *Destination, LONG Exchan
return expected;
}
void WIN_FUNC InitializeSListHead(PSLIST_HEADER ListHead) {
void WINAPI InitializeSListHead(PSLIST_HEADER ListHead) {
HOST_CONTEXT_GUARD();
DEBUG_LOG("InitializeSListHead(%p)\n", ListHead);
if (!ListHead) {