Removed include of util kludges
[dyninst.git] / dyninstAPI / src / ptrace_emul.h
1
2 #ifndef PTRACE_EMUL
3 #define PTRACE_EMUL
4
5 /* 
6  * ptrace_emul.h:  Header file for ptrace emulation stuff.
7  *
8  * $Log: ptrace_emul.h,v $
9  * Revision 1.6  1995/02/10 22:36:22  jcargill
10  * Removed include of util kludges
11  *
12  * Revision 1.5  1994/11/02  11:15:58  markc
13  * Put our "PTRACE" defines here.
14  *
15  * Revision 1.4  1994/10/13  07:24:59  krisna
16  * solaris porting and updates
17  *
18  * Revision 1.3  1994/09/22  02:24:13  markc
19  * changed types to agree with ptrace signature
20  *
21  * Revision 1.2  1994/07/14  14:26:09  jcargill
22  * Changes to ptraceReq header structure to accomodate new node ptrace
23  *
24  * Revision 1.1  1994/01/27  20:31:40  hollings
25  * Iinital version of paradynd speaking dynRPC igend protocol.
26  *
27  * Revision 1.1  1993/08/24  21:58:02  jcargill
28  * Initial revision
29  *
30  */
31
32
33 /*
34  * Node-Ptrace request forwarding protocol.  We send ptrace requests
35  * to the nodes on the CM-5 for execution using the ptrace function in
36  * the node-kernel.  The format of a request is as follows:
37  *
38  * [ request ] - modify memory request.  Currently the only request.
39  * [ req id  ] - Uniq id for purposes of Acknowledgement.     NOTE: OUTDATED
40  * [ node id ] - Node id:  0-(partition_size-1) for unique node.  
41  *                         0xffffffff to broadcast to all nodes in partition
42  * [ addr ]    - Memory address to modify; same as addr argument to ptrace
43  * [ length  ] - Number of words of data to write
44  * [ data    ]
45  * [ ...     ]
46  * [ data    ]
47  *
48  * Everything between brackets above ([...]) is one word in length.
49  * Since the instrumentation controller is running on the front-end
50  * (so it can really use ptrace to control the application), we can
51  * assume no byte-order problems.
52  *
53  *
54  */
55
56 typedef struct _ptraceReqHeader {
57   int request;
58   u_int pid;                    /* pid of CM process on CP */
59   u_int nodeNum;                /* target nodes (0xffffffff = all) */
60   char *addr;
61   int   data;
62   char *addr2;
63 } ptraceReqHeader;
64
65
66 /* Maximum DATA length for a ptrace request */
67 #define MAX_PTRACE_LENGTH       1000
68
69 /* 
70  * This define really shouldn't be here, but then it really shouldn't
71  * be in instP.h, either.  Where should it go?  XXX 
72  */
73 #define PTRACE_INTERRUPT        PTRACE_26
74 #define PTRACE_STATUS           PTRACE_27
75 #define PTRACE_SNARFBUFFER      PTRACE_28
76
77 #endif
78