1*7c478bd9Sstevel@tonic-gate /* 2*7c478bd9Sstevel@tonic-gate * CDDL HEADER START 3*7c478bd9Sstevel@tonic-gate * 4*7c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 5*7c478bd9Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only 6*7c478bd9Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance 7*7c478bd9Sstevel@tonic-gate * with the License. 8*7c478bd9Sstevel@tonic-gate * 9*7c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*7c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 11*7c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 12*7c478bd9Sstevel@tonic-gate * and limitations under the License. 13*7c478bd9Sstevel@tonic-gate * 14*7c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 15*7c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*7c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 17*7c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 18*7c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 19*7c478bd9Sstevel@tonic-gate * 20*7c478bd9Sstevel@tonic-gate * CDDL HEADER END 21*7c478bd9Sstevel@tonic-gate */ 22*7c478bd9Sstevel@tonic-gate /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23*7c478bd9Sstevel@tonic-gate /* All Rights Reserved */ 24*7c478bd9Sstevel@tonic-gate 25*7c478bd9Sstevel@tonic-gate 26*7c478bd9Sstevel@tonic-gate /* 27*7c478bd9Sstevel@tonic-gate * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 28*7c478bd9Sstevel@tonic-gate * Use is subject to license terms. 29*7c478bd9Sstevel@tonic-gate */ 30*7c478bd9Sstevel@tonic-gate 31*7c478bd9Sstevel@tonic-gate #ifndef _SYS_SYSINFO_H 32*7c478bd9Sstevel@tonic-gate #define _SYS_SYSINFO_H 33*7c478bd9Sstevel@tonic-gate 34*7c478bd9Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 11.14 */ 35*7c478bd9Sstevel@tonic-gate 36*7c478bd9Sstevel@tonic-gate #include <sys/types.h> 37*7c478bd9Sstevel@tonic-gate #include <sys/t_lock.h> 38*7c478bd9Sstevel@tonic-gate #include <sys/kstat.h> 39*7c478bd9Sstevel@tonic-gate #include <sys/machlock.h> 40*7c478bd9Sstevel@tonic-gate 41*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus 42*7c478bd9Sstevel@tonic-gate extern "C" { 43*7c478bd9Sstevel@tonic-gate #endif 44*7c478bd9Sstevel@tonic-gate 45*7c478bd9Sstevel@tonic-gate /* 46*7c478bd9Sstevel@tonic-gate * System Information. 47*7c478bd9Sstevel@tonic-gate */ 48*7c478bd9Sstevel@tonic-gate #define CPU_IDLE 0 49*7c478bd9Sstevel@tonic-gate #define CPU_USER 1 50*7c478bd9Sstevel@tonic-gate #define CPU_KERNEL 2 51*7c478bd9Sstevel@tonic-gate #define CPU_WAIT 3 52*7c478bd9Sstevel@tonic-gate #define CPU_STATES 4 53*7c478bd9Sstevel@tonic-gate 54*7c478bd9Sstevel@tonic-gate #define W_IO 0 55*7c478bd9Sstevel@tonic-gate #define W_SWAP 1 56*7c478bd9Sstevel@tonic-gate #define W_PIO 2 57*7c478bd9Sstevel@tonic-gate #define W_STATES 3 58*7c478bd9Sstevel@tonic-gate 59*7c478bd9Sstevel@tonic-gate typedef struct cpu_sysinfo { 60*7c478bd9Sstevel@tonic-gate uint_t cpu[CPU_STATES]; /* CPU utilization */ 61*7c478bd9Sstevel@tonic-gate uint_t wait[W_STATES]; /* CPU wait time breakdown */ 62*7c478bd9Sstevel@tonic-gate uint_t bread; /* physical block reads */ 63*7c478bd9Sstevel@tonic-gate uint_t bwrite; /* physical block writes (sync+async) */ 64*7c478bd9Sstevel@tonic-gate uint_t lread; /* logical block reads */ 65*7c478bd9Sstevel@tonic-gate uint_t lwrite; /* logical block writes */ 66*7c478bd9Sstevel@tonic-gate uint_t phread; /* raw I/O reads */ 67*7c478bd9Sstevel@tonic-gate uint_t phwrite; /* raw I/O writes */ 68*7c478bd9Sstevel@tonic-gate uint_t pswitch; /* context switches */ 69*7c478bd9Sstevel@tonic-gate uint_t trap; /* traps */ 70*7c478bd9Sstevel@tonic-gate uint_t intr; /* device interrupts */ 71*7c478bd9Sstevel@tonic-gate uint_t syscall; /* system calls */ 72*7c478bd9Sstevel@tonic-gate uint_t sysread; /* read() + readv() system calls */ 73*7c478bd9Sstevel@tonic-gate uint_t syswrite; /* write() + writev() system calls */ 74*7c478bd9Sstevel@tonic-gate uint_t sysfork; /* forks */ 75*7c478bd9Sstevel@tonic-gate uint_t sysvfork; /* vforks */ 76*7c478bd9Sstevel@tonic-gate uint_t sysexec; /* execs */ 77*7c478bd9Sstevel@tonic-gate uint_t readch; /* bytes read by rdwr() */ 78*7c478bd9Sstevel@tonic-gate uint_t writech; /* bytes written by rdwr() */ 79*7c478bd9Sstevel@tonic-gate uint_t rcvint; /* XXX: UNUSED */ 80*7c478bd9Sstevel@tonic-gate uint_t xmtint; /* XXX: UNUSED */ 81*7c478bd9Sstevel@tonic-gate uint_t mdmint; /* XXX: UNUSED */ 82*7c478bd9Sstevel@tonic-gate uint_t rawch; /* terminal input characters */ 83*7c478bd9Sstevel@tonic-gate uint_t canch; /* chars handled in canonical mode */ 84*7c478bd9Sstevel@tonic-gate uint_t outch; /* terminal output characters */ 85*7c478bd9Sstevel@tonic-gate uint_t msg; /* msg count (msgrcv()+msgsnd() calls) */ 86*7c478bd9Sstevel@tonic-gate uint_t sema; /* semaphore ops count (semop() calls) */ 87*7c478bd9Sstevel@tonic-gate uint_t namei; /* pathname lookups */ 88*7c478bd9Sstevel@tonic-gate uint_t ufsiget; /* ufs_iget() calls */ 89*7c478bd9Sstevel@tonic-gate uint_t ufsdirblk; /* directory blocks read */ 90*7c478bd9Sstevel@tonic-gate uint_t ufsipage; /* inodes taken with attached pages */ 91*7c478bd9Sstevel@tonic-gate uint_t ufsinopage; /* inodes taked with no attached pages */ 92*7c478bd9Sstevel@tonic-gate uint_t inodeovf; /* inode table overflows */ 93*7c478bd9Sstevel@tonic-gate uint_t fileovf; /* file table overflows */ 94*7c478bd9Sstevel@tonic-gate uint_t procovf; /* proc table overflows */ 95*7c478bd9Sstevel@tonic-gate uint_t intrthread; /* interrupts as threads (below clock) */ 96*7c478bd9Sstevel@tonic-gate uint_t intrblk; /* intrs blkd/prempted/released (swtch) */ 97*7c478bd9Sstevel@tonic-gate uint_t idlethread; /* times idle thread scheduled */ 98*7c478bd9Sstevel@tonic-gate uint_t inv_swtch; /* involuntary context switches */ 99*7c478bd9Sstevel@tonic-gate uint_t nthreads; /* thread_create()s */ 100*7c478bd9Sstevel@tonic-gate uint_t cpumigrate; /* cpu migrations by threads */ 101*7c478bd9Sstevel@tonic-gate uint_t xcalls; /* xcalls to other cpus */ 102*7c478bd9Sstevel@tonic-gate uint_t mutex_adenters; /* failed mutex enters (adaptive) */ 103*7c478bd9Sstevel@tonic-gate uint_t rw_rdfails; /* rw reader failures */ 104*7c478bd9Sstevel@tonic-gate uint_t rw_wrfails; /* rw writer failures */ 105*7c478bd9Sstevel@tonic-gate uint_t modload; /* times loadable module loaded */ 106*7c478bd9Sstevel@tonic-gate uint_t modunload; /* times loadable module unloaded */ 107*7c478bd9Sstevel@tonic-gate uint_t bawrite; /* physical block writes (async) */ 108*7c478bd9Sstevel@tonic-gate /* Following are gathered only under #ifdef STATISTICS in source */ 109*7c478bd9Sstevel@tonic-gate uint_t rw_enters; /* tries to acquire rw lock */ 110*7c478bd9Sstevel@tonic-gate uint_t win_uo_cnt; /* reg window user overflows */ 111*7c478bd9Sstevel@tonic-gate uint_t win_uu_cnt; /* reg window user underflows */ 112*7c478bd9Sstevel@tonic-gate uint_t win_so_cnt; /* reg window system overflows */ 113*7c478bd9Sstevel@tonic-gate uint_t win_su_cnt; /* reg window system underflows */ 114*7c478bd9Sstevel@tonic-gate uint_t win_suo_cnt; /* reg window system user overflows */ 115*7c478bd9Sstevel@tonic-gate } cpu_sysinfo_t; 116*7c478bd9Sstevel@tonic-gate 117*7c478bd9Sstevel@tonic-gate typedef struct sysinfo { /* (update freq) update action */ 118*7c478bd9Sstevel@tonic-gate uint_t updates; /* (1 sec) ++ */ 119*7c478bd9Sstevel@tonic-gate uint_t runque; /* (1 sec) += num runnable procs */ 120*7c478bd9Sstevel@tonic-gate uint_t runocc; /* (1 sec) ++ if num runnable procs > 0 */ 121*7c478bd9Sstevel@tonic-gate uint_t swpque; /* (1 sec) += num swapped procs */ 122*7c478bd9Sstevel@tonic-gate uint_t swpocc; /* (1 sec) ++ if num swapped procs > 0 */ 123*7c478bd9Sstevel@tonic-gate uint_t waiting; /* (1 sec) += jobs waiting for I/O */ 124*7c478bd9Sstevel@tonic-gate } sysinfo_t; 125*7c478bd9Sstevel@tonic-gate 126*7c478bd9Sstevel@tonic-gate typedef struct cpu_syswait { 127*7c478bd9Sstevel@tonic-gate int iowait; /* procs waiting for block I/O */ 128*7c478bd9Sstevel@tonic-gate int swap; /* XXX: UNUSED */ 129*7c478bd9Sstevel@tonic-gate int physio; /* XXX: UNUSED */ 130*7c478bd9Sstevel@tonic-gate } cpu_syswait_t; 131*7c478bd9Sstevel@tonic-gate 132*7c478bd9Sstevel@tonic-gate typedef struct cpu_vminfo { 133*7c478bd9Sstevel@tonic-gate uint_t pgrec; /* page reclaims (includes pageout) */ 134*7c478bd9Sstevel@tonic-gate uint_t pgfrec; /* page reclaims from free list */ 135*7c478bd9Sstevel@tonic-gate uint_t pgin; /* pageins */ 136*7c478bd9Sstevel@tonic-gate uint_t pgpgin; /* pages paged in */ 137*7c478bd9Sstevel@tonic-gate uint_t pgout; /* pageouts */ 138*7c478bd9Sstevel@tonic-gate uint_t pgpgout; /* pages paged out */ 139*7c478bd9Sstevel@tonic-gate uint_t swapin; /* swapins */ 140*7c478bd9Sstevel@tonic-gate uint_t pgswapin; /* pages swapped in */ 141*7c478bd9Sstevel@tonic-gate uint_t swapout; /* swapouts */ 142*7c478bd9Sstevel@tonic-gate uint_t pgswapout; /* pages swapped out */ 143*7c478bd9Sstevel@tonic-gate uint_t zfod; /* pages zero filled on demand */ 144*7c478bd9Sstevel@tonic-gate uint_t dfree; /* pages freed by daemon or auto */ 145*7c478bd9Sstevel@tonic-gate uint_t scan; /* pages examined by pageout daemon */ 146*7c478bd9Sstevel@tonic-gate uint_t rev; /* revolutions of the page daemon hand */ 147*7c478bd9Sstevel@tonic-gate uint_t hat_fault; /* minor page faults via hat_fault() */ 148*7c478bd9Sstevel@tonic-gate uint_t as_fault; /* minor page faults via as_fault() */ 149*7c478bd9Sstevel@tonic-gate uint_t maj_fault; /* major page faults */ 150*7c478bd9Sstevel@tonic-gate uint_t cow_fault; /* copy-on-write faults */ 151*7c478bd9Sstevel@tonic-gate uint_t prot_fault; /* protection faults */ 152*7c478bd9Sstevel@tonic-gate uint_t softlock; /* faults due to software locking req */ 153*7c478bd9Sstevel@tonic-gate uint_t kernel_asflt; /* as_fault()s in kernel addr space */ 154*7c478bd9Sstevel@tonic-gate uint_t pgrrun; /* times pager scheduled */ 155*7c478bd9Sstevel@tonic-gate uint_t execpgin; /* executable pages paged in */ 156*7c478bd9Sstevel@tonic-gate uint_t execpgout; /* executable pages paged out */ 157*7c478bd9Sstevel@tonic-gate uint_t execfree; /* executable pages freed */ 158*7c478bd9Sstevel@tonic-gate uint_t anonpgin; /* anon pages paged in */ 159*7c478bd9Sstevel@tonic-gate uint_t anonpgout; /* anon pages paged out */ 160*7c478bd9Sstevel@tonic-gate uint_t anonfree; /* anon pages freed */ 161*7c478bd9Sstevel@tonic-gate uint_t fspgin; /* fs pages paged in */ 162*7c478bd9Sstevel@tonic-gate uint_t fspgout; /* fs pages paged out */ 163*7c478bd9Sstevel@tonic-gate uint_t fsfree; /* fs pages free */ 164*7c478bd9Sstevel@tonic-gate } cpu_vminfo_t; 165*7c478bd9Sstevel@tonic-gate 166*7c478bd9Sstevel@tonic-gate typedef struct vminfo { /* (update freq) update action */ 167*7c478bd9Sstevel@tonic-gate uint64_t freemem; /* (1 sec) += freemem in pages */ 168*7c478bd9Sstevel@tonic-gate uint64_t swap_resv; /* (1 sec) += reserved swap in pages */ 169*7c478bd9Sstevel@tonic-gate uint64_t swap_alloc; /* (1 sec) += allocated swap in pages */ 170*7c478bd9Sstevel@tonic-gate uint64_t swap_avail; /* (1 sec) += unreserved swap in pages */ 171*7c478bd9Sstevel@tonic-gate uint64_t swap_free; /* (1 sec) += unallocated swap in pages */ 172*7c478bd9Sstevel@tonic-gate } vminfo_t; 173*7c478bd9Sstevel@tonic-gate 174*7c478bd9Sstevel@tonic-gate typedef struct cpu_stat { 175*7c478bd9Sstevel@tonic-gate uint_t __cpu_stat_lock[2]; /* 32-bit kstat compat. */ 176*7c478bd9Sstevel@tonic-gate cpu_sysinfo_t cpu_sysinfo; 177*7c478bd9Sstevel@tonic-gate cpu_syswait_t cpu_syswait; 178*7c478bd9Sstevel@tonic-gate cpu_vminfo_t cpu_vminfo; 179*7c478bd9Sstevel@tonic-gate } cpu_stat_t; 180*7c478bd9Sstevel@tonic-gate 181*7c478bd9Sstevel@tonic-gate typedef struct cpu_sys_stats { 182*7c478bd9Sstevel@tonic-gate uint64_t cpu_ticks_idle; /* CPU utilization */ 183*7c478bd9Sstevel@tonic-gate uint64_t cpu_ticks_user; 184*7c478bd9Sstevel@tonic-gate uint64_t cpu_ticks_kernel; 185*7c478bd9Sstevel@tonic-gate uint64_t cpu_ticks_wait; 186*7c478bd9Sstevel@tonic-gate uint64_t wait_ticks_io; /* CPU wait time breakdown */ 187*7c478bd9Sstevel@tonic-gate uint64_t bread; /* physical block reads */ 188*7c478bd9Sstevel@tonic-gate uint64_t bwrite; /* physical block writes (sync+async) */ 189*7c478bd9Sstevel@tonic-gate uint64_t lread; /* logical block reads */ 190*7c478bd9Sstevel@tonic-gate uint64_t lwrite; /* logical block writes */ 191*7c478bd9Sstevel@tonic-gate uint64_t phread; /* raw I/O Reads */ 192*7c478bd9Sstevel@tonic-gate uint64_t phwrite; /* raw I/O writes */ 193*7c478bd9Sstevel@tonic-gate uint64_t pswitch; /* context switches */ 194*7c478bd9Sstevel@tonic-gate uint64_t trap; /* traps */ 195*7c478bd9Sstevel@tonic-gate uint64_t intr[PIL_MAX]; /* device interrupts per PIL */ 196*7c478bd9Sstevel@tonic-gate uint64_t syscall; /* system calls */ 197*7c478bd9Sstevel@tonic-gate uint64_t sysread; /* read() + readv() system calls */ 198*7c478bd9Sstevel@tonic-gate uint64_t syswrite; /* write() + writev() system calls */ 199*7c478bd9Sstevel@tonic-gate uint64_t sysfork; /* forks */ 200*7c478bd9Sstevel@tonic-gate uint64_t sysvfork; /* vforks */ 201*7c478bd9Sstevel@tonic-gate uint64_t sysexec; /* execs */ 202*7c478bd9Sstevel@tonic-gate uint64_t readch; /* bytes read by rdwr() */ 203*7c478bd9Sstevel@tonic-gate uint64_t writech; /* bytes written by rdwr() */ 204*7c478bd9Sstevel@tonic-gate uint64_t rcvint; /* XXX: unused (mostly) */ 205*7c478bd9Sstevel@tonic-gate uint64_t xmtint; /* XXX: unused */ 206*7c478bd9Sstevel@tonic-gate uint64_t mdmint; /* XXX: unused */ 207*7c478bd9Sstevel@tonic-gate uint64_t rawch; /* terminal input characters */ 208*7c478bd9Sstevel@tonic-gate uint64_t canch; /* chars handled in canonical mode */ 209*7c478bd9Sstevel@tonic-gate uint64_t outch; /* terminal output characters */ 210*7c478bd9Sstevel@tonic-gate uint64_t msg; /* msg count (msgrcv() + msgsnd()) */ 211*7c478bd9Sstevel@tonic-gate uint64_t sema; /* semaphore ops count (semop()) */ 212*7c478bd9Sstevel@tonic-gate uint64_t namei; /* pathname lookups */ 213*7c478bd9Sstevel@tonic-gate uint64_t ufsiget; /* ufs_iget() calls */ 214*7c478bd9Sstevel@tonic-gate uint64_t ufsdirblk; /* directory blocks read */ 215*7c478bd9Sstevel@tonic-gate uint64_t ufsipage; /* inodes taken with attached pages */ 216*7c478bd9Sstevel@tonic-gate uint64_t ufsinopage; /* inodes taken with no attached pgs */ 217*7c478bd9Sstevel@tonic-gate uint64_t procovf; /* failed forks */ 218*7c478bd9Sstevel@tonic-gate uint64_t intrblk; /* ints blkd/prempted/rel'd (swtch) */ 219*7c478bd9Sstevel@tonic-gate uint64_t intrunpin; /* intr thread unpins pinned thread */ 220*7c478bd9Sstevel@tonic-gate uint64_t idlethread; /* times idle thread scheduled */ 221*7c478bd9Sstevel@tonic-gate uint64_t inv_swtch; /* involuntary context switches */ 222*7c478bd9Sstevel@tonic-gate uint64_t nthreads; /* thread_create()s */ 223*7c478bd9Sstevel@tonic-gate uint64_t cpumigrate; /* cpu migrations by threads */ 224*7c478bd9Sstevel@tonic-gate uint64_t xcalls; /* xcalls to other cpus */ 225*7c478bd9Sstevel@tonic-gate uint64_t mutex_adenters; /* failed mutex enters (adaptive) */ 226*7c478bd9Sstevel@tonic-gate uint64_t rw_rdfails; /* rw reader failures */ 227*7c478bd9Sstevel@tonic-gate uint64_t rw_wrfails; /* rw writer failures */ 228*7c478bd9Sstevel@tonic-gate uint64_t modload; /* times loadable module loaded */ 229*7c478bd9Sstevel@tonic-gate uint64_t modunload; /* times loadable module unloaded */ 230*7c478bd9Sstevel@tonic-gate uint64_t bawrite; /* physical block writes (async) */ 231*7c478bd9Sstevel@tonic-gate uint64_t iowait; /* count of waiters for block I/O */ 232*7c478bd9Sstevel@tonic-gate } cpu_sys_stats_t; 233*7c478bd9Sstevel@tonic-gate 234*7c478bd9Sstevel@tonic-gate typedef struct cpu_vm_stats { 235*7c478bd9Sstevel@tonic-gate uint64_t pgrec; /* page reclaims (includes pageout) */ 236*7c478bd9Sstevel@tonic-gate uint64_t pgfrec; /* page reclaims from free list */ 237*7c478bd9Sstevel@tonic-gate uint64_t pgin; /* pageins */ 238*7c478bd9Sstevel@tonic-gate uint64_t pgpgin; /* pages paged in */ 239*7c478bd9Sstevel@tonic-gate uint64_t pgout; /* pageouts */ 240*7c478bd9Sstevel@tonic-gate uint64_t pgpgout; /* pages paged out */ 241*7c478bd9Sstevel@tonic-gate uint64_t swapin; /* swapins */ 242*7c478bd9Sstevel@tonic-gate uint64_t pgswapin; /* pages swapped in */ 243*7c478bd9Sstevel@tonic-gate uint64_t swapout; /* swapouts */ 244*7c478bd9Sstevel@tonic-gate uint64_t pgswapout; /* pages swapped out */ 245*7c478bd9Sstevel@tonic-gate uint64_t zfod; /* pages zero filled on demand */ 246*7c478bd9Sstevel@tonic-gate uint64_t dfree; /* pages freed by daemon or auto */ 247*7c478bd9Sstevel@tonic-gate uint64_t scan; /* pages examined by pageout daemon */ 248*7c478bd9Sstevel@tonic-gate uint64_t rev; /* revolutions of page daemon hand */ 249*7c478bd9Sstevel@tonic-gate uint64_t hat_fault; /* minor page faults via hat_fault() */ 250*7c478bd9Sstevel@tonic-gate uint64_t as_fault; /* minor page faults via as_fault() */ 251*7c478bd9Sstevel@tonic-gate uint64_t maj_fault; /* major page faults */ 252*7c478bd9Sstevel@tonic-gate uint64_t cow_fault; /* copy-on-write faults */ 253*7c478bd9Sstevel@tonic-gate uint64_t prot_fault; /* protection faults */ 254*7c478bd9Sstevel@tonic-gate uint64_t softlock; /* faults due to software locking req */ 255*7c478bd9Sstevel@tonic-gate uint64_t kernel_asflt; /* as_fault()s in kernel addr space */ 256*7c478bd9Sstevel@tonic-gate uint64_t pgrrun; /* times pager scheduled */ 257*7c478bd9Sstevel@tonic-gate uint64_t execpgin; /* executable pages paged in */ 258*7c478bd9Sstevel@tonic-gate uint64_t execpgout; /* executable pages paged out */ 259*7c478bd9Sstevel@tonic-gate uint64_t execfree; /* executable pages freed */ 260*7c478bd9Sstevel@tonic-gate uint64_t anonpgin; /* anon pages paged in */ 261*7c478bd9Sstevel@tonic-gate uint64_t anonpgout; /* anon pages paged out */ 262*7c478bd9Sstevel@tonic-gate uint64_t anonfree; /* anon pages freed */ 263*7c478bd9Sstevel@tonic-gate uint64_t fspgin; /* fs pages paged in */ 264*7c478bd9Sstevel@tonic-gate uint64_t fspgout; /* fs pages paged out */ 265*7c478bd9Sstevel@tonic-gate uint64_t fsfree; /* fs pages free */ 266*7c478bd9Sstevel@tonic-gate } cpu_vm_stats_t; 267*7c478bd9Sstevel@tonic-gate 268*7c478bd9Sstevel@tonic-gate typedef struct cpu_stats { 269*7c478bd9Sstevel@tonic-gate cpu_sys_stats_t sys; 270*7c478bd9Sstevel@tonic-gate cpu_vm_stats_t vm; 271*7c478bd9Sstevel@tonic-gate } cpu_stats_t; 272*7c478bd9Sstevel@tonic-gate 273*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus 274*7c478bd9Sstevel@tonic-gate } 275*7c478bd9Sstevel@tonic-gate #endif 276*7c478bd9Sstevel@tonic-gate 277*7c478bd9Sstevel@tonic-gate #endif /* _SYS_SYSINFO_H */ 278