picodrive/tools/mkoffsets.c
2017-08-06 22:25:26 +03:00

37 lines
732 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, DrawLineDest);
DUMP(f, HighCol);
DUMP(f, HighPreSpr);
DUMP(f, Pico_video);
DUMP(f, Pico_vram);
DUMP(f, PicoOpt);
DUMP(f, Draw2FB);
DUMP(f, HighPal);
fclose(f);
return 0;
}