=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/systat/pool.c,v retrieving revision 1.7 retrieving revision 1.8 diff -c -r1.7 -r1.8 *** src/usr.bin/systat/pool.c 2014/07/02 00:12:34 1.7 --- src/usr.bin/systat/pool.c 2014/08/14 08:10:30 1.8 *************** *** 1,4 **** ! /* $OpenBSD: pool.c,v 1.7 2014/07/02 00:12:34 dlg Exp $ */ /* * Copyright (c) 2008 Can Erkin Acar * --- 1,4 ---- ! /* $OpenBSD: pool.c,v 1.8 2014/08/14 08:10:30 mpi Exp $ */ /* * Copyright (c) 2008 Can Erkin Acar * *************** *** 30,35 **** --- 30,36 ---- void sort_pool(void); int select_pool(void); void showpool(int k); + int pool_keyboard_callback(int); /* qsort callbacks */ int sort_name_callback(const void *s1, const void *s2); *************** *** 43,48 **** --- 44,50 ---- }; + int print_all = 0; int num_pools = 0; struct pool_info *pools = NULL; *************** *** 94,100 **** /* Define view managers */ struct view_manager pool_mgr = { "Pool", select_pool, read_pool, sort_pool, print_header, ! print_pool, keyboard_callback, pool_order_list, pool_order_list }; field_view views_pool[] = { --- 96,102 ---- /* Define view managers */ struct view_manager pool_mgr = { "Pool", select_pool, read_pool, sort_pool, print_header, ! print_pool, pool_keyboard_callback, pool_order_list, pool_order_list }; field_view views_pool[] = { *************** *** 257,270 **** void print_pool(void) { int i, n, count = 0; if (pools == NULL) return; for (n = i = 0; i < num_pools; i++) { ! if (pools[i].name[0] == 0) continue; if (n++ < dispstart) continue; showpool(i); --- 259,279 ---- void print_pool(void) { + struct pool_info *p; int i, n, count = 0; if (pools == NULL) return; for (n = i = 0; i < num_pools; i++) { ! p = &pools[i]; ! if (p->name[0] == 0) continue; + + if (!print_all && + (p->pool.pr_nget == 0 && p->pool.pr_npagealloc == 0)) + continue; + if (n++ < dispstart) continue; showpool(i); *************** *** 316,319 **** --- 325,342 ---- print_fld_size(FLD_POOL_IDLE, p->pool.pr_nidle); end_line(); + } + + int + pool_keyboard_callback(int ch) + { + switch (ch) { + case 'A': + print_all ^= 1; + gotsig_alarm = 1; + default: + return keyboard_callback(ch); + }; + + return (1); }