|
|
1.1 ! root 1: /*- ! 2: * Copyright (c) 1991 The Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms, with or without ! 6: * modification, are permitted provided that the following conditions ! 7: * are met: ! 8: * 1. Redistributions of source code must retain the above copyright ! 9: * notice, this list of conditions and the following disclaimer. ! 10: * 2. Redistributions in binary form must reproduce the above copyright ! 11: * notice, this list of conditions and the following disclaimer in the ! 12: * documentation and/or other materials provided with the distribution. ! 13: * 3. All advertising materials mentioning features or use of this software ! 14: * must display the following acknowledgement: ! 15: * This product includes software developed by the University of ! 16: * California, Berkeley and its contributors. ! 17: * 4. Neither the name of the University nor the names of its contributors ! 18: * may be used to endorse or promote products derived from this software ! 19: * without specific prior written permission. ! 20: * ! 21: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 24: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 26: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 27: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 28: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 29: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 30: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 31: * SUCH DAMAGE. ! 32: * ! 33: * @(#)tp_meas.c 7.4 (Berkeley) 5/6/91 ! 34: */ ! 35: ! 36: /*********************************************************** ! 37: Copyright IBM Corporation 1987 ! 38: ! 39: All Rights Reserved ! 40: ! 41: Permission to use, copy, modify, and distribute this software and its ! 42: documentation for any purpose and without fee is hereby granted, ! 43: provided that the above copyright notice appear in all copies and that ! 44: both that copyright notice and this permission notice appear in ! 45: supporting documentation, and that the name of IBM not be ! 46: used in advertising or publicity pertaining to distribution of the ! 47: software without specific, written prior permission. ! 48: ! 49: IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ! 50: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ! 51: IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ! 52: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, ! 53: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ! 54: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ! 55: SOFTWARE. ! 56: ! 57: ******************************************************************/ ! 58: ! 59: /* ! 60: * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison ! 61: */ ! 62: /* ! 63: * $Header: tp_meas.c,v 5.2 88/11/18 17:28:04 nhall Exp $ ! 64: * $Source: /usr/argo/sys/netiso/RCS/tp_meas.c,v $ ! 65: * ! 66: * tp_meas.c : create a performance measurement event ! 67: * in the circular buffer tp_Meas[] ! 68: */ ! 69: ! 70: #include "types.h" ! 71: #include "time.h" ! 72: #include "argo_debug.h" ! 73: #include "tp_meas.h" ! 74: ! 75: extern struct timeval time; ! 76: ! 77: #ifdef TP_PERF_MEAS ! 78: int tp_Measn = 0; ! 79: struct tp_Meas tp_Meas[TPMEASN]; ! 80: ! 81: /* ! 82: * NAME: tpmeas() ! 83: * ! 84: * CALLED FROM: tp_emit(), tp_soisdisconecting(), tp_soisdisconnected() ! 85: * tp0_stash(), tp_stash(), tp_send(), tp_goodack(), tp_usrreq() ! 86: * ! 87: * FUNCTION and ARGUMENTS: ! 88: * stashes a performance-measurement event for the given reference (ref) ! 89: * (kind) tells which kind of event, timev is the time to be stored ! 90: * with this event, (seq), (win), and (size) are integers that usually ! 91: * refer to the sequence number, window number (on send) and ! 92: * size of tpdu or window. ! 93: * ! 94: * RETURNS: Nada ! 95: * ! 96: * SIDE EFFECTS: ! 97: * ! 98: * NOTES: ! 99: */ ! 100: void ! 101: Tpmeas(ref, kind, timev, seq, win, size) ! 102: u_int ref; ! 103: u_int kind; ! 104: struct timeval *timev; ! 105: u_int seq, win, size; ! 106: { ! 107: register struct tp_Meas *tpm; ! 108: static int mseq; ! 109: ! 110: tpm = &tp_Meas[tp_Measn++]; ! 111: tp_Measn %= TPMEASN; ! 112: ! 113: tpm->tpm_kind = kind; ! 114: tpm->tpm_tseq = mseq++; ! 115: tpm->tpm_ref = ref; ! 116: if(kind == TPtime_from_ll) ! 117: bcopy((caddr_t)timev, (caddr_t)&tpm->tpm_time, sizeof(struct timeval)); ! 118: else ! 119: bcopy( (caddr_t)&time, ! 120: (caddr_t)&tpm->tpm_time, sizeof(struct timeval) ); ! 121: tpm->tpm_seq = seq; ! 122: tpm->tpm_window = win; ! 123: tpm->tpm_size = size; ! 124: } ! 125: ! 126: #endif TP_PERF_MEAS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.