procps/proc/vmstat.h
Jim Warner c4d097c709 library: removed all the 'PROCPS_' enumerator prefixes
Many of our item enumerator identifiers are very long,
especially in that <VMSTAT> module. Additionally, they
all contain the exact same universal 'PROCPS_' prefix.

The origins for this are likely found in the desire to
avoid name clashes with other potential include files.
But with procps-ng newlib, we've probably gone way too
far. Did 'PROCPS_PIDS_TICS_SYSTEM' actually offer more
protection against clash than 'PIDS_TICS_SYSTEM' does?

I don't think so. Besides, no matter how big that name
becomes, one can never guarantee they'll never be some
clash. And, conversely, extremely short names will not
always create conflict. Of course, in either case when
some clash occurs, one can always #undef that problem.

Thus, this commit will eliminate that 'PROCPS_' prefix
making all of those enum identifiers a little shorter.
And, we'll still be well above some ridiculously short
(criminally short) names found in some common headers:

- - - - - - - - - - <term.h>
- 'tab', 'TTY', etc
- - - - - - - - - - - - - - - - <search.h>
- 'ENTER', ENTRY', 'FIND', etc

------------------------------------------------------
Finally, with this as a last of the wholesale changes,
we will have established the naming conventions below:

. only functions will begin with that 'procps_' prefix
. exposed structures begin with the module/header name
. item enumerators begin like structs, but capitalized
. other enumerators work exactly like item enumerators
. macros and constants begin just like the enumerators
------------------------------------------------------

Signed-off-by: Jim Warner <james.warner@comcast.net>
2016-07-26 20:49:00 +10:00

312 lines
16 KiB
C

/*
* libprocps - Library to read proc filesystem
*
* Copyright (C) 1995 Martin Schulze <joey@infodrom.north.de>
* Copyright (C) 1996 Charles Blake <cblake@bbn.com>
* Copyright (C) 2003 Albert Cahalan
* Copyright (C) 2015 Craig Small <csmall@enc.com.au>
* Copyright (C) 2016 Jim Warner <james.warner@comcast.net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef PROC_VMSTAT_H
#define PROC_VMSTAT_H
#include <sys/cdefs.h>
__BEGIN_DECLS
enum vmstat_item {
VMSTAT_noop, // ( never altered )
VMSTAT_extra, // ( reset to zero )
VMSTAT_ALLOCSTALL, // ul_int
VMSTAT_BALLOON_DEFLATE, // ul_int
VMSTAT_BALLOON_INFLATE, // ul_int
VMSTAT_BALLOON_MIGRATE, // ul_int
VMSTAT_COMPACT_FAIL, // ul_int
VMSTAT_COMPACT_FREE_SCANNED, // ul_int
VMSTAT_COMPACT_ISOLATED, // ul_int
VMSTAT_COMPACT_MIGRATE_SCANNED, // ul_int
VMSTAT_COMPACT_STALL, // ul_int
VMSTAT_COMPACT_SUCCESS, // ul_int
VMSTAT_DROP_PAGECACHE, // ul_int
VMSTAT_DROP_SLAB, // ul_int
VMSTAT_HTLB_BUDDY_ALLOC_FAIL, // ul_int
VMSTAT_HTLB_BUDDY_ALLOC_SUCCESS, // ul_int
VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY, // ul_int
VMSTAT_KSWAPD_INODESTEAL, // ul_int
VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY, // ul_int
VMSTAT_NR_ACTIVE_ANON, // ul_int
VMSTAT_NR_ACTIVE_FILE, // ul_int
VMSTAT_NR_ALLOC_BATCH, // ul_int
VMSTAT_NR_ANON_PAGES, // ul_int
VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES, // ul_int
VMSTAT_NR_BOUNCE, // ul_int
VMSTAT_NR_DIRTIED, // ul_int
VMSTAT_NR_DIRTY, // ul_int
VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD, // ul_int
VMSTAT_NR_DIRTY_THRESHOLD, // ul_int
VMSTAT_NR_FILE_PAGES, // ul_int
VMSTAT_NR_FREE_CMA, // ul_int
VMSTAT_NR_FREE_PAGES, // ul_int
VMSTAT_NR_INACTIVE_ANON, // ul_int
VMSTAT_NR_INACTIVE_FILE, // ul_int
VMSTAT_NR_ISOLATED_ANON, // ul_int
VMSTAT_NR_ISOLATED_FILE, // ul_int
VMSTAT_NR_KERNEL_STACK, // ul_int
VMSTAT_NR_MAPPED, // ul_int
VMSTAT_NR_MLOCK, // ul_int
VMSTAT_NR_PAGES_SCANNED, // ul_int
VMSTAT_NR_PAGE_TABLE_PAGES, // ul_int
VMSTAT_NR_SHMEM, // ul_int
VMSTAT_NR_SLAB_RECLAIMABLE, // ul_int
VMSTAT_NR_SLAB_UNRECLAIMABLE, // ul_int
VMSTAT_NR_UNEVICTABLE, // ul_int
VMSTAT_NR_UNSTABLE, // ul_int
VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM, // ul_int
VMSTAT_NR_VMSCAN_WRITE, // ul_int
VMSTAT_NR_WRITEBACK, // ul_int
VMSTAT_NR_WRITEBACK_TEMP, // ul_int
VMSTAT_NR_WRITTEN, // ul_int
VMSTAT_NUMA_FOREIGN, // ul_int
VMSTAT_NUMA_HINT_FAULTS, // ul_int
VMSTAT_NUMA_HINT_FAULTS_LOCAL, // ul_int
VMSTAT_NUMA_HIT, // ul_int
VMSTAT_NUMA_HUGE_PTE_UPDATES, // ul_int
VMSTAT_NUMA_INTERLEAVE, // ul_int
VMSTAT_NUMA_LOCAL, // ul_int
VMSTAT_NUMA_MISS, // ul_int
VMSTAT_NUMA_OTHER, // ul_int
VMSTAT_NUMA_PAGES_MIGRATED, // ul_int
VMSTAT_NUMA_PTE_UPDATES, // ul_int
VMSTAT_PAGEOUTRUN, // ul_int
VMSTAT_PGACTIVATE, // ul_int
VMSTAT_PGALLOC_DMA, // ul_int
VMSTAT_PGALLOC_DMA32, // ul_int
VMSTAT_PGALLOC_MOVABLE, // ul_int
VMSTAT_PGALLOC_NORMAL, // ul_int
VMSTAT_PGDEACTIVATE, // ul_int
VMSTAT_PGFAULT, // ul_int
VMSTAT_PGFREE, // ul_int
VMSTAT_PGINODESTEAL, // ul_int
VMSTAT_PGMAJFAULT, // ul_int
VMSTAT_PGMIGRATE_FAIL, // ul_int
VMSTAT_PGMIGRATE_SUCCESS, // ul_int
VMSTAT_PGPGIN, // ul_int
VMSTAT_PGPGOUT, // ul_int
VMSTAT_PGREFILL_DMA, // ul_int
VMSTAT_PGREFILL_DMA32, // ul_int
VMSTAT_PGREFILL_MOVABLE, // ul_int
VMSTAT_PGREFILL_NORMAL, // ul_int
VMSTAT_PGROTATED, // ul_int
VMSTAT_PGSCAN_DIRECT_DMA, // ul_int
VMSTAT_PGSCAN_DIRECT_DMA32, // ul_int
VMSTAT_PGSCAN_DIRECT_MOVABLE, // ul_int
VMSTAT_PGSCAN_DIRECT_NORMAL, // ul_int
VMSTAT_PGSCAN_DIRECT_THROTTLE, // ul_int
VMSTAT_PGSCAN_KSWAPD_DMA, // ul_int
VMSTAT_PGSCAN_KSWAPD_DMA32, // ul_int
VMSTAT_PGSCAN_KSWAPD_MOVEABLE, // ul_int
VMSTAT_PGSCAN_KSWAPD_NORMAL, // ul_int
VMSTAT_PGSTEAL_DIRECT_DMA, // ul_int
VMSTAT_PGSTEAL_DIRECT_DMA32, // ul_int
VMSTAT_PGSTEAL_DIRECT_MOVABLE, // ul_int
VMSTAT_PGSTEAL_DIRECT_NORMAL, // ul_int
VMSTAT_PGSTEAL_KSWAPD_DMA, // ul_int
VMSTAT_PGSTEAL_KSWAPD_DMA32, // ul_int
VMSTAT_PGSTEAL_KSWAPD_MOVABLE, // ul_int
VMSTAT_PGSTEAL_KSWAPD_NORMAL, // ul_int
VMSTAT_PSWPIN, // ul_int
VMSTAT_PSWPOUT, // ul_int
VMSTAT_SLABS_SCANNED, // ul_int
VMSTAT_THP_COLLAPSE_ALLOC, // ul_int
VMSTAT_THP_COLLAPSE_ALLOC_FAILED, // ul_int
VMSTAT_THP_FAULT_ALLOC, // ul_int
VMSTAT_THP_FAULT_FALLBACK, // ul_int
VMSTAT_THP_SPLIT, // ul_int
VMSTAT_THP_ZERO_PAGE_ALLOC, // ul_int
VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED, // ul_int
VMSTAT_UNEVICTABLE_PGS_CLEARED, // ul_int
VMSTAT_UNEVICTABLE_PGS_CULLED, // ul_int
VMSTAT_UNEVICTABLE_PGS_MLOCKED, // ul_int
VMSTAT_UNEVICTABLE_PGS_MUNLOCKED, // ul_int
VMSTAT_UNEVICTABLE_PGS_RESCUED, // ul_int
VMSTAT_UNEVICTABLE_PGS_SCANNED, // ul_int
VMSTAT_UNEVICTABLE_PGS_STRANDED, // ul_int
VMSTAT_WORKINGSET_ACTIVATE, // ul_int
VMSTAT_WORKINGSET_NODERECLAIM, // ul_int
VMSTAT_WORKINGSET_REFAULT, // ul_int
VMSTAT_ZONE_RECLAIM_FAILED, // ul_int
VMSTAT_DELTA_ALLOCSTALL, // sl_int
VMSTAT_DELTA_BALLOON_DEFLATE, // sl_int
VMSTAT_DELTA_BALLOON_INFLATE, // sl_int
VMSTAT_DELTA_BALLOON_MIGRATE, // sl_int
VMSTAT_DELTA_COMPACT_FAIL, // sl_int
VMSTAT_DELTA_COMPACT_FREE_SCANNED, // sl_int
VMSTAT_DELTA_COMPACT_ISOLATED, // sl_int
VMSTAT_DELTA_COMPACT_MIGRATE_SCANNED, // sl_int
VMSTAT_DELTA_COMPACT_STALL, // sl_int
VMSTAT_DELTA_COMPACT_SUCCESS, // sl_int
VMSTAT_DELTA_DROP_PAGECACHE, // sl_int
VMSTAT_DELTA_DROP_SLAB, // sl_int
VMSTAT_DELTA_HTLB_BUDDY_ALLOC_FAIL, // sl_int
VMSTAT_DELTA_HTLB_BUDDY_ALLOC_SUCCESS, // sl_int
VMSTAT_DELTA_KSWAPD_HIGH_WMARK_HIT_QUICKLY, // sl_int
VMSTAT_DELTA_KSWAPD_INODESTEAL, // sl_int
VMSTAT_DELTA_KSWAPD_LOW_WMARK_HIT_QUICKLY, // sl_int
VMSTAT_DELTA_NR_ACTIVE_ANON, // sl_int
VMSTAT_DELTA_NR_ACTIVE_FILE, // sl_int
VMSTAT_DELTA_NR_ALLOC_BATCH, // sl_int
VMSTAT_DELTA_NR_ANON_PAGES, // sl_int
VMSTAT_DELTA_NR_ANON_TRANSPARENT_HUGEPAGES, // sl_int
VMSTAT_DELTA_NR_BOUNCE, // sl_int
VMSTAT_DELTA_NR_DIRTIED, // sl_int
VMSTAT_DELTA_NR_DIRTY, // sl_int
VMSTAT_DELTA_NR_DIRTY_BACKGROUND_THRESHOLD, // sl_int
VMSTAT_DELTA_NR_DIRTY_THRESHOLD, // sl_int
VMSTAT_DELTA_NR_FILE_PAGES, // sl_int
VMSTAT_DELTA_NR_FREE_CMA, // sl_int
VMSTAT_DELTA_NR_FREE_PAGES, // sl_int
VMSTAT_DELTA_NR_INACTIVE_ANON, // sl_int
VMSTAT_DELTA_NR_INACTIVE_FILE, // sl_int
VMSTAT_DELTA_NR_ISOLATED_ANON, // sl_int
VMSTAT_DELTA_NR_ISOLATED_FILE, // sl_int
VMSTAT_DELTA_NR_KERNEL_STACK, // sl_int
VMSTAT_DELTA_NR_MAPPED, // sl_int
VMSTAT_DELTA_NR_MLOCK, // sl_int
VMSTAT_DELTA_NR_PAGES_SCANNED, // sl_int
VMSTAT_DELTA_NR_PAGE_TABLE_PAGES, // sl_int
VMSTAT_DELTA_NR_SHMEM, // sl_int
VMSTAT_DELTA_NR_SLAB_RECLAIMABLE, // sl_int
VMSTAT_DELTA_NR_SLAB_UNRECLAIMABLE, // sl_int
VMSTAT_DELTA_NR_UNEVICTABLE, // sl_int
VMSTAT_DELTA_NR_UNSTABLE, // sl_int
VMSTAT_DELTA_NR_VMSCAN_IMMEDIATE_RECLAIM, // sl_int
VMSTAT_DELTA_NR_VMSCAN_WRITE, // sl_int
VMSTAT_DELTA_NR_WRITEBACK, // sl_int
VMSTAT_DELTA_NR_WRITEBACK_TEMP, // sl_int
VMSTAT_DELTA_NR_WRITTEN, // sl_int
VMSTAT_DELTA_NUMA_FOREIGN, // sl_int
VMSTAT_DELTA_NUMA_HINT_FAULTS, // sl_int
VMSTAT_DELTA_NUMA_HINT_FAULTS_LOCAL, // sl_int
VMSTAT_DELTA_NUMA_HIT, // sl_int
VMSTAT_DELTA_NUMA_HUGE_PTE_UPDATES, // sl_int
VMSTAT_DELTA_NUMA_INTERLEAVE, // sl_int
VMSTAT_DELTA_NUMA_LOCAL, // sl_int
VMSTAT_DELTA_NUMA_MISS, // sl_int
VMSTAT_DELTA_NUMA_OTHER, // sl_int
VMSTAT_DELTA_NUMA_PAGES_MIGRATED, // sl_int
VMSTAT_DELTA_NUMA_PTE_UPDATES, // sl_int
VMSTAT_DELTA_PAGEOUTRUN, // sl_int
VMSTAT_DELTA_PGACTIVATE, // sl_int
VMSTAT_DELTA_PGALLOC_DMA, // sl_int
VMSTAT_DELTA_PGALLOC_DMA32, // sl_int
VMSTAT_DELTA_PGALLOC_MOVABLE, // sl_int
VMSTAT_DELTA_PGALLOC_NORMAL, // sl_int
VMSTAT_DELTA_PGDEACTIVATE, // sl_int
VMSTAT_DELTA_PGFAULT, // sl_int
VMSTAT_DELTA_PGFREE, // sl_int
VMSTAT_DELTA_PGINODESTEAL, // sl_int
VMSTAT_DELTA_PGMAJFAULT, // sl_int
VMSTAT_DELTA_PGMIGRATE_FAIL, // sl_int
VMSTAT_DELTA_PGMIGRATE_SUCCESS, // sl_int
VMSTAT_DELTA_PGPGIN, // sl_int
VMSTAT_DELTA_PGPGOUT, // sl_int
VMSTAT_DELTA_PGREFILL_DMA, // sl_int
VMSTAT_DELTA_PGREFILL_DMA32, // sl_int
VMSTAT_DELTA_PGREFILL_MOVABLE, // sl_int
VMSTAT_DELTA_PGREFILL_NORMAL, // sl_int
VMSTAT_DELTA_PGROTATED, // sl_int
VMSTAT_DELTA_PGSCAN_DIRECT_DMA, // sl_int
VMSTAT_DELTA_PGSCAN_DIRECT_DMA32, // sl_int
VMSTAT_DELTA_PGSCAN_DIRECT_MOVABLE, // sl_int
VMSTAT_DELTA_PGSCAN_DIRECT_NORMAL, // sl_int
VMSTAT_DELTA_PGSCAN_DIRECT_THROTTLE, // sl_int
VMSTAT_DELTA_PGSCAN_KSWAPD_DMA, // sl_int
VMSTAT_DELTA_PGSCAN_KSWAPD_DMA32, // sl_int
VMSTAT_DELTA_PGSCAN_KSWAPD_MOVEABLE, // sl_int
VMSTAT_DELTA_PGSCAN_KSWAPD_NORMAL, // sl_int
VMSTAT_DELTA_PGSTEAL_DIRECT_DMA, // sl_int
VMSTAT_DELTA_PGSTEAL_DIRECT_DMA32, // sl_int
VMSTAT_DELTA_PGSTEAL_DIRECT_MOVABLE, // sl_int
VMSTAT_DELTA_PGSTEAL_DIRECT_NORMAL, // sl_int
VMSTAT_DELTA_PGSTEAL_KSWAPD_DMA, // sl_int
VMSTAT_DELTA_PGSTEAL_KSWAPD_DMA32, // sl_int
VMSTAT_DELTA_PGSTEAL_KSWAPD_MOVABLE, // sl_int
VMSTAT_DELTA_PGSTEAL_KSWAPD_NORMAL, // sl_int
VMSTAT_DELTA_PSWPIN, // sl_int
VMSTAT_DELTA_PSWPOUT, // sl_int
VMSTAT_DELTA_SLABS_SCANNED, // sl_int
VMSTAT_DELTA_THP_COLLAPSE_ALLOC, // sl_int
VMSTAT_DELTA_THP_COLLAPSE_ALLOC_FAILED, // sl_int
VMSTAT_DELTA_THP_FAULT_ALLOC, // sl_int
VMSTAT_DELTA_THP_FAULT_FALLBACK, // sl_int
VMSTAT_DELTA_THP_SPLIT, // sl_int
VMSTAT_DELTA_THP_ZERO_PAGE_ALLOC, // sl_int
VMSTAT_DELTA_THP_ZERO_PAGE_ALLOC_FAILED, // sl_int
VMSTAT_DELTA_UNEVICTABLE_PGS_CLEARED, // sl_int
VMSTAT_DELTA_UNEVICTABLE_PGS_CULLED, // sl_int
VMSTAT_DELTA_UNEVICTABLE_PGS_MLOCKED, // sl_int
VMSTAT_DELTA_UNEVICTABLE_PGS_MUNLOCKED, // sl_int
VMSTAT_DELTA_UNEVICTABLE_PGS_RESCUED, // sl_int
VMSTAT_DELTA_UNEVICTABLE_PGS_SCANNED, // sl_int
VMSTAT_DELTA_UNEVICTABLE_PGS_STRANDED, // sl_int
VMSTAT_DELTA_WORKINGSET_ACTIVATE, // sl_int
VMSTAT_DELTA_WORKINGSET_NODERECLAIM, // sl_int
VMSTAT_DELTA_WORKINGSET_REFAULT, // sl_int
VMSTAT_DELTA_ZONE_RECLAIM_FAILED // sl_int
};
struct vmstat_result {
enum vmstat_item item;
union {
signed long sl_int;
unsigned long ul_int;
} result;
};
struct vmstat_stack {
struct vmstat_result *head;
};
#define VMSTAT_GET( info, actual_enum, type ) \
procps_vmstat_get( info, actual_enum ) -> result . type
#define VMSTAT_VAL( relative_enum, type, stack ) \
stack -> head [ relative_enum ] . result . type
struct vmstat_info;
int procps_vmstat_new (struct vmstat_info **info);
int procps_vmstat_ref (struct vmstat_info *info);
int procps_vmstat_unref (struct vmstat_info **info);
struct vmstat_result *procps_vmstat_get (
struct vmstat_info *info,
enum vmstat_item item);
struct vmstat_stack *procps_vmstat_select (
struct vmstat_info *info,
enum vmstat_item *items,
int numitems);
__END_DECLS
#endif