ack/util/grind/message.h
1990-08-31 18:22:53 +00:00

60 lines
2.1 KiB
C

/* $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)))