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 34 stats_init(sort_statistics_t *s) 35 { 36 run_stats = s; 37 memset(s, 0, sizeof (sort_statistics_t)); 38 } 39 40 void 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 81 stats_incr_subfiles() 82 { 83 run_stats->st_subfiles++; 84 } 85 86 void 87 stats_incr_fetches() 88 { 89 run_stats->st_fetched_lines++; 90 } 91 92 void 93 stats_incr_shelves() 94 { 95 run_stats->st_shelved_lines++; 96 } 97 98 void 99 stats_incr_puts() 100 { 101 run_stats->st_put_lines++; 102 } 103 104 void 105 stats_incr_swaps() 106 { 107 run_stats->st_swaps++; 108 } 109 110 void 111 stats_set_input_files(uint_t n) 112 { 113 run_stats->st_input_files = n; 114 } 115 116 void 117 stats_incr_input_files() 118 { 119 run_stats->st_input_files++; 120 } 121 122 void 123 stats_set_merge_files(uint_t n) 124 { 125 run_stats->st_merge_files = n; 126 } 127 128 void 129 stats_incr_merge_files() 130 { 131 run_stats->st_merge_files++; 132 } 133 134 void 135 stats_set_available_memory(uint64_t a) 136 { 137 run_stats->st_avail_mem = a; 138 } 139 140 void 141 stats_incr_insert_filled_input() 142 { 143 run_stats->st_insert_full_input++; 144 } 145 146 void 147 stats_incr_insert_filled_upward() 148 { 149 run_stats->st_insert_full_up++; 150 } 151 152 void 153 stats_incr_insert_filled_downward() 154 { 155 run_stats->st_insert_full_down++; 156 } 157 158 void 159 stats_incr_tqs_calls() 160 { 161 run_stats->st_tqs_calls++; 162 } 163 164 void 165 stats_incr_put_unique() 166 { 167 run_stats->st_put_unique_lines++; 168 } 169 170 void 171 stats_incr_not_unique() 172 { 173 run_stats->st_not_unique_lines++; 174 } 175 176 void 177 stats_incr_convert_reallocs() 178 { 179 run_stats->st_convert_reallocs++; 180 } 181 182 void 183 stats_incr_line_conversions() 184 { 185 run_stats->st_line_conversions++; 186 } 187