2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 #include <afsconfig.h>
11 #include <afs/param.h>
19 #include <rx/rxstat.h>
20 #if defined(KERNEL) && !defined(UKERNEL)
21 #include "sys/errno.h"
22 #endif /* KERNEL && !UKERNEL */
25 * This file creates a centralized mechanism for implementing the rpc
26 * stat code - which is generic across all servers.
30 MRXSTATS_RetrieveProcessRPCStats(struct rx_call
*call
,
31 IN afs_uint32 clientVersion
,
32 OUT afs_uint32
* serverVersion
,
33 OUT afs_uint32
* clock_sec
,
34 OUT afs_uint32
* clock_usec
,
35 OUT afs_uint32
* stat_count
,
41 rc
= rx_RetrieveProcessRPCStats(clientVersion
, serverVersion
, clock_sec
,
42 clock_usec
, &allocSize
, stat_count
,
43 &stats
->rpcStats_val
);
44 stats
->rpcStats_len
= (u_int
)(allocSize
/ sizeof(afs_uint32
));
50 MRXSTATS_RetrievePeerRPCStats(struct rx_call
* call
,
51 IN afs_uint32 clientVersion
,
52 OUT afs_uint32
* serverVersion
,
53 OUT afs_uint32
* clock_sec
,
54 OUT afs_uint32
* clock_usec
,
55 OUT afs_uint32
* stat_count
,
61 rc
= rx_RetrievePeerRPCStats(clientVersion
, serverVersion
, clock_sec
,
62 clock_usec
, &allocSize
, stat_count
,
63 &stats
->rpcStats_val
);
64 stats
->rpcStats_len
= (u_int
)(allocSize
/ sizeof(afs_uint32
));
70 MRXSTATS_QueryProcessRPCStats(struct rx_call
* call
, OUT afs_int32
* on
)
73 *on
= rx_queryProcessRPCStats();
79 MRXSTATS_QueryPeerRPCStats(struct rx_call
* call
, OUT afs_int32
* on
)
82 *on
= rx_queryPeerRPCStats();
88 MRXSTATS_EnableProcessRPCStats(struct rx_call
* call
)
91 if (!rx_RxStatUserOk(call
)) {
94 rx_enableProcessRPCStats();
100 MRXSTATS_EnablePeerRPCStats(struct rx_call
* call
)
103 if (!rx_RxStatUserOk(call
)) {
106 rx_enablePeerRPCStats();
113 MRXSTATS_DisableProcessRPCStats(struct rx_call
* call
)
116 if (!rx_RxStatUserOk(call
)) {
119 rx_disableProcessRPCStats();
125 MRXSTATS_DisablePeerRPCStats(struct rx_call
* call
)
128 if (!rx_RxStatUserOk(call
)) {
131 rx_disablePeerRPCStats();
137 MRXSTATS_QueryRPCStatsVersion(struct rx_call
* call
, OUT afs_uint32
* ver
)
140 *ver
= RX_STATS_RETRIEVAL_VERSION
;
145 MRXSTATS_ClearProcessRPCStats(struct rx_call
* call
, IN afs_uint32 clearFlag
)
148 if (!rx_RxStatUserOk(call
)) {
151 rx_clearProcessRPCStats(clearFlag
);
157 MRXSTATS_ClearPeerRPCStats(struct rx_call
* call
, IN afs_uint32 clearFlag
)
160 if (!rx_RxStatUserOk(call
)) {
163 rx_clearPeerRPCStats(clearFlag
);