24#ifndef CASA_HOSTINFOHPUX_H
25#define CASA_HOSTINFOHPUX_H
27# if defined(HOSTINFO_DO_IMPLEMENT)
72#define pagetok(size) ((size) << pageshift)
74class HostMachineInfo {
87 ptrdiff_t memory_total;
88 ptrdiff_t memory_used;
89 ptrdiff_t memory_free;
97HostMachineInfo::HostMachineInfo( ) :valid(1) {
99 struct pst_static info;
102 if (pstat_getstatic (&info,
sizeof (info), 1, 0) < 0) {
103 perror (
"pstat_getstatic");
112 for (pagesize = info.page_size; pagesize > 1; pagesize >>= 1)
114 pageshift -= LOG1024;
116 static struct pst_dynamic dynamic;
118 pstat_getdynamic (&dynamic,
sizeof (dynamic), 1, 0);
119 cpus = dynamic.psd_proc_cnt;
120 memory_total = pagetok (dynamic.psd_rm);
123void HostMachineInfo::update_info( ) {
125 static struct pst_dynamic dynamic;
127 pstat_getdynamic (&dynamic,
sizeof (dynamic), 1, 0);
128 memory_used = pagetok (dynamic.psd_arm);
129 memory_free = memory_total - memory_used;
130 swap_total = pagetok (dynamic.psd_vm);
131 swap_used = pagetok (dynamic.psd_avm);
132 swap_free = swap_total - swap_used;
this file contains all the compiler specific defines