Pristine Ack-5.5
[Ack-5.5.git] / util / grind / message.h
1 /* $Id: message.h,v 1.7 1994/06/24 11:00:25 ceriel Exp $ */
2
3 #define BUFLEN  32      /* size of buffer in message header */
4
5 #define M_DB_RUN        0100    /* set for commands that cause child to run */
6 #define M_DB_SS         0200    /* debugger wants single stepping (to be orred
7                                    with SETSS(F) or CONT
8                                 */
9
10 #define m_type          m_buf[0]
11
12 #define PS              4
13 #define LS              4
14
15 struct message_hdr {
16   char  m_buf[BUFLEN];
17 /* Possible values of m_buf[0]: */
18 #define M_SETBP         0       /* set breakpoint at address in next PS bytes */
19 #define M_CLRBP         1       /* clear breakpoint at address in next PS bytes */
20 #define M_SETSS         (2|M_DB_RUN)
21                                 /* set single stepping, # of steps in next LS bytes */
22 #define M_SETSSF        (3|M_DB_RUN)
23                                 /* set single stepping,
24                                    counting calls as one step
25                                 */
26 #define M_GETEMREGS     4       /* get EM registers, level in next LS bytes */
27 #define M_GETBYTES      5       /* get data; size in next LS bytes,
28                                    address in next PS bytes
29                                 */
30 #define M_GETSTR        6       /* get string; max size in next LS bytes,
31                                    address in next PS bytes
32                                 */
33 #define M_SETBYTES      7       /* get data; size in next LS bytes,
34                                    address in next PS bytes
35                                 */
36 /* #define M_CALL               8       /* call function; not implemented */
37 #define M_CONT          (9|M_DB_RUN)
38                                 /* continue */
39 #define M_SETEMREGS     10      /* set EM registers, level in next LS bytes;
40                                    Actually, only the program counter is set.
41                                 */
42 #define M_CLRSS         12      /* clear single stepping */
43 #define M_DUMP          13      /* dump command */
44 #define M_DGLOB         14      /* data area */
45 #define M_DSTACK        15      /* stack area */
46 #define M_SETTRACE      16      /* start tracing; range in next two PS bytes */
47 #define M_CLRTRACE      17      /* end tracing */
48
49 #define M_OK            50      /* answer of child to most messages */
50 #define M_FAIL          51      /* answer of child when something goes wrong */
51 #define M_DATA          52      /* answer of child when data requested */
52 #define M_END_SS        53      /* stopped because of user single stepping */
53 #define M_INTR          54      /* sent on interrupt */
54 };
55
56 #define LB_OFF  (0*PS+LS+1)
57 #define AB_OFF  (1*PS+LS+1)
58 #define PC_OFF  (2*PS+LS+1)
59 #define HP_OFF  (3*PS+LS+1)
60 #define SP_OFF  (4*PS+LS+1)