#pragma once #include #include #include #include #define RAND_MAX INT_MAX #ifdef __cplusplus extern "C" { #endif extern unsigned char __heap_base; #define IMPORT(name) __attribute__((import_module("env"), import_name(#name))) #define EXPORT(name) __attribute__((export_name(#name))) void* malloc(size_t size); void* calloc(size_t n, size_t size); void* realloc(void* ptr, size_t size); void free(void* ptr); __attribute__((__always_inline__)) static inline void* memset(void* d, int c, size_t n) { return __builtin_memset(d, c, n); } __attribute__((__always_inline__)) static inline void* memcpy(void* dest, const void* src, size_t n) { return __builtin_memcpy(dest, src, n); } int memcmp(const void* s1, const void* s2, size_t n); IMPORT(log) void printf(const char* format, ...); EXPORT(__srand) void srand(uint64_t seed); int rand(void); #ifdef __cplusplus } #endif