#pragma once

/* Declarations only. Retail carried its own copies of these, and the build
 * reassembles them from ref/asm/split/main/{memcpy,memset,strcpy}.s and links
 * them like any other object -- there is no C library here to link against. */

typedef unsigned int size_t;

extern "C" {

void *memcpy(void *dest, const void *src, size_t size);
void *memset(void *dest, int value, size_t size);
int memcmp(const void *left, const void *right, size_t size);
int strcmp(const char *left, const char *right);
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t size);
int strncmp(const char *left, const char *right, size_t size);
char *strtok(char *text, const char *delimiters);
char *strcat(char *dest, const char *src);
size_t strlen(const char *text);
int strcasecmp(const char *left, const char *right);
}
