|
|
1.1 root 1: /***********************************************************
2: Copyright IBM Corporation 1987
3:
4: All Rights Reserved
5:
6: Permission to use, copy, modify, and distribute this software and its
7: documentation for any purpose and without fee is hereby granted,
8: provided that the above copyright notice appear in all copies and that
9: both that copyright notice and this permission notice appear in
10: supporting documentation, and that the name of IBM not be
11: used in advertising or publicity pertaining to distribution of the
12: software without specific, written prior permission.
13:
14: IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
16: IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
17: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
18: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
19: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20: SOFTWARE.
21:
22: ******************************************************************/
23:
24: /*
25: * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
26: */
27: /*
28: * ARGO TP
29: *
30: * $Header: tp_trace.h,v 5.1 88/10/12 12:21:51 root Exp $
31: * $Source: /usr/argo/sys/netiso/RCS/tp_trace.h,v $
32: * @(#)tp_trace.h 7.3 (Berkeley) 8/29/89 *
33: *
34: *
35: * Definitions needed for the protocol trace mechanism.
36: */
37:
38: #ifndef __TP_TRACE__
39: #define __TP_TRACE__
40:
41: #ifdef TPPT
42:
43: #define TPPTsendack 1
44: #define TPPTgotack 2
45: #define TPPTXack 3
46: #define TPPTgotXack 4
47: #define TPPTack 5
48: #define TPPTindicate 6
49: #define TPPTusrreq 7
50: #define TPPTmisc 8
51: #define TPPTpcb 9
52: #define TPPTref 10
53: #define TPPTtpduin 11
54: #define TPPTparam 12
55: #define TPPTertpdu 13
56: #define TPPTdriver 14
57: #define TPPTtpduout 15
58:
59: #include "../netiso/tp_pcb.h"
60:
61: /* this #if is to avoid lint */
62:
63: #if defined(TP_TRACEFILE)||!defined(KERNEL)
64:
65: #include "../netiso/tp_tpdu.h"
66:
67: #define TPTRACE_STRLEN 50
68:
69:
70: /* for packet tracing */
71: struct tp_timeval {
72: SeqNum tptv_seq;
73: u_int tptv_kind;
74: u_int tptv_window;
75: u_int tptv_size;
76: };
77:
78: struct tp_Trace {
79: u_int tpt_event;
80: u_int tpt_arg;
81: u_int tpt_arg2;
82: int tpt_tseq;
83: struct timeval tpt_time;
84: union {
85: struct inpcb tpt_Inpcb; /* protocol control block */
86: struct tp_ref tpt_Ref; /* ref part of pcb */
87: struct tpdu tpt_Tpdu; /* header*/
88: struct tp_param tpt_Param; /* ?? bytes, make sure < 128??*/
89: struct tp_timeval tpt_Time;
90: struct {
91: u_int tptm_2;
92: u_int tptm_3;
93: u_int tptm_4;
94: u_int tptm_5;
95: char tpt_Str[TPTRACE_STRLEN];
96: u_int tptm_1;
97: } tptmisc;
98: u_char tpt_Ertpdu; /* use rest of structure */
99: } tpt_stuff;
100: };
101: #define tpt_inpcb tpt_stuff.tpt_Inpcb
102: #define tpt_pcb tpt_stuff.tpt_Pcb
103: #define tpt_ref tpt_stuff.tpt_Ref
104: #define tpt_tpdu tpt_stuff.tpt_Tpdu
105: #define tpt_param tpt_stuff.tpt_Param
106: #define tpt_ertpdu tpt_stuff.tpt_Ertpdu
107: #define tpt_str tpt_stuff.tptmisc.tpt_Str
108: #define tpt_m1 tpt_stuff.tptmisc.tptm_1
109: #define tpt_m2 tpt_stuff.tptmisc.tptm_2
110: #define tpt_m3 tpt_stuff.tptmisc.tptm_3
111: #define tpt_m4 tpt_stuff.tptmisc.tptm_4
112: #define tpt_m5 tpt_stuff.tptmisc.tptm_5
113:
114: #define tpt_seq tpt_stuff.tpt_Time.tptv_seq
115: #define tpt_kind tpt_stuff.tpt_Time.tptv_kind
116: #define tpt_window tpt_stuff.tpt_Time.tptv_window
117: #define tpt_size tpt_stuff.tpt_Time.tptv_size
118:
119: #define TPTRACEN 300
120: int tp_Tracen = 0;
121: struct tp_Trace tp_Trace[TPTRACEN];
122:
123: #endif defined(TP_TRACEFILE)||!defined(KERNEL)
124:
125: extern u_char tp_traceflags[];
126:
127: #define IFTRACE(ascii)\
128: if(tp_traceflags[ascii]) {
129: /*
130: * for some reason lint complains about tp_param being undefined no
131: * matter where or how many times I define it.
132: */
133:
134:
135: #define ENDTRACE }
136:
137: #define tptrace(A,B,C,D,E,F) \
138: tpTrace((struct tp_pcb *)0,\
139: (u_int)(A),(u_int)(B),(u_int)(C),(u_int)(D),(u_int)(E),(u_int)(F))
140:
141: #define tptraceTPCB(A,B,C,D,E,F) \
142: tpTrace(tpcb,\
143: (u_int)(A),(u_int)(B),(u_int)(C),(u_int)(D),(u_int)(E),(u_int)(F))
144:
145: extern void tpTrace();
146:
147: #else TPPT
148:
149: /***********************************************
150: * NO TPPT TRACE STUFF
151: **********************************************/
152:
153: #ifndef STAR
154: #define STAR *
155: #endif STAR
156: #define IFTRACE(ascii) //*beginning of comment*/STAR
157: #define ENDTRACE STAR/*end of comment*//
158:
159: #endif TPPT
160:
161: #endif __TP_TRACE__
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.