#include #include void print_ptr(char *name, char *type, int offset) { printf("#define %s(task) ((%s *) &(((char *) (task))[%d]))\n", name, type, offset); } void print(char *name, char *type, int offset) { printf("#define %s(task) *((%s *) &(((char *) (task))[%d]))\n", name, type, offset); } int main(int argc, char **argv) { printf("/*\n"); printf(" * Generated by mk_task\n"); printf(" */\n"); printf("\n"); printf("#ifndef __TASK_H\n"); printf("#define __TASK_H\n"); printf("\n"); print_ptr("TASK_REGS", "union uml_pt_regs", TASK_REGS); print("TASK_PID", "int", TASK_PID); printf("\n"); printf("#endif\n"); return(0); }