15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * CDDL HEADER START
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems *
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * The contents of this file are subject to the terms of the
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Common Development and Distribution License (the "License").
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * You may not use this file except in compliance with the License.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems *
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * or http://www.opensolaris.org/os/licensing.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * See the License for the specific language governing permissions
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * and limitations under the License.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems *
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * When distributing Covered Code, include this CDDL HEADER in each
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * If applicable, add the following below this CDDL HEADER, with the
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * fields enclosed by brackets "[]" replaced with your own identifying
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * information: Portions Copyright [yyyy] [name of copyright owner]
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems *
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * CDDL HEADER END
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Copyright (c) 2008-2009, Intel Corporation.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * All Rights Reserved.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#ifndef _LATENCYTOP_H
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define _LATENCYTOP_H
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#include <sys/types.h>
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#include <glib.h>
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#ifdef __cplusplus
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern "C" {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#endif
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Without this lint seems to be confused by glib header file.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#ifdef __lint
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#undef g_assert
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define g_assert(x) ((void)(x))
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#undef TRUE
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define TRUE 1
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#endif
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * We define our own conversions in order to avoid compiler warnings.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define LT_INT_TO_POINTER(a) ((void *)(unsigned long)(a))
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define TITLE "LatencyTOP for OpenSolaris, version 1.0"
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define COPYRIGHT "Copyright (c) 2008-2009, Intel Corporation."
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define DEFAULT_KLOG_FILE "/var/log/latencytop.log"
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define INVALID_PID (~0)
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define INVALID_TID (~0)
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define PID_SYS_GLOBAL INVALID_PID
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define INVALID_CAUSE 0
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define HIGHER_PRIORITY(a, b) ((a) > (b))
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#ifdef EMBED_CONFIGS
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * LatencyTOP configuration is embedded in the binary.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Array will be generated by elfwrap.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern char latencytop_d_start;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern char latencytop_d_end;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern char latencytop_trans_start;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern char latencytop_trans_end;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#else
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * LatencyTOP configuration is provided externally by user.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define DEFAULT_CONFIG_NAME "./latencytop.trans"
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define DEFAULT_D_SCRIPT_NAME "./latencytop.d"
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#endif
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemstypedef enum {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_STAT_COUNT,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_STAT_MAX,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_STAT_SUM,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems} lt_stat_type_t;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define LT_KLOG_LEVEL_NONE 0 /* Log nothing */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define LT_KLOG_LEVEL_UNMAPPED 1 /* Log only stacks not mapped */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define LT_KLOG_LEVEL_MAPPED 2 /* Log only stacks mapped */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define LT_KLOG_LEVEL_ALL 3 /* Log all stacks, mapped or not */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemstypedef enum {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_LEVEL_GLOBAL, /* System wide statistics */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_LEVEL_PROCESS, /* Per-process statistics */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_LEVEL_THREAD, /* Per-thread statistics */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems} lt_stat_level_t;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemstypedef enum {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_SORT_TOTAL,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_SORT_MAX,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_SORT_AVG,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_SORT_COUNT,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems} lt_sort_t;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemstypedef enum {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_FIELD_FNAME,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_FIELD_PSARGS,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems} lt_field_t;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemstypedef enum {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_LIST_CAUSE, /* List latency by causes (default) */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_LIST_SPECIALS, /* List only "special" causes */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems LT_LIST_SOBJ /* List synchronization objects */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems} lt_list_type_t;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Data structure which contains statistics.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemstypedef struct {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems uint64_t lt_s_count;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems uint64_t lt_s_total;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems uint64_t lt_s_max;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems} lt_stat_data_t;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Data structure that stores statistics along with the name.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemstypedef struct {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems enum {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems STAT_CAUSE,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems STAT_SOBJ
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems } lt_se_type;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems const char *lt_se_string;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems lt_stat_data_t lt_se_data;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems union {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems struct {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems int lt_se_c_id;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems int lt_se_c_flags;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems } lt_se_t_cause;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems struct {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems int lt_se_s_id;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems } lt_se_t_sobj;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems } lt_se_tsdata; /* type specific data */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems} lt_stat_entry_t;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemstypedef struct {
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems int lt_cfg_enable_filter;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems int lt_cfg_trace_sched;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems int lt_cfg_trace_syncobj;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems int lt_cfg_low_overhead_mode;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems int lt_cfg_snap_interval;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems char *lt_cfg_config_name;
a9c12afde877c596eed286ac3f1d518246e5cd1eKrishnendu Sadhukhan - Sun Microsystems unsigned int lt_cfg_trace_pid;
a9c12afde877c596eed286ac3f1d518246e5cd1eKrishnendu Sadhukhan - Sun Microsystems unsigned int lt_cfg_trace_pgid;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems} lt_config_t;
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern lt_config_t g_config; /* The global settings */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Causes can be disabled through the configuration file.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * When disabled, though D script will continue to capture causes, they will
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * not be counted by LatencyTOP.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define CAUSE_FLAG_DISABLED 1
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * This flag will not show and count causes as part of summary in
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * "kstack window".
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define CAUSE_FLAG_HIDE_IN_SUMMARY 2
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * This is generated from D script (named cause), and is "special".
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define CAUSE_FLAG_SPECIAL 4
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#define CAUSE_ALL_FLAGS 0xffffffff
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
1a1f79f5a554655d51ccfdc74953bc86dc99d174Krishnendu Sadhukhan - Sun Microsystemsextern boolean_t lt_drop_detected;
1a1f79f5a554655d51ccfdc74953bc86dc99d174Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * These functions collect statistics using DTrace.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_dtrace_init(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_dtrace_work(int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_dtrace_collect(void);
1a1f79f5a554655d51ccfdc74953bc86dc99d174Krishnendu Sadhukhan - Sun Microsystemsextern int lt_dtrace_deinit(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * These functions maintain configuration, e.g. symbol to cause mapping.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_table_init(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_table_cause_from_stack(const char *, int *, int *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern const char *lt_table_get_cause_name(int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_table_get_cause_flag(int, int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_table_cause_from_name(char *, int, int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_table_append_trans(FILE *fp);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_table_deinit(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * These functions update statistic of all causes of latency, collected
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * from DTrace.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_stat_update(pid_t, id_t, char *, char *, unsigned int,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems lt_stat_type_t, uint64_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_stat_update_cause(pid_t, id_t, int, lt_stat_type_t, uint64_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_stat_update_sobj(pid_t, id_t, int, unsigned long long,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems lt_stat_type_t, uint64_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_stat_clear_all(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_stat_free_all(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * These functions produce lists for display panes.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Note: after a call to lt_stat_update_*, the old lists will become invalid.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void *lt_stat_list_create(lt_list_type_t, lt_stat_level_t,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems pid_t, id_t, int, lt_sort_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_stat_list_has_item(void *, int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern const char *lt_stat_list_get_reason(void *, int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern uint64_t lt_stat_list_get_max(void *, int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern uint64_t lt_stat_list_get_sum(void *, int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern uint64_t lt_stat_list_get_count(void *, int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern uint64_t lt_stat_list_get_gtotal(void *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_stat_list_free(void *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * These functions produce the process list and the thread list.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_stat_proc_list_create(pid_t **, id_t **);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_stat_proc_list_free(pid_t *, id_t *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern const char *lt_stat_proc_get_name(pid_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_stat_proc_get_nthreads(pid_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * These functions use ncurses to create console-based display.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_display_init(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_display_loop(int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_display_error(const char *, ...);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_display_deinit(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Write statistics to log file - useful for debugging and offline analysis.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_klog_init(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_klog_deinit(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_klog_set_log_file(const char *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_klog_set_log_level(int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_klog_write(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_klog_log(int, pid_t, char *, lt_stat_type_t,
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems uint64_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems/*
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems * Utility functions.
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems */
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern uint64_t lt_millisecond(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void *lt_malloc(size_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void *lt_zalloc(size_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern char *lt_strdup(const char *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_check_null(void *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_time_str(char *, int);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern char *lt_get_proc_field(pid_t, lt_field_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_update_stat_value(lt_stat_data_t *, lt_stat_type_t, uint64_t);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_sort_by_total_desc(lt_stat_entry_t *, lt_stat_entry_t *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_sort_by_max_desc(lt_stat_entry_t *, lt_stat_entry_t *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_sort_by_count_desc(lt_stat_entry_t *, lt_stat_entry_t *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_sort_by_avg_desc(lt_stat_entry_t *, lt_stat_entry_t *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_gpipe_init(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_gpipe_deinit(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern void lt_gpipe_break(const char *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_gpipe_readfd(void);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystemsextern int lt_file_exist(const char *);
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#ifdef __cplusplus
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems}
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#endif
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems
15db28971f91c98efb449aebf46024ac72779fa3Krishnendu Sadhukhan - Sun Microsystems#endif /* _LATENCYTOP_H */