1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
/*
* Top - a top users display for Berkeley Unix
*
* General (global) definitions
*
* Copyright (c) 2007-2019, Mark Wong
*/
#ifndef _PG_TOP_H_
#define _PG_TOP_H_
#include "machine.h"
#include "os.h"
/* Log base 2 of 1024 is 10 (2^10 == 1024) */
#define LOG1024 10
/* Special atoi routine returns either a non-negative number or one of: */
#define Infinity -1
#define Invalid -2
/* maximum number we can have */
#define Largest 0x7fffffff
struct ext_decl
{
int (*f_minibar) (char *, int);
int (*f_display) (char *, int);
};
/*
* Definitions for things that might vary between installations.
*/
/*
* "Table_size" defines the size of the hash tables used to map uid to
* username. Things will work best if the number is a prime number.
* We use a number that should be suitable for most installations.
*/
#ifndef Table_size
#define Table_size 8191
#endif
/*
* "Nominal_TOPN" is used as the default TOPN when Default_TOPN is Infinity
* and the output is a dumb terminal. If we didn't do this, then
* installations who use a default TOPN of Infinity will get every
* process in the system when running top on a dumb terminal (or redirected
* to a file). Note that Nominal_TOPN is a default: it can still be
* overridden on the command line, even with the value "infinity".
*/
#ifndef Nominal_TOPN
#define Nominal_TOPN 40
#endif
#ifndef Default_DELAY
#define Default_DELAY 5
#endif
/*
* If the local system's getpwnam interface uses random access to retrieve
* a record (i.e.: 4.3 systems, Sun "yellow pages"), then defining
* RANDOM_PW will take advantage of that fact. If RANDOM_PW is defined,
* then getpwnam is used and the result is cached. If not, then getpwent
* is used to read and cache the password entries sequentially until the
* desired one is found.
*
* We initially set RANDOM_PW to something which is controllable by the
* Configure script. Then if its value is 0, we undef it.
*/
#define RANDOM_PW 1
#if RANDOM_PW == 0
#undef RANDOM_PW
#endif
enum pgparams
{
PG_HOST,
PG_PORT,
PG_USER,
PG_PASSWORD,
PG_DBNAME
};
struct pg_top_context
{
#ifdef ENABLE_COLOR
int color_on;
#endif
int delay;
int displays;
void (*d_header) (char *);
char do_unames;
char dostates;
char *header_options[2][MODE_TYPES];
char *header_text;
char interactive;
int mode;
int mode_remote; /* Mode for monitoring a remote database
* system. */
int order_index;
char *order_name;
struct db_info db_info;
struct io_info io_info;
struct process_select ps;
char show_tags;
struct statics statics;
struct system_info system_info;
struct timeval timeout;
int topn;
struct pg_conninfo_ctx conninfo;
};
void quit(int);
void reset_display(struct pg_top_context *);
#endif /* _PG_TOP_H_ */
|