runtime/example/host/src/trampoline.c
TheBrokenRail c3ba1f0bc7
All checks were successful
CI / Test (AMD64) (push) Successful in 2m5s
CI / Test (ARM64) (push) Successful in 6m18s
More Fixes
2025-02-15 00:36:44 -05:00

24 lines
761 B
C

#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <trampoline/types.h>
// writer: Function That Can Write To Guest Memory
// id: Command ID
// args: Pointer To Command Arguments
// Return Value: Returned To The Guest
uint32_t trampoline(trampoline_writer_t writer, const uint32_t id, const unsigned char *args) {
if (id == 100 /* Defined In ../../guest/src/example.c */) {
// Early Return Allowed
fprintf(stderr, "Early Return Call Started\n");
sleep(1);
fprintf(stderr, "Early Return Call Done\n");
return 0;
} else {
// Normal Call
const char *str = (const char *) args;
fprintf(stderr, "Host Has Received: %u: %s\n", id, str);
return strlen(str) * 2;
}
}