X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tools%2Fmkoffsets.c;h=7e57383a61a28904fdda0b088737081a401fcc2f;hb=HEAD;hp=e9eb3c5fdc848d7c57ea9bb551069cb987d94935;hpb=99bdfd31b8708f8059fbc16ec8be90cb8d7c8bc3;p=picodrive.git diff --git a/tools/mkoffsets.c b/tools/mkoffsets.c index e9eb3c5..7e57383 100644 --- a/tools/mkoffsets.c +++ b/tools/mkoffsets.c @@ -3,10 +3,25 @@ #include "../pico/pico_int.h" -#define DUMP(f, field) \ +#define DUMP(f, prefix, type, field) \ fprintf(f, "#define %-20s 0x%02x\n", \ - "OFS_" #field, \ - (int)offsetof(struct PicoEState, field)) + prefix #field, (int)offsetof(type, field)) + +#define DUMP_P(f, field) \ + fprintf(f, "#define %-20s 0x%04x\n", \ + "OFS_Pico_" #field, (char *)&p.field - (char *)&p) + +#define DUMP_PS(f, s1, field) \ + fprintf(f, "#define %-20s 0x%04x\n", \ + "OFS_Pico_" #s1 "_" #field, (char *)&p.s1.field - (char *)&p) + +#define DUMP_EST(f, field) \ + DUMP(f, "OFS_EST_", struct PicoEState, field) + +#define DUMP_PMEM(f, field) \ + DUMP(f, "OFS_PMEM_", struct PicoMem, field) + +extern struct Pico p; int main(int argc, char *argv[]) { @@ -21,14 +36,33 @@ int main(int argc, char *argv[]) } 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_PS(f, video, reg); + DUMP_PS(f, m, rotate); + DUMP_PS(f, m, z80Run); + DUMP_PS(f, m, dirtyPal); + DUMP_PS(f, m, hardware); + DUMP_PS(f, m, z80_reset); + DUMP_PS(f, m, sram_reg); + DUMP_P (f, sv); + DUMP_PS(f, sv, data); + DUMP_PS(f, sv, start); + DUMP_PS(f, sv, end); + DUMP_PS(f, sv, flags); + DUMP_P (f, rom); + DUMP_P (f, romsize); + DUMP_EST(f, DrawScanline); + DUMP_EST(f, rendstatus); + DUMP_EST(f, DrawLineDest); + DUMP_EST(f, HighCol); + DUMP_EST(f, HighPreSpr); + DUMP_EST(f, Pico); + DUMP_EST(f, PicoMem_vram); + DUMP_EST(f, PicoMem_cram); + DUMP_EST(f, PicoOpt); + DUMP_EST(f, Draw2FB); + DUMP_EST(f, HighPal); + DUMP_PMEM(f, vram); + DUMP_PMEM(f, vsram); fclose(f); return 0;