5 Star 14 Fork 0

Gitee 极速下载/sysstat

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/sysstat/sysstat/releases
克隆/下载
rd_stats.h 25.54 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857
/*
* rd_stats.h: Include file used to read system statistics
* (C) 1999-2020 by Sebastien Godard (sysstat <at> orange.fr)
*/
#ifndef _RD_STATS_H
#define _RD_STATS_H
#include "common.h"
/*
***************************************************************************
* Miscellaneous constants
***************************************************************************
*/
/* Get IFNAMSIZ */
#include <net/if.h>
#ifndef IFNAMSIZ
#define IFNAMSIZ 16
#endif
/* Maximum length of block device name */
#define MAX_DEV_LEN 128
/* Maximum length of network interface name */
#define MAX_IFACE_LEN IFNAMSIZ
/* Maximum length of USB manufacturer string */
#define MAX_MANUF_LEN 24
/* Maximum length of USB product string */
#define MAX_PROD_LEN 48
/* Maximum length of filesystem name */
#define MAX_FS_LEN 128
/* Maximum length of FC host name */
#define MAX_FCH_LEN 16
#define CNT_PART 1
#define CNT_ALL_DEV 0
#define CNT_USED_DEV 1
#define K_DUPLEX_HALF "half"
#define K_DUPLEX_FULL "full"
#define C_DUPLEX_HALF 1
#define C_DUPLEX_FULL 2
/* Type for all functions counting items. Value can be negative (-1) */
#define __nr_t int
/*
***************************************************************************
* System files containing statistics
***************************************************************************
*/
/* Files */
#define SERIAL PRE "/proc/tty/driver/serial"
#define FDENTRY_STATE PRE "/proc/sys/fs/dentry-state"
#define FFILE_NR PRE "/proc/sys/fs/file-nr"
#define FINODE_STATE PRE "/proc/sys/fs/inode-state"
#define PTY_NR PRE "/proc/sys/kernel/pty/nr"
#define NET_DEV PRE "/proc/net/dev"
#define NET_SOCKSTAT PRE "/proc/net/sockstat"
#define NET_SOCKSTAT6 PRE "/proc/net/sockstat6"
#define NET_RPC_NFS PRE "/proc/net/rpc/nfs"
#define NET_RPC_NFSD PRE "/proc/net/rpc/nfsd"
#define NET_SOFTNET PRE "/proc/net/softnet_stat"
#define LOADAVG PRE "/proc/loadavg"
#define PRESSURE PRE "/proc/pressure"
#define PSI_CPU PRESSURE "/cpu"
#define PSI_IO PRESSURE "/io"
#define PSI_MEM PRESSURE "/memory"
#define VMSTAT PRE "/proc/vmstat"
#define NET_SNMP PRE "/proc/net/snmp"
#define NET_SNMP6 PRE "/proc/net/snmp6"
#define CPUINFO PRE "/proc/cpuinfo"
#define MTAB PRE "/etc/mtab"
#define IF_DUPLEX PRE "/sys/class/net/%s/duplex"
#define IF_SPEED PRE "/sys/class/net/%s/speed"
#define FC_RX_FRAMES "%s/%s/statistics/rx_frames"
#define FC_TX_FRAMES "%s/%s/statistics/tx_frames"
#define FC_RX_WORDS "%s/%s/statistics/rx_words"
#define FC_TX_WORDS "%s/%s/statistics/tx_words"
/*
***************************************************************************
* Definitions of structures for system statistics.
* WARNING: Fields order matters for SVG graphs!
***************************************************************************
*/
#define SIZEOF_LONG_64BIT 8
#define ULL_ALIGNMENT_WIDTH 8
#define UL_ALIGNMENT_WIDTH SIZEOF_LONG_64BIT
#define U_ALIGNMENT_WIDTH 4
#define MAP_SIZE(m) ((m[0] * ULL_ALIGNMENT_WIDTH) + \
(m[1] * UL_ALIGNMENT_WIDTH) + \
(m[2] * U_ALIGNMENT_WIDTH))
/*
* Structure for CPU statistics.
* In activity buffer: First structure is for global CPU utilisation ("all").
* Following structures are for each individual CPU (0, 1, etc.)
*/
struct stats_cpu {
unsigned long long cpu_user;
unsigned long long cpu_nice;
unsigned long long cpu_sys;
unsigned long long cpu_idle;
unsigned long long cpu_iowait;
unsigned long long cpu_steal;
unsigned long long cpu_hardirq;
unsigned long long cpu_softirq;
unsigned long long cpu_guest;
unsigned long long cpu_guest_nice;
};
#define STATS_CPU_SIZE (sizeof(struct stats_cpu))
#define STATS_CPU_ULL 10
#define STATS_CPU_UL 0
#define STATS_CPU_U 0
/*
* Structure for task creation and context switch statistics.
* The attribute (aligned(8)) is necessary so that sizeof(structure) has
* the same value on 32 and 64-bit architectures.
*/
struct stats_pcsw {
unsigned long long context_switch;
unsigned long processes __attribute__ ((aligned (8)));
};
#define STATS_PCSW_SIZE (sizeof(struct stats_pcsw))
#define STATS_PCSW_ULL 1
#define STATS_PCSW_UL 1
#define STATS_PCSW_U 0
/*
* Structure for interrupts statistics.
* In activity buffer: First structure is for total number of interrupts ("SUM").
* Following structures are for each individual interrupt (0, 1, etc.)
*/
struct stats_irq {
unsigned long long irq_nr;
};
#define STATS_IRQ_SIZE (sizeof(struct stats_irq))
#define STATS_IRQ_ULL 1
#define STATS_IRQ_UL 0
#define STATS_IRQ_U 0
/* Structure for swapping statistics */
struct stats_swap {
unsigned long pswpin __attribute__ ((aligned (8)));
unsigned long pswpout __attribute__ ((aligned (8)));
};
#define STATS_SWAP_SIZE (sizeof(struct stats_swap))
#define STATS_SWAP_ULL 0
#define STATS_SWAP_UL 2
#define STATS_SWAP_U 0
/* Structure for paging statistics */
struct stats_paging {
unsigned long pgpgin __attribute__ ((aligned (8)));
unsigned long pgpgout __attribute__ ((aligned (8)));
unsigned long pgfault __attribute__ ((aligned (8)));
unsigned long pgmajfault __attribute__ ((aligned (8)));
unsigned long pgfree __attribute__ ((aligned (8)));
unsigned long pgscan_kswapd __attribute__ ((aligned (8)));
unsigned long pgscan_direct __attribute__ ((aligned (8)));
unsigned long pgsteal __attribute__ ((aligned (8)));
};
#define STATS_PAGING_SIZE (sizeof(struct stats_paging))
#define STATS_PAGING_ULL 0
#define STATS_PAGING_UL 8
#define STATS_PAGING_U 0
/* Structure for I/O and transfer rate statistics */
struct stats_io {
unsigned long long dk_drive;
unsigned long long dk_drive_rio;
unsigned long long dk_drive_wio;
unsigned long long dk_drive_rblk;
unsigned long long dk_drive_wblk;
unsigned long long dk_drive_dio;
unsigned long long dk_drive_dblk;
};
#define STATS_IO_SIZE (sizeof(struct stats_io))
#define STATS_IO_ULL 7
#define STATS_IO_UL 0
#define STATS_IO_U 0
/* Structure for memory and swap space utilization statistics */
struct stats_memory {
unsigned long long frmkb;
unsigned long long bufkb;
unsigned long long camkb;
unsigned long long tlmkb;
unsigned long long frskb;
unsigned long long tlskb;
unsigned long long caskb;
unsigned long long comkb;
unsigned long long activekb;
unsigned long long inactkb;
unsigned long long dirtykb;
unsigned long long anonpgkb;
unsigned long long slabkb;
unsigned long long kstackkb;
unsigned long long pgtblkb;
unsigned long long vmusedkb;
unsigned long long availablekb;
};
#define STATS_MEMORY_SIZE (sizeof(struct stats_memory))
#define STATS_MEMORY_ULL 17
#define STATS_MEMORY_UL 0
#define STATS_MEMORY_U 0
/* Structure for kernel tables statistics */
struct stats_ktables {
unsigned long long file_used;
unsigned long long inode_used;
unsigned long long dentry_stat;
unsigned long long pty_nr;
};
#define STATS_KTABLES_SIZE (sizeof(struct stats_ktables))
#define STATS_KTABLES_ULL 4
#define STATS_KTABLES_UL 0
#define STATS_KTABLES_U 0
/* Structure for queue and load statistics */
struct stats_queue {
unsigned long long nr_running;
unsigned long long procs_blocked;
unsigned long long nr_threads;
unsigned int load_avg_1;
unsigned int load_avg_5;
unsigned int load_avg_15;
};
#define STATS_QUEUE_SIZE (sizeof(struct stats_queue))
#define STATS_QUEUE_ULL 3
#define STATS_QUEUE_UL 0
#define STATS_QUEUE_U 3
/* Structure for serial statistics */
struct stats_serial {
unsigned int rx;
unsigned int tx;
unsigned int frame;
unsigned int parity;
unsigned int brk;
unsigned int overrun;
unsigned int line;
};
#define STATS_SERIAL_SIZE (sizeof(struct stats_serial))
#define STATS_SERIAL_ULL 0
#define STATS_SERIAL_UL 0
#define STATS_SERIAL_U 7
/* Structure for block devices statistics */
struct stats_disk {
unsigned long long nr_ios;
unsigned long long wwn[2];
unsigned long rd_sect __attribute__ ((aligned (8)));
unsigned long wr_sect __attribute__ ((aligned (8)));
unsigned long dc_sect __attribute__ ((aligned (8)));
unsigned int rd_ticks __attribute__ ((aligned (8)));
unsigned int wr_ticks;
unsigned int tot_ticks;
unsigned int rq_ticks;
unsigned int major;
unsigned int minor;
unsigned int dc_ticks;
unsigned int part_nr;
};
#define STATS_DISK_SIZE (sizeof(struct stats_disk))
#define STATS_DISK_ULL 3
#define STATS_DISK_UL 3
#define STATS_DISK_U 8
/* Structure for network interfaces statistics */
struct stats_net_dev {
unsigned long long rx_packets;
unsigned long long tx_packets;
unsigned long long rx_bytes;
unsigned long long tx_bytes;
unsigned long long rx_compressed;
unsigned long long tx_compressed;
unsigned long long multicast;
unsigned int speed;
char interface[MAX_IFACE_LEN];
char duplex;
};
#define STATS_NET_DEV_SIZE (sizeof(struct stats_net_dev))
#define STATS_NET_DEV_SIZE2CMP (STATS_NET_DEV_SIZE - MAX_IFACE_LEN - 1)
#define STATS_NET_DEV_ULL 7
#define STATS_NET_DEV_UL 0
#define STATS_NET_DEV_U 1
/* Structure for network interface errors statistics */
struct stats_net_edev {
unsigned long long collisions;
unsigned long long rx_errors;
unsigned long long tx_errors;
unsigned long long rx_dropped;
unsigned long long tx_dropped;
unsigned long long rx_fifo_errors;
unsigned long long tx_fifo_errors;
unsigned long long rx_frame_errors;
unsigned long long tx_carrier_errors;
char interface[MAX_IFACE_LEN];
};
#define STATS_NET_EDEV_SIZE (sizeof(struct stats_net_edev))
#define STATS_NET_EDEV_SIZE2CMP (STATS_NET_EDEV_SIZE - MAX_IFACE_LEN)
#define STATS_NET_EDEV_ULL 9
#define STATS_NET_EDEV_UL 0
#define STATS_NET_EDEV_U 0
/* Structure for NFS client statistics */
struct stats_net_nfs {
unsigned int nfs_rpccnt;
unsigned int nfs_rpcretrans;
unsigned int nfs_readcnt;
unsigned int nfs_writecnt;
unsigned int nfs_accesscnt;
unsigned int nfs_getattcnt;
};
#define STATS_NET_NFS_SIZE (sizeof(struct stats_net_nfs))
#define STATS_NET_NFS_ULL 0
#define STATS_NET_NFS_UL 0
#define STATS_NET_NFS_U 6
/* Structure for NFS server statistics */
struct stats_net_nfsd {
unsigned int nfsd_rpccnt;
unsigned int nfsd_rpcbad;
unsigned int nfsd_netcnt;
unsigned int nfsd_netudpcnt;
unsigned int nfsd_nettcpcnt;
unsigned int nfsd_rchits;
unsigned int nfsd_rcmisses;
unsigned int nfsd_readcnt;
unsigned int nfsd_writecnt;
unsigned int nfsd_accesscnt;
unsigned int nfsd_getattcnt;
};
#define STATS_NET_NFSD_SIZE (sizeof(struct stats_net_nfsd))
#define STATS_NET_NFSD_ULL 0
#define STATS_NET_NFSD_UL 0
#define STATS_NET_NFSD_U 11
/* Structure for IPv4 sockets statistics */
struct stats_net_sock {
unsigned int sock_inuse;
unsigned int tcp_inuse;
unsigned int tcp_tw;
unsigned int udp_inuse;
unsigned int raw_inuse;
unsigned int frag_inuse;
};
#define STATS_NET_SOCK_SIZE (sizeof(struct stats_net_sock))
#define STATS_NET_SOCK_ULL 0
#define STATS_NET_SOCK_UL 0
#define STATS_NET_SOCK_U 6
/* Structure for IP statistics */
struct stats_net_ip {
unsigned long long InReceives;
unsigned long long ForwDatagrams;
unsigned long long InDelivers;
unsigned long long OutRequests;
unsigned long long ReasmReqds;
unsigned long long ReasmOKs;
unsigned long long FragOKs;
unsigned long long FragCreates;
};
#define STATS_NET_IP_SIZE (sizeof(struct stats_net_ip))
#define STATS_NET_IP_ULL 8
#define STATS_NET_IP_UL 0
#define STATS_NET_IP_U 0
/* Structure for IP errors statistics */
struct stats_net_eip {
unsigned long long InHdrErrors;
unsigned long long InAddrErrors;
unsigned long long InUnknownProtos;
unsigned long long InDiscards;
unsigned long long OutDiscards;
unsigned long long OutNoRoutes;
unsigned long long ReasmFails;
unsigned long long FragFails;
};
#define STATS_NET_EIP_SIZE (sizeof(struct stats_net_eip))
#define STATS_NET_EIP_ULL 8
#define STATS_NET_EIP_UL 0
#define STATS_NET_EIP_U 0
/* Structure for ICMP statistics */
struct stats_net_icmp {
unsigned long InMsgs __attribute__ ((aligned (8)));
unsigned long OutMsgs __attribute__ ((aligned (8)));
unsigned long InEchos __attribute__ ((aligned (8)));
unsigned long InEchoReps __attribute__ ((aligned (8)));
unsigned long OutEchos __attribute__ ((aligned (8)));
unsigned long OutEchoReps __attribute__ ((aligned (8)));
unsigned long InTimestamps __attribute__ ((aligned (8)));
unsigned long InTimestampReps __attribute__ ((aligned (8)));
unsigned long OutTimestamps __attribute__ ((aligned (8)));
unsigned long OutTimestampReps __attribute__ ((aligned (8)));
unsigned long InAddrMasks __attribute__ ((aligned (8)));
unsigned long InAddrMaskReps __attribute__ ((aligned (8)));
unsigned long OutAddrMasks __attribute__ ((aligned (8)));
unsigned long OutAddrMaskReps __attribute__ ((aligned (8)));
};
#define STATS_NET_ICMP_SIZE (sizeof(struct stats_net_icmp))
#define STATS_NET_ICMP_ULL 0
#define STATS_NET_ICMP_UL 14
#define STATS_NET_ICMP_U 0
/* Structure for ICMP error message statistics */
struct stats_net_eicmp {
unsigned long InErrors __attribute__ ((aligned (8)));
unsigned long OutErrors __attribute__ ((aligned (8)));
unsigned long InDestUnreachs __attribute__ ((aligned (8)));
unsigned long OutDestUnreachs __attribute__ ((aligned (8)));
unsigned long InTimeExcds __attribute__ ((aligned (8)));
unsigned long OutTimeExcds __attribute__ ((aligned (8)));
unsigned long InParmProbs __attribute__ ((aligned (8)));
unsigned long OutParmProbs __attribute__ ((aligned (8)));
unsigned long InSrcQuenchs __attribute__ ((aligned (8)));
unsigned long OutSrcQuenchs __attribute__ ((aligned (8)));
unsigned long InRedirects __attribute__ ((aligned (8)));
unsigned long OutRedirects __attribute__ ((aligned (8)));
};
#define STATS_NET_EICMP_SIZE (sizeof(struct stats_net_eicmp))
#define STATS_NET_EICMP_ULL 0
#define STATS_NET_EICMP_UL 12
#define STATS_NET_EICMP_U 0
/* Structure for TCP statistics */
struct stats_net_tcp {
unsigned long ActiveOpens __attribute__ ((aligned (8)));
unsigned long PassiveOpens __attribute__ ((aligned (8)));
unsigned long InSegs __attribute__ ((aligned (8)));
unsigned long OutSegs __attribute__ ((aligned (8)));
};
#define STATS_NET_TCP_SIZE (sizeof(struct stats_net_tcp))
#define STATS_NET_TCP_ULL 0
#define STATS_NET_TCP_UL 4
#define STATS_NET_TCP_U 0
/* Structure for TCP errors statistics */
struct stats_net_etcp {
unsigned long AttemptFails __attribute__ ((aligned (8)));
unsigned long EstabResets __attribute__ ((aligned (8)));
unsigned long RetransSegs __attribute__ ((aligned (8)));
unsigned long InErrs __attribute__ ((aligned (8)));
unsigned long OutRsts __attribute__ ((aligned (8)));
};
#define STATS_NET_ETCP_SIZE (sizeof(struct stats_net_etcp))
#define STATS_NET_ETCP_ULL 0
#define STATS_NET_ETCP_UL 5
#define STATS_NET_ETCP_U 0
/* Structure for UDP statistics */
struct stats_net_udp {
unsigned long InDatagrams __attribute__ ((aligned (8)));
unsigned long OutDatagrams __attribute__ ((aligned (8)));
unsigned long NoPorts __attribute__ ((aligned (8)));
unsigned long InErrors __attribute__ ((aligned (8)));
};
#define STATS_NET_UDP_SIZE (sizeof(struct stats_net_udp))
#define STATS_NET_UDP_ULL 0
#define STATS_NET_UDP_UL 4
#define STATS_NET_UDP_U 0
/* Structure for IPv6 sockets statistics */
struct stats_net_sock6 {
unsigned int tcp6_inuse;
unsigned int udp6_inuse;
unsigned int raw6_inuse;
unsigned int frag6_inuse;
};
#define STATS_NET_SOCK6_SIZE (sizeof(struct stats_net_sock6))
#define STATS_NET_SOCK6_ULL 0
#define STATS_NET_SOCK6_UL 0
#define STATS_NET_SOCK6_U 4
/* Structure for IPv6 statistics */
struct stats_net_ip6 {
unsigned long long InReceives6;
unsigned long long OutForwDatagrams6;
unsigned long long InDelivers6;
unsigned long long OutRequests6;
unsigned long long ReasmReqds6;
unsigned long long ReasmOKs6;
unsigned long long InMcastPkts6;
unsigned long long OutMcastPkts6;
unsigned long long FragOKs6;
unsigned long long FragCreates6;
};
#define STATS_NET_IP6_SIZE (sizeof(struct stats_net_ip6))
#define STATS_NET_IP6_ULL 10
#define STATS_NET_IP6_UL 0
#define STATS_NET_IP6_U 0
/* Structure for IPv6 errors statistics */
struct stats_net_eip6 {
unsigned long long InHdrErrors6;
unsigned long long InAddrErrors6;
unsigned long long InUnknownProtos6;
unsigned long long InTooBigErrors6;
unsigned long long InDiscards6;
unsigned long long OutDiscards6;
unsigned long long InNoRoutes6;
unsigned long long OutNoRoutes6;
unsigned long long ReasmFails6;
unsigned long long FragFails6;
unsigned long long InTruncatedPkts6;
};
#define STATS_NET_EIP6_SIZE (sizeof(struct stats_net_eip6))
#define STATS_NET_EIP6_ULL 11
#define STATS_NET_EIP6_UL 0
#define STATS_NET_EIP6_U 0
/* Structure for ICMPv6 statistics */
struct stats_net_icmp6 {
unsigned long InMsgs6 __attribute__ ((aligned (8)));
unsigned long OutMsgs6 __attribute__ ((aligned (8)));
unsigned long InEchos6 __attribute__ ((aligned (8)));
unsigned long InEchoReplies6 __attribute__ ((aligned (8)));
unsigned long OutEchoReplies6 __attribute__ ((aligned (8)));
unsigned long InGroupMembQueries6 __attribute__ ((aligned (8)));
unsigned long InGroupMembResponses6 __attribute__ ((aligned (8)));
unsigned long OutGroupMembResponses6 __attribute__ ((aligned (8)));
unsigned long InGroupMembReductions6 __attribute__ ((aligned (8)));
unsigned long OutGroupMembReductions6 __attribute__ ((aligned (8)));
unsigned long InRouterSolicits6 __attribute__ ((aligned (8)));
unsigned long OutRouterSolicits6 __attribute__ ((aligned (8)));
unsigned long InRouterAdvertisements6 __attribute__ ((aligned (8)));
unsigned long InNeighborSolicits6 __attribute__ ((aligned (8)));
unsigned long OutNeighborSolicits6 __attribute__ ((aligned (8)));
unsigned long InNeighborAdvertisements6 __attribute__ ((aligned (8)));
unsigned long OutNeighborAdvertisements6 __attribute__ ((aligned (8)));
};
#define STATS_NET_ICMP6_SIZE (sizeof(struct stats_net_icmp6))
#define STATS_NET_ICMP6_ULL 0
#define STATS_NET_ICMP6_UL 17
#define STATS_NET_ICMP6_U 0
/* Structure for ICMPv6 error message statistics */
struct stats_net_eicmp6 {
unsigned long InErrors6 __attribute__ ((aligned (8)));
unsigned long InDestUnreachs6 __attribute__ ((aligned (8)));
unsigned long OutDestUnreachs6 __attribute__ ((aligned (8)));
unsigned long InTimeExcds6 __attribute__ ((aligned (8)));
unsigned long OutTimeExcds6 __attribute__ ((aligned (8)));
unsigned long InParmProblems6 __attribute__ ((aligned (8)));
unsigned long OutParmProblems6 __attribute__ ((aligned (8)));
unsigned long InRedirects6 __attribute__ ((aligned (8)));
unsigned long OutRedirects6 __attribute__ ((aligned (8)));
unsigned long InPktTooBigs6 __attribute__ ((aligned (8)));
unsigned long OutPktTooBigs6 __attribute__ ((aligned (8)));
};
#define STATS_NET_EICMP6_SIZE (sizeof(struct stats_net_eicmp6))
#define STATS_NET_EICMP6_ULL 0
#define STATS_NET_EICMP6_UL 11
#define STATS_NET_EICMP6_U 0
/* Structure for UDPv6 statistics */
struct stats_net_udp6 {
unsigned long InDatagrams6 __attribute__ ((aligned (8)));
unsigned long OutDatagrams6 __attribute__ ((aligned (8)));
unsigned long NoPorts6 __attribute__ ((aligned (8)));
unsigned long InErrors6 __attribute__ ((aligned (8)));
};
#define STATS_NET_UDP6_SIZE (sizeof(struct stats_net_udp6))
#define STATS_NET_UDP6_ULL 0
#define STATS_NET_UDP6_UL 4
#define STATS_NET_UDP6_U 0
/*
* Structure for CPU frequency statistics.
* In activity buffer: First structure is for global CPU utilisation ("all").
* Following structures are for each individual CPU (0, 1, etc.)
*/
struct stats_pwr_cpufreq {
unsigned long cpufreq __attribute__ ((aligned (8)));
};
#define STATS_PWR_CPUFREQ_SIZE (sizeof(struct stats_pwr_cpufreq))
#define STATS_PWR_CPUFREQ_ULL 0
#define STATS_PWR_CPUFREQ_UL 1
#define STATS_PWR_CPUFREQ_U 0
/* Structure for hugepages statistics */
struct stats_huge {
unsigned long long frhkb;
unsigned long long tlhkb;
unsigned long long rsvdhkb;
unsigned long long surphkb;
};
#define STATS_HUGE_SIZE (sizeof(struct stats_huge))
#define STATS_HUGE_ULL 4
#define STATS_HUGE_UL 0
#define STATS_HUGE_U 0
/*
* Structure for weighted CPU frequency statistics.
* In activity buffer: First structure is for global CPU utilisation ("all").
* Following structures are for each individual CPU (0, 1, etc.)
*/
struct stats_pwr_wghfreq {
unsigned long long time_in_state;
unsigned long freq __attribute__ ((aligned (8)));
};
#define STATS_PWR_WGHFREQ_SIZE (sizeof(struct stats_pwr_wghfreq))
#define STATS_PWR_WGHFREQ_ULL 1
#define STATS_PWR_WGHFREQ_UL 1
#define STATS_PWR_WGHFREQ_U 0
/*
* Structure for USB devices plugged into the system.
*/
struct stats_pwr_usb {
unsigned int bus_nr;
unsigned int vendor_id;
unsigned int product_id;
unsigned int bmaxpower;
char manufacturer[MAX_MANUF_LEN];
char product[MAX_PROD_LEN];
};
#define STATS_PWR_USB_SIZE (sizeof(struct stats_pwr_usb))
#define STATS_PWR_USB_ULL 0
#define STATS_PWR_USB_UL 0
#define STATS_PWR_USB_U 4
/* Structure for filesystems statistics */
struct stats_filesystem {
unsigned long long f_blocks;
unsigned long long f_bfree;
unsigned long long f_bavail;
unsigned long long f_files;
unsigned long long f_ffree;
char fs_name[MAX_FS_LEN];
char mountp[MAX_FS_LEN];
};
#define STATS_FILESYSTEM_SIZE (sizeof(struct stats_filesystem))
#define STATS_FILESYSTEM_SIZE2CMP (STATS_FILESYSTEM_SIZE - 2 * MAX_FS_LEN)
#define STATS_FILESYSTEM_ULL 5
#define STATS_FILESYSTEM_UL 0
#define STATS_FILESYSTEM_U 0
/* Structure for Fibre Channel HBA statistics */
struct stats_fchost {
unsigned long f_rxframes __attribute__ ((aligned (8)));
unsigned long f_txframes __attribute__ ((aligned (8)));
unsigned long f_rxwords __attribute__ ((aligned (8)));
unsigned long f_txwords __attribute__ ((aligned (8)));
char fchost_name[MAX_FCH_LEN] __attribute__ ((aligned (8)));
};
#define STATS_FCHOST_SIZE (sizeof(struct stats_fchost))
#define STATS_FCHOST_ULL 0
#define STATS_FCHOST_UL 4
#define STATS_FCHOST_U 0
/* Structure for softnet statistics */
struct stats_softnet {
unsigned int processed;
unsigned int dropped;
unsigned int time_squeeze;
unsigned int received_rps;
unsigned int flow_limit;
};
#define STATS_SOFTNET_SIZE (sizeof(struct stats_softnet))
#define STATS_SOFTNET_ULL 0
#define STATS_SOFTNET_UL 0
#define STATS_SOFTNET_U 5
/* Structure for pressure-stall CPU statistics */
struct stats_psi_cpu {
unsigned long long some_cpu_total;
unsigned long some_acpu_10;
unsigned long some_acpu_60;
unsigned long some_acpu_300;
};
#define STATS_PSI_CPU_SIZE (sizeof(struct stats_psi_cpu))
#define STATS_PSI_CPU_ULL 1
#define STATS_PSI_CPU_UL 3
#define STATS_PSI_CPU_U 0
/* Structure for pressure-stall I/O statistics */
struct stats_psi_io {
unsigned long long some_io_total;
unsigned long long full_io_total;
unsigned long some_aio_10;
unsigned long some_aio_60;
unsigned long some_aio_300;
unsigned long full_aio_10;
unsigned long full_aio_60;
unsigned long full_aio_300;
};
#define STATS_PSI_IO_SIZE (sizeof(struct stats_psi_io))
#define STATS_PSI_IO_ULL 2
#define STATS_PSI_IO_UL 6
#define STATS_PSI_IO_U 0
/* Structure for pressure-stall memory statistics */
struct stats_psi_mem {
unsigned long long some_mem_total;
unsigned long long full_mem_total;
unsigned long some_amem_10;
unsigned long some_amem_60;
unsigned long some_amem_300;
unsigned long full_amem_10;
unsigned long full_amem_60;
unsigned long full_amem_300;
};
#define STATS_PSI_MEM_SIZE (sizeof(struct stats_psi_mem))
#define STATS_PSI_MEM_ULL 2
#define STATS_PSI_MEM_UL 6
#define STATS_PSI_MEM_U 0
/*
***************************************************************************
* Prototypes for functions used to read system statistics
***************************************************************************
*/
void compute_ext_disk_stats
(struct stats_disk *, struct stats_disk *, unsigned long long,
struct ext_disk_stats *);
unsigned long long get_per_cpu_interval
(struct stats_cpu *, struct stats_cpu *);
__nr_t read_stat_cpu
(struct stats_cpu *, __nr_t);
__nr_t read_stat_irq
(struct stats_irq *, __nr_t);
__nr_t read_meminfo
(struct stats_memory *);
void read_uptime
(unsigned long long *);
#ifdef SOURCE_SADC
void oct2chr
(char *);
__nr_t read_stat_pcsw
(struct stats_pcsw *);
__nr_t read_loadavg
(struct stats_queue *);
__nr_t read_vmstat_swap
(struct stats_swap *);
__nr_t read_vmstat_paging
(struct stats_paging *);
__nr_t read_diskstats_io
(struct stats_io *);
__nr_t read_diskstats_disk
(struct stats_disk *, __nr_t, int);
__nr_t read_tty_driver_serial
(struct stats_serial *, __nr_t);
__nr_t read_kernel_tables
(struct stats_ktables *);
__nr_t read_net_dev
(struct stats_net_dev *, __nr_t);
void read_if_info
(struct stats_net_dev *, int);
__nr_t read_net_edev
(struct stats_net_edev *, __nr_t);
__nr_t read_net_nfs
(struct stats_net_nfs *);
__nr_t read_net_nfsd
(struct stats_net_nfsd *);
__nr_t read_net_sock
(struct stats_net_sock *);
__nr_t read_net_ip
(struct stats_net_ip *);
__nr_t read_net_eip
(struct stats_net_eip *);
__nr_t read_net_icmp
(struct stats_net_icmp *);
__nr_t read_net_eicmp
(struct stats_net_eicmp *);
__nr_t read_net_tcp
(struct stats_net_tcp *);
__nr_t read_net_etcp
(struct stats_net_etcp *);
__nr_t read_net_udp
(struct stats_net_udp *);
__nr_t read_net_sock6
(struct stats_net_sock6 *);
__nr_t read_net_ip6
(struct stats_net_ip6 *);
__nr_t read_net_eip6
(struct stats_net_eip6 *);
__nr_t read_net_icmp6
(struct stats_net_icmp6 *);
__nr_t read_net_eicmp6
(struct stats_net_eicmp6 *);
__nr_t read_net_udp6
(struct stats_net_udp6 *);
__nr_t read_cpuinfo
(struct stats_pwr_cpufreq *, __nr_t);
__nr_t read_meminfo_huge
(struct stats_huge *);
__nr_t read_cpu_wghfreq
(struct stats_pwr_wghfreq *, __nr_t, __nr_t);
__nr_t read_bus_usb_dev
(struct stats_pwr_usb *, __nr_t);
__nr_t read_filesystem
(struct stats_filesystem *, __nr_t);
__nr_t read_fchost
(struct stats_fchost *, __nr_t);
int read_softnet
(struct stats_softnet *, __nr_t, unsigned char []);
__nr_t read_psicpu
(struct stats_psi_cpu *);
__nr_t read_psiio
(struct stats_psi_io *);
__nr_t read_psimem
(struct stats_psi_mem *);
#endif /* SOURCE_SADC */
#endif /* _RD_STATS_H */
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors/sysstat.git
git@gitee.com:mirrors/sysstat.git
mirrors
sysstat
sysstat
master

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385