24 lines
761 B
C
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;
|
|
}
|
|
} |