histogram.c

#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)

histogram.c75 行で定義されています。

参照元 begin_measure(), end_measure(), init_hist(), と print_hist().

#define TMIN_HISTID   1

histogram.c74 行で定義されています。

参照元 begin_measure(), end_measure(), init_hist(), と print_hist().


型定義


関数

void begin_measure ( ID  histid  ) 

histogram.c101 行で定義されています。

参照先 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.c115 行で定義されています。

参照先 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 }

void init_hist ( ID  histid,
uint_t  maxval,
uint_t  histarea[] 
)

histogram.c81 行で定義されています。

参照先 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.c139 行で定義されています。

参照先 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.c69 行で定義されています。


Copyright © 2008 by Kijineko Inc.

ホームページ制作