picodrive/tools/mkoffsets.c
2017-08-06 18:18:29 +03:00

31 lines
604 B
C

#include <stdio.h>
#include <stddef.h>
#include "../pico/pico_int.h"
#define DUMP(f, field) \
fprintf(f, "#define %-20s 0x%02x\n", \
"OFS_" #field, \
(int)offsetof(struct PicoEState, field))
int main(int argc, char *argv[])
{
char buf[128];
FILE *f;
snprintf(buf, sizeof(buf), "pico/pico_int_o%d.h", sizeof(void *) * 8);
f = fopen(buf, "w");
if (!f) {
perror("fopen");
return 1;
}
fprintf(f, "/* autogenerated by %s, do not edit */\n", argv[0]);
DUMP(f, DrawScanline);
DUMP(f, rendstatus);
DUMP(f, Pico_video);
DUMP(f, Pico_vram);
fclose(f);
return 0;
}