|
|
1.1 ! root 1: #include <stdio.h> ! 2: #define TPPT ! 3: ! 4: #include <sys/param.h> ! 5: #include <sys/systm.h> ! 6: #include <sys/mbuf.h> ! 7: #include <sys/socket.h> ! 8: #include <sys/socketvar.h> ! 9: #include <sys/types.h> ! 10: #include <sys/time.h> ! 11: ! 12: #include <netiso/tp_param.h> ! 13: #include <netiso/tp_timer.h> ! 14: #include <netiso/tp_stat.h> ! 15: #include <netiso/tp_param.h> ! 16: #include <netiso/tp_ip.h> ! 17: #include <netiso/tp_pcb.h> ! 18: #include <netiso/tp_tpdu.h> ! 19: #include <netiso/argo_debug.h> ! 20: #include <netiso/tp_trace.h> ! 21: ! 22: static tp_seq = 0; ! 23: u_char tp_traceflags[128]; ! 24: ! 25: main(argc, argv) ! 26: { ! 27: ! 28: } ! 29: ! 30: #ifdef notdef ! 31: ! 32: tpprint(tp) ! 33: register struct tp_Trace *tp; ! 34: { ! 35: /*tptrace(tpcb, event, arg, src, len, arg4, arg5)*/ ! 36: struct tp_pcb *tpcb; ! 37: u_int event, arg; ! 38: u_int src; ! 39: u_int len; ! 40: u_int arg4; ! 41: u_int arg5; ! 42: ! 43: tp->tpt_event = event; ! 44: tp->tpt_tseq = tp_seq++; ! 45: tp->tpt_arg = arg; ! 46: if(tpcb) ! 47: tp->tpt_arg2 = tpcb->tp_lref; ! 48: bcopy( (caddr_t)&time, (caddr_t)&tp->tpt_time, sizeof(struct timeval) ); ! 49: ! 50: switch(tp->tpt_event) { ! 51: ! 52: case TPPTertpdu: ! 53: bcopy((caddr_t)src, (caddr_t)&tp->tpt_ertpdu, ! 54: (unsigned)MIN((int)len, sizeof(struct tp_Trace))); ! 55: break; ! 56: ! 57: case TPPTusrreq: ! 58: case TPPTmisc: ! 59: ! 60: printf(tp->tpt_str, ! 61: tp->tpt_m2/* = src */, ! 62: tp->tpt_m3/* = len */, ! 63: tp->tpt_m4/* = arg4 */, ! 64: tp->tpt_m1/* = arg5 */); ! 65: ! 66: case TPPTgotXack: ! 67: case TPPTXack: ! 68: case TPPTsendack: ! 69: case TPPTgotack: ! 70: case TPPTack: ! 71: case TPPTindicate: ! 72: default: ! 73: case TPPTdriver: ! 74: tp->tpt_m2 = arg; ! 75: tp->tpt_m3 = src; ! 76: tp->tpt_m4 = len; ! 77: tp->tpt_m5 = arg4; ! 78: tp->tpt_m1 = arg5; ! 79: break; ! 80: case TPPTparam: ! 81: bcopy((caddr_t)src, (caddr_t)&tp->tpt_param, sizeof(struct tp_param)); ! 82: break; ! 83: case TPPTref: ! 84: bcopy((caddr_t)src, (caddr_t)&tp->tpt_ref, sizeof(struct tp_ref)); ! 85: break; ! 86: ! 87: case TPPTtpduin: ! 88: case TPPTtpduout: ! 89: tp->tpt_arg2 = arg4; ! 90: bcopy((caddr_t)src, (caddr_t)&tp->tpt_tpdu, ! 91: (unsigned)MIN((int)len, sizeof(struct tp_Trace))); ! 92: break; ! 93: } ! 94: } ! 95: #endif ! 96: ! 97: char tpdu_types[][4] = { ! 98: "#0", "XPD", "XAK", "GR", "#4", "#5", "AK", "ER", ! 99: "DR", "#9", "#10", "#11", "DC", "CC", "CR", "DT"}; ! 100: ! 101: p_tpdu(tpdu, xtype) ! 102: struct tpdu *tpdu; ! 103: { ! 104: struct tpdu t = *tpdu; ! 105: int type = t.tpdu_type; ! 106: ! 107: printf("<(%d)%s:", t.tpdu_li, tpdu_types[type]); ! 108: switch (type) { ! 109: case DT_TPDU_type: ! 110: case XPD_TPDU_type: ! 111: printf("to %x cdt %d seq %d eot %d\>", t.tpdu_dref, t.tpdu_cdt ! 112: xtype ? t.tpdu_DTseqX : t.tpdu_DTseq, ! 113: xtype ? t.tpdu_DTeotX : t.tpdu_DTeot); ! 114: break; ! 115: } ! 116: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.