#if !defined(file_h)
#define file_h
#include "rplx.h"
#define MAX_INSTLEN_BYTES (10 * 1000 * 1000)
#define FILE_MAGIC_NUMBER "RPLX"
typedef enum FileErr {
FILE_OK,
FILE_ERR_NOFILE, FILE_ERR_WRITE, FILE_ERR_READ,
FILE_ERR_MAGIC_NUMBER, FILE_ERR_KTABLE_LEN, FILE_ERR_INST_LEN,
FILE_ERR_MEM, FILE_ERR_KTABLE_SIZE, FILE_ERR_SENTINEL,
} FileErr;
static const char *FILE_MESSAGES[] __attribute__((unused)) = {
"ok",
"cannot open file",
"write error",
"read error",
"wrong magic number",
"too many ktable entries",
"instruction vector too long",
"out of memory",
"ktable total size too long",
};
int file_save (const char *filename, Chunk *c);
int file_load (const char *filename, Chunk *c);
#endif