⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perf.h

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 H
字号:
/*  *  Unix SMB/CIFS implementation. *  Performance Counter Daemon * *  Copyright (C) Marcin Krzysztof Porwit    2005 *   *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. *   *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. *   *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#ifndef __PERF_H__#define __PERF_H__#include <stdlib.h>#include <time.h>#include <math.h>#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <fcntl.h>#include <signal.h>#include <stdarg.h>#include <sys/mman.h>#include <sys/stat.h>#include <sys/time.h>#include <sys/wait.h>#include <limits.h>#include "tdb.h"#include <rpc_perfcount_defs.h>#include <sys/statfs.h>#include <sys/times.h>#include <sys/sysinfo.h>#define NUM_COUNTERS 10#define NAME_LEN 256#define HELP_LEN 1024#define PERF_OBJECT 0#define PERF_INSTANCE 1#define PERF_COUNTER 2#define FALSE 0#define TRUE !FALSE#define PROC_BUF 256#define LARGE_BUF 16384typedef struct perf_counter{    int index;    char name[NAME_LEN];    char help[HELP_LEN];    char relationships[NAME_LEN];    unsigned int counter_type;    int record_type;} PerfCounter;typedef struct mem_data{    unsigned int availPhysKb;    unsigned int availSwapKb;    unsigned int totalPhysKb;    unsigned int totalSwapKb;} MemData;typedef struct mem_info{    PerfCounter memObjDesc;    PerfCounter availPhysKb;    PerfCounter availSwapKb;    PerfCounter totalPhysKb;    PerfCounter totalSwapKb;    MemData *data;} MemInfo;typedef struct cpu_data{    unsigned long long user;    unsigned long long nice;    unsigned long long system;    unsigned long long idle;} CPUData;typedef struct cpu_info{    unsigned int numCPUs;    PerfCounter cpuObjDesc;    PerfCounter userCPU;    PerfCounter niceCPU;    PerfCounter systemCPU;    PerfCounter idleCPU;    CPUData *data;} CPUInfo;typedef struct disk_meta_data{	char name[NAME_LEN];	char mountpoint[NAME_LEN];} DiskMetaData;typedef struct disk_data{	unsigned long long freeMegs;	unsigned int writesPerSec;	unsigned int readsPerSec;} DiskData;typedef struct disk_info{	unsigned int numDisks;	DiskMetaData *mdata;	PerfCounter diskObjDesc;	PerfCounter freeMegs;	PerfCounter writesPerSec;	PerfCounter readsPerSec;	DiskData *data;} DiskInfo;typedef struct process_data{	unsigned int runningProcessCount;} ProcessData;typedef struct process_info{	PerfCounter processObjDesc;	PerfCounter runningProcessCount;	ProcessData *data;} ProcessInfo;typedef struct perf_data_block{	unsigned int counter_id;	unsigned int num_counters;	unsigned int NumObjectTypes;	unsigned long long PerfTime;	unsigned long long PerfFreq;	unsigned long long PerfTime100nSec;	MemInfo memInfo;	CPUInfo cpuInfo;	ProcessInfo processInfo;	DiskInfo diskInfo;} PERF_DATA_BLOCK;typedef struct runtime_settings{    /* Runtime flags */    int dflag;    /* DB path names */    char dbDir[PATH_MAX];    char nameFile[PATH_MAX];    char counterFile[PATH_MAX];    /* TDB context */    TDB_CONTEXT *cnames;    TDB_CONTEXT *cdata;} RuntimeSettings;/* perf_writer_ng_util.c function prototypes */void fatal(char *msg);void add_key(TDB_CONTEXT *db, char *keystring, char *datastring, int flags);void add_key_raw(TDB_CONTEXT *db, char *keystring, void *datastring, size_t datasize, int flags);void make_key(char *buf, int buflen, int key_part1, char *key_part2);void parse_flags(RuntimeSettings *rt, int argc, char **argv);void setup_file_paths(RuntimeSettings *rt);void daemonize(RuntimeSettings *rt);/* perf_writer_ng_mem.c function prototypes */void get_meminfo(PERF_DATA_BLOCK *data);void init_memdata_desc(PERF_DATA_BLOCK *data);void init_memdata(PERF_DATA_BLOCK *data);void output_mem_desc(PERF_DATA_BLOCK *data, RuntimeSettings rt);void output_meminfo(PERF_DATA_BLOCK *data, RuntimeSettings rt, int tdb_flags);void init_perf_counter(PerfCounter *counter, PerfCounter *parent, unsigned int index, char *name, char *help, int counter_type, int record_type);/* perf_writer_ng_cpu.c function prototypes */unsigned long long get_cpufreq();void init_cpudata_desc(PERF_DATA_BLOCK *data);void get_cpuinfo(PERF_DATA_BLOCK *data);void init_cpu_data(PERF_DATA_BLOCK *data);void output_cpu_desc(PERF_DATA_BLOCK *data, RuntimeSettings rt);void output_cpuinfo(PERF_DATA_BLOCK *data, RuntimeSettings rt, int tdb_flags);#endif /* __PERF_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -