PSTAT Interfaces
29
struct psdrvnam psd_drv_name; /* driver name */
_T_LONG_T psd_token; /* driver's ID */
_T_LONG_T psd_instance; /* the instance of the device */
struct __pshwpath psd_hw_path; /* hardware path */
struct __psttime psd_dkwait; /* cumulative time from enqueue to start */
struct __psttime psd_dkresp; /* cumulative time from enqueue to done */
_T_LONG_T psd_dkcyl_index; /* cylinder number index, used by sadp */
_T_LONG_T psd_dkcyl[PS_DK_CYL_SIZE]; /* cylinder number array,
* used by sadp */
_T_LONG_T psd_dkqlen_curr;/* current queue length */
_T_LONG_T psd_dkqlen; /* cumulative queue length */
_T_LONG_T psd_dkq_merged; /* cumulative # of transfer would have been
* if some of the requests weren't merged */
_T_LONG_T psd_dkenq_cnt; /* number of calls to enqueue */
_T_LONG_T psd_status; /* 0 = device is closed, 1 = device is open */
PS_DK_CYL_SIZE à 80
pst_dynamic
This structure contains dynamic system variables, ones which may change frequently during
normal operation of the kernel. Heder file: <sys/pstat/global_pstat_body.h>
_T_LONG_T psd_proc_cnt; /* MP: number of active processors */
_T_LONG_T psd_max_proc_cnt; /* MP: max active processors */
_T_LONG_T psd_last_pid; /* last run process ID */
_T_LONG_T psd_rq; /* run queue length */
_T_LONG_T psd_dw; /* jobs in disk wait */
_T_LONG_T psd_pw; /* jobs in page wait */
_T_LONG_T psd_sl; /* jobs sleeping in core */
_T_LONG_T psd_sw; /* swapped out runnable jobs */
_T_LONG_T psd_vm; /* total virtual memory */
_T_LONG_T psd_avm; /* active virtual memory */
_T_LONG_T psd_rm; /* total real memory */
_T_LONG_T psd_arm; /* active real memory */
_T_LONG_T psd_vmtxt; /* virtual memory text */
_T_LONG_T psd_avmtxt; /* active virtual memory text */
_T_LONG_T psd_rmtxt; /* real memory text */
_T_LONG_T psd_armtxt; /* active real memory text */
_T_LONG_T psd_free; /* free memory pages */
double psd_avg_1_min; /* global run queue lengths */
double psd_avg_5_min;
double psd_avg_15_min;
_T_LONG_T psd_cpu_time[PST_MAX_CPUSTATES]; /* OBSOLETE do not use */
double psd_mp_avg_1_min[PST_MAX_PROCS]; /* OBSOLETE do not use */
double psd_mp_avg_5_min[PST_MAX_PROCS]; /* OBSOLETE do not use */
double psd_mp_avg_15_min[PST_MAX_PROCS];/* OBSOLETE do not use */
_T_LONG_T psd_mp_cpu_time[PST_MAX_PROCS][PST_MAX_CPUSTATES]; /* OBSOLETE */
_T_LONG_T psd_openlv; /* # of open Logical Volumes */
_T_LONG_T psd_openvg; /* # of open LV Volume groups */
_T_LONG_T psd_allocpbuf; /* # of allocated LV pvol buffers */
_T_LONG_T psd_usedpbuf; /* # of LV pvol buffers in used */
_T_LONG_T psd_maxpbuf; /* max # of LV pvol buffers avail. */
_T_LONG_T psd_activeprocs; /* # of active proc table entries */
_T_LONG_T psd_activeinodes;/* # of active inode table entries */
_T_LONG_T psd_activefiles; /* # of active file table entries */