runtime/include/trampoline/types.h
2024-06-08 04:46:07 -04:00

22 lines
652 B
C

#pragma once
#include <stdint.h>
// Maximum Arguments Length
#define MAX_TRAMPOLINE_ARGS_SIZE 2097152 // 2 MiB
// System Call Constants
#define TRAMPOLINE_SYSCALL 0x1337
// Pipe Constants
#define TRAMPOLINE_ARGUMENTS_PIPE_ENV "_MCPI_TRAMPOLINE_ARGUMENTS"
#define TRAMPOLINE_RETURN_VALUE_PIPE_ENV "_MCPI_TRAMPOLINE_RETURN_VALUE"
struct trampoline_pipe_arguments {
uint32_t id;
uint32_t allow_early_return;
uint32_t length;
};
// Function Types
typedef void (*trampoline_writer_t)(uint32_t guest_addr, const void *data, uint32_t size);
typedef uint32_t (*trampoline_t)(trampoline_writer_t writer, uint32_t id, const unsigned char *args);