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