|
|
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.