60 lines
2.1 KiB
C
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)))
|