1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright 2000-2002 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 #pragma ident "%Z%%M% %I% %E% SMI"
28
29 #include "statistics.h"
30
31 static sort_statistics_t *run_stats;
32
33 void
stats_init(sort_statistics_t * s)34 stats_init(sort_statistics_t *s)
35 {
36 run_stats = s;
37 memset(s, 0, sizeof (sort_statistics_t));
38 }
39
40 void
stats_display()41 stats_display()
42 {
43 (void) fprintf(stderr,
44 "Lines fetched: %20llu\n"
45 "Lines shelved: %20llu\n"
46 "Lines put: %20llu\n"
47 "Lines put uniquely: %20llu\n"
48 "Lines not unique: %20llu\n"
49 "Input files: %20u\n"
50 "Merge files: %20u\n"
51 "Subfiles: %20llu\n"
52 "TQS calls: %20llu\n"
53 "Swaps: %20llu\n"
54 "Available memory: %20llu\n"
55 "Insert filled input:%20llu\n"
56 "Insert filled up: %20llu\n"
57 "Insert filled down: %20llu\n"
58 "TQS calls: %20llu\n"
59 "Convert reallocs: %20llu\n"
60 "Line conversions: %20llu\n",
61 run_stats->st_fetched_lines,
62 run_stats->st_shelved_lines,
63 run_stats->st_put_lines,
64 run_stats->st_put_unique_lines,
65 run_stats->st_not_unique_lines,
66 run_stats->st_input_files,
67 run_stats->st_merge_files,
68 run_stats->st_subfiles,
69 run_stats->st_tqs_calls,
70 run_stats->st_swaps,
71 run_stats->st_avail_mem,
72 run_stats->st_insert_full_input,
73 run_stats->st_insert_full_up,
74 run_stats->st_insert_full_down,
75 run_stats->st_tqs_calls,
76 run_stats->st_convert_reallocs,
77 run_stats->st_line_conversions);
78 }
79
80 void
stats_incr_subfiles()81 stats_incr_subfiles()
82 {
83 run_stats->st_subfiles++;
84 }
85
86 void
stats_incr_fetches()87 stats_incr_fetches()
88 {
89 run_stats->st_fetched_lines++;
90 }
91
92 void
stats_incr_shelves()93 stats_incr_shelves()
94 {
95 run_stats->st_shelved_lines++;
96 }
97
98 void
stats_incr_puts()99 stats_incr_puts()
100 {
101 run_stats->st_put_lines++;
102 }
103
104 void
stats_incr_swaps()105 stats_incr_swaps()
106 {
107 run_stats->st_swaps++;
108 }
109
110 void
stats_set_input_files(uint_t n)111 stats_set_input_files(uint_t n)
112 {
113 run_stats->st_input_files = n;
114 }
115
116 void
stats_incr_input_files()117 stats_incr_input_files()
118 {
119 run_stats->st_input_files++;
120 }
121
122 void
stats_set_merge_files(uint_t n)123 stats_set_merge_files(uint_t n)
124 {
125 run_stats->st_merge_files = n;
126 }
127
128 void
stats_incr_merge_files()129 stats_incr_merge_files()
130 {
131 run_stats->st_merge_files++;
132 }
133
134 void
stats_set_available_memory(uint64_t a)135 stats_set_available_memory(uint64_t a)
136 {
137 run_stats->st_avail_mem = a;
138 }
139
140 void
stats_incr_insert_filled_input()141 stats_incr_insert_filled_input()
142 {
143 run_stats->st_insert_full_input++;
144 }
145
146 void
stats_incr_insert_filled_upward()147 stats_incr_insert_filled_upward()
148 {
149 run_stats->st_insert_full_up++;
150 }
151
152 void
stats_incr_insert_filled_downward()153 stats_incr_insert_filled_downward()
154 {
155 run_stats->st_insert_full_down++;
156 }
157
158 void
stats_incr_tqs_calls()159 stats_incr_tqs_calls()
160 {
161 run_stats->st_tqs_calls++;
162 }
163
164 void
stats_incr_put_unique()165 stats_incr_put_unique()
166 {
167 run_stats->st_put_unique_lines++;
168 }
169
170 void
stats_incr_not_unique()171 stats_incr_not_unique()
172 {
173 run_stats->st_not_unique_lines++;
174 }
175
176 void
stats_incr_convert_reallocs()177 stats_incr_convert_reallocs()
178 {
179 run_stats->st_convert_reallocs++;
180 }
181
182 void
stats_incr_line_conversions()183 stats_incr_line_conversions()
184 {
185 run_stats->st_line_conversions++;
186 }
187