24#ifndef CASA_HOSTINFOHPUX_H
25#define CASA_HOSTINFOHPUX_H
27#if defined(HOSTINFO_DO_IMPLEMENT)
72#define pagetok(size) ((size) << pageshift)
74class HostMachineInfo {
75 friend class HostInfo;
87 ptrdiff_t memory_total;
88 ptrdiff_t memory_used;
89 ptrdiff_t memory_free;
96HostMachineInfo::HostMachineInfo() : valid(1) {
97 struct pst_static info;
100 if (pstat_getstatic(&info,
sizeof(info), 1, 0) < 0) {
101 perror(
"pstat_getstatic");
110 for (pagesize = info.page_size; pagesize > 1; pagesize >>= 1) pageshift += 1;
111 pageshift -= LOG1024;
113 static struct pst_dynamic dynamic;
115 pstat_getdynamic(&dynamic,
sizeof(dynamic), 1, 0);
116 cpus = dynamic.psd_proc_cnt;
117 memory_total = pagetok(dynamic.psd_rm);
120void HostMachineInfo::update_info() {
121 static struct pst_dynamic dynamic;
123 pstat_getdynamic(&dynamic,
sizeof(dynamic), 1, 0);
124 memory_used = pagetok(dynamic.psd_arm);
125 memory_free = memory_total - memory_used;
126 swap_total = pagetok(dynamic.psd_vm);
127 swap_used = pagetok(dynamic.psd_avm);
128 swap_free = swap_total - swap_used;
For temporary backward namespace compatibility, use casa as alias for casacore.