/* $Header$ */ #define BUFLEN 24 /* size of buffer in message header */ struct message_hdr { int m_type; /* Possible values of m_type: */ #define DB_RUN 020000 /* set for commands that cause child to run */ #define SETBP 0 /* set breakpoint at address in m_size */ #define CLRBP 1 /* clear breakpoint at address in m_size */ #define SETSS (2|DB_RUN) /* set single stepping, # of steps in m_size */ #define SETSSF (3|DB_RUN) /* set single stepping, counting calls as one step */ #define GETEMREGS 4 /* get EM registers, m_size contains level */ #define GETBYTES 5 /* get data; m_size contains size, m_buf contains address */ #define GETSTR 6 /* get string; m_buf contains address */ #define SETBYTES 7 /* set data; m_buf contains address, m_size contains size */ #define CALL 8 /* call function; m_size contains size of parameter buffer, m_buf contains address + size of function result */ #define CONT (9|DB_RUN) /* continue */ #define SETEMREGS 10 /* set EM registers, m_size contains level Actually, only the program counter is set. */ #define DB_SS 040000 /* debugger wants single stepping (to be orred with SETSS(F) or CONT */ #define CLRSS 12 /* clear single stepping */ #define DUMP 13 /* dump command */ #define DGLOB 14 /* data area */ #define DSTACK 15 /* stack area */ #define SETTRACE 16 /* start tracing; range in m_mes */ #define CLRTRACE 17 /* end tracing */ #define OK 50 /* answer of child to most messages */ #define FAIL 51 /* answer of child when something goes wrong */ #define DATA 52 /* answer of child when data requested */ #define END_SS 53 /* when stopped because of user single stepping */ long m_size; /* size */ char m_buf[BUFLEN]; /* some of the data required included in message */ }; #define LB_OFF 0 #define AB_OFF 1 #define PC_OFF 2 #define HP_OFF 3 #define SP_OFF 4 #define IN_FD 3 #define OUT_FD 6 #define BUFTOL(c) (*((long *) (c))) #define LTOBUF(c,l) (*((long *) (c)) = (l)) #define BUFTOA(c) (*((char **) (c))) #define ATOBUF(c,p) (*((char **) (c)) = (p)) #define BUFTOS(c) (*((short *) (c))) #define BUFTOI(c) (*((int *) (c))) #define BUFTOF(c) (*((float *) (c))) #define BUFTOD(c) (*((double *) (c)))