#include <kernel.h>
#include <t_syslog.h>
#include "syssvc/logtask.h"
#include <histogram.h>
データ構造 | |
struct | histogram_control_block |
マクロ定義 | |
#define | TMIN_HISTID 1 |
#define | TMAX_HISTID (TMIN_HISTID + TNUM_HIST - 1) |
型定義 | |
typedef struct histogram_control_block | HISTCB |
関数 | |
void | init_hist (ID histid, uint_t maxval, uint_t histarea[]) |
void | begin_measure (ID histid) |
void | end_measure (ID histid) |
void | print_hist (ID histid) |
変数 | |
HISTCB | histcb_table [TNUM_HIST] |
#define TMAX_HISTID (TMIN_HISTID + TNUM_HIST - 1) |
#define TMIN_HISTID 1 |
typedef struct histogram_control_block HISTCB |
void begin_measure | ( | ID | histid | ) |
histogram.c の 101 行で定義されています。
参照先 assert, histogram_control_block::begin_time, get_utm(), TMAX_HISTID, と TMIN_HISTID.
00102 { 00103 HISTCB *p_histcb; 00104 00105 assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID); 00106 p_histcb = &(histcb_table[histid - TMIN_HISTID]); 00107 00108 get_utm(&(p_histcb->begin_time)); 00109 }
void end_measure | ( | ID | histid | ) |
histogram.c の 115 行で定義されています。
参照先 assert, histogram_control_block::begin_time, get_utm(), histogram_control_block::histarea, histogram_control_block::over, TMAX_HISTID, と TMIN_HISTID.
00116 { 00117 HISTCB *p_histcb; 00118 SYSUTM end_time; 00119 uint_t val; 00120 00121 get_utm(&end_time); 00122 00123 assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID); 00124 p_histcb = &(histcb_table[histid - TMIN_HISTID]); 00125 00126 val = (uint_t)(end_time - p_histcb->begin_time); 00127 if (val <= p_histcb->maxval) { 00128 p_histcb->histarea[val]++; 00129 } 00130 else { 00131 p_histcb->over++; 00132 } 00133 }
histogram.c の 81 行で定義されています。
参照先 assert, histogram_control_block::histarea, histogram_control_block::maxval, histogram_control_block::over, TMAX_HISTID, と TMIN_HISTID.
00082 { 00083 HISTCB *p_histcb; 00084 uint_t i; 00085 00086 assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID); 00087 p_histcb = &(histcb_table[histid - TMIN_HISTID]); 00088 00089 for (i = 0; i < maxval; i++) { 00090 histarea[i] = 0U; 00091 } 00092 p_histcb->maxval = maxval; 00093 p_histcb->histarea = histarea; 00094 p_histcb->over = 0U; 00095 }
void print_hist | ( | ID | histid | ) |
histogram.c の 139 行で定義されています。
参照先 assert, histogram_control_block::histarea, LOG_NOTICE, logtask_flush(), histogram_control_block::maxval, histogram_control_block::over, syslog_2, TMAX_HISTID, と TMIN_HISTID.
00140 { 00141 HISTCB *p_histcb; 00142 uint_t i; 00143 00144 assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID); 00145 p_histcb = &(histcb_table[histid - TMIN_HISTID]); 00146 00147 for (i = 0; i < p_histcb->maxval; i++) { 00148 if (p_histcb->histarea[i] > 0) { 00149 syslog_2(LOG_NOTICE, "%d : %d", i, p_histcb->histarea[i]); 00150 (void) logtask_flush(4U); 00151 } 00152 } 00153 if (p_histcb->over > 0) { 00154 syslog_2(LOG_NOTICE, "> %d : %d", p_histcb->maxval, p_histcb->over); 00155 } 00156 (void) logtask_flush(0U); 00157 }
HISTCB histcb_table[TNUM_HIST] |
histogram.c の 69 行で定義されています。
Copyright © 2008 by Kijineko Inc.