void doload_spritesstatement(void) { /* syntax is offset in vram to load data at : integer name of the data to transfert : identifier number of sprites (of size 32x64) to load : integer */ flush_ins(); /* David, optimize.c related */ ot("load_sprites\t"); outconst(); if (outcomma()) return; if (outnameunderline()) return; if (!match(",")) { outstr(",#"); outdec(1); } else { outbyte(','); outconst(); } newl(); needbrack(")"); }
void doset_sprpalstatement(void) { /* syntax is number of the first palette to alter : integer name of the data for loading palettes : identifier [ number of palette to load : integer ] if last argument is missing, 1 is assumed */ flush_ins(); /* David, optimize.c related */ ot("_set_sprpal\t"); outconst(); if (outcomma()) return; if (outnameunderline()) return; if (!match(",")) { outstr(",#"); outdec(1); } else { outbyte(','); outconst(); } newl(); needbrack(")"); }
int main(void) { output("/* Auto generated by arch/../tools/offset.c at " __DATE__ ". Do not edit. */\n"); output("#ifndef ASM_OFFSET_H\n"); output("#define ASM_OFFSET_H 1\n"); // task struct entries needed by entry.S #define ENTRY(entry) outconst("#define tsk_" #entry " %0", offsetof(struct task_struct, entry)) ENTRY(state); ENTRY(flags); ENTRY(sigpending); ENTRY(addr_limit); ENTRY(need_resched); ENTRY(exec_domain); ENTRY(ptrace); ENTRY(cpu); ENTRY(need_resched); ENTRY(thread); ENTRY(pid); #undef ENTRY #define ENTRY(entry) outconst("#define pda_" #entry " %0", offsetof(struct x8664_pda, entry)) ENTRY(kernelstack); ENTRY(oldrsp); ENTRY(pcurrent); ENTRY(irqrsp); ENTRY(irqcount); ENTRY(pgd_quick); ENTRY(pmd_quick); ENTRY(pte_quick); ENTRY(pgtable_cache_sz); ENTRY(cpunumber); ENTRY(irqstackptr); ENTRY(level4_pgt); #undef ENTRY output("#ifdef __ASSEMBLY__"); outconst("#define PT_TRACESYS %0", PT_TRACESYS); outconst("#define PT_AUDITED %0", PT_AUDITED); outconst("#define PT_SINGLESTEP %0", PT_SINGLESTEP); outconst("#define TASK_SIZE %0", TASK_SIZE); outconst("#define SIGCHLD %0", SIGCHLD); outconst("#define CLONE_VFORK %0", CLONE_VFORK); outconst("#define CLONE_VM %0", CLONE_VM); outconst("#define thread_flags %0" , offsetof(struct thread_struct, flags)); outconst("#define thread_rsp0 %0" , offsetof(struct thread_struct, rsp0)); outconst("#define ASM_THREAD_IA32 %0", THREAD_IA32); outconst("#define PER_CPU_GDT_SIZE %0", sizeof(struct desc_struct)); output("#endif"); output("#endif\n"); return(0); }