|
|
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: * $Header: tp_meas.c,v 5.2 88/11/18 17:28:04 nhall Exp $ ! 29: * $Source: /usr/argo/sys/netiso/RCS/tp_meas.c,v $ ! 30: * @(#)tp_meas.c 7.3 (Berkeley) 8/29/89 * ! 31: * ! 32: * tp_meas.c : create a performance measurement event ! 33: * in the circular buffer tp_Meas[] ! 34: */ ! 35: ! 36: #ifndef lint ! 37: static char *rcsid = "$Header: tp_meas.c,v 5.2 88/11/18 17:28:04 nhall Exp $"; ! 38: #endif lint ! 39: ! 40: #include "types.h" ! 41: #include "time.h" ! 42: #include "argo_debug.h" ! 43: #include "tp_meas.h" ! 44: ! 45: extern struct timeval time; ! 46: ! 47: #ifdef TP_PERF_MEAS ! 48: int tp_Measn = 0; ! 49: struct tp_Meas tp_Meas[TPMEASN]; ! 50: ! 51: /* ! 52: * NAME: tpmeas() ! 53: * ! 54: * CALLED FROM: tp_emit(), tp_soisdisconecting(), tp_soisdisconnected() ! 55: * tp0_stash(), tp_stash(), tp_send(), tp_goodack(), tp_usrreq() ! 56: * ! 57: * FUNCTION and ARGUMENTS: ! 58: * stashes a performance-measurement event for the given reference (ref) ! 59: * (kind) tells which kind of event, timev is the time to be stored ! 60: * with this event, (seq), (win), and (size) are integers that usually ! 61: * refer to the sequence number, window number (on send) and ! 62: * size of tpdu or window. ! 63: * ! 64: * RETURNS: Nada ! 65: * ! 66: * SIDE EFFECTS: ! 67: * ! 68: * NOTES: ! 69: */ ! 70: void ! 71: Tpmeas(ref, kind, timev, seq, win, size) ! 72: u_int ref; ! 73: u_int kind; ! 74: struct timeval *timev; ! 75: u_int seq, win, size; ! 76: { ! 77: register struct tp_Meas *tpm; ! 78: static int mseq; ! 79: ! 80: tpm = &tp_Meas[tp_Measn++]; ! 81: tp_Measn %= TPMEASN; ! 82: ! 83: tpm->tpm_kind = kind; ! 84: tpm->tpm_tseq = mseq++; ! 85: tpm->tpm_ref = ref; ! 86: if(kind == TPtime_from_ll) ! 87: bcopy((caddr_t)timev, (caddr_t)&tpm->tpm_time, sizeof(struct timeval)); ! 88: else ! 89: bcopy( (caddr_t)&time, ! 90: (caddr_t)&tpm->tpm_time, sizeof(struct timeval) ); ! 91: tpm->tpm_seq = seq; ! 92: tpm->tpm_window = win; ! 93: tpm->tpm_size = size; ! 94: } ! 95: ! 96: #endif TP_PERF_MEAS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.