/usr/include/casacore/casa/OS/HostInfoIrix.h is in casacore-dev 2.2.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | //# HostInfo_irix.h: SGI Irix specific memory, swap, and CPU code.
//# $Id$
/*
** This is a greatly MODIFIED version of a "top" machine dependent file.
** The only resemblance it bears to the original is with respect to the
** mechanics of finding various system details. The copyright details
** follow.
**
** --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
**
** Top users/processes display for Unix
** Version 3
**
** This program may be freely redistributed,
** but this entire comment MUST remain intact.
**
** Copyright (c) 1984, 1989, William LeFebvre, Rice University
** Copyright (c) 1989 - 1994, William LeFebvre, Northwestern University
** Copyright (c) 1994, 1995, William LeFebvre, Argonne National Laboratory
** Copyright (c) 1996, William LeFebvre, Group sys Consulting
** Copyright (c) 2002, Associated Universities Inc.
*/
#ifndef CASA_HOSTINFOIRIX_H
#define CASA_HOSTINFOIRIX_H
# if defined(HOSTINFO_DO_IMPLEMENT)
/*
* AUTHOR: Darrell Schiebel <drs@nrao.edu>
*
* ORIGINAL AUTHORS: Sandeep Cariapa <cariapa@sgi.com>
* Larry McVoy <lm@sgi.com>
* John Schimmel <jes@sgi.com>
* Ariel Faigon <ariel@sgi.com>
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/swap.h>
#include <sys/sysmp.h>
#include <sys/sysinfo.h>
namespace casacore { //# NAMESPACE CASACORE - BEGIN
// <summary>
// HostInfo for IRIX machines.
// </summary>
// <use visibility=local>
// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="" demos="">
// </reviewed>
// <prerequisite>
// <li> <linkto class=HostInfo>HostInfo</linkto>
// </prerequisite>
// <synopsis>
// This file provides the IRIX specific functions for HostInfo.
// It is selectively included by HostInfo.cc.
// </synopsis>
//
// <group name="HostInfo">
#define pagetok(pages) ((((uint64_t) pages) * pagesize) >> 10)
class HostMachineInfo {
friend class HostInfo;
HostMachineInfo( );
void update_info( );
int valid;
int cpus;
ptrdiff_t swap_total;
ptrdiff_t swap_used;
ptrdiff_t swap_free;
ptrdiff_t memory_total;
ptrdiff_t memory_used;
ptrdiff_t memory_free;
ptrdiff_t pagesize;
};
// </group>
HostMachineInfo::HostMachineInfo( ) : valid(1) {
pagesize = getpagesize();
if ((cpus = sysmp(MP_NPROCS)) == -1) {
perror("sysmp(MP_NPROCS)");
valid = 0;
return;
}
struct rminfo realmem;
if (sysmp(MP_SAGET, MPSA_RMINFO, &realmem, sizeof(realmem)) == -1) {
perror("sysmp(MP_SAGET,MPSA_RMINFO, ...)");
valid = 0;
return;
}
memory_total = pagetok(realmem.physmem);
}
void HostMachineInfo::update_info( ) {
int i;
struct rminfo realmem;
struct sysinfo sysinfo;
off_t fswap; /* current free swap in blocks */
off_t tswap; /* total swap in blocks */
swapctl(SC_GETFREESWAP, &fswap);
swapctl(SC_GETSWAPTOT, &tswap);
if (sysmp(MP_SAGET, MPSA_RMINFO, &realmem, sizeof(realmem)) == -1) {
perror("sysmp(MP_SAGET,MPSA_RMINFO, ...)");
valid = 0;
return;
}
memory_free = pagetok(realmem.freemem);
memory_used = memory_total - memory_free;
swap_total = tswap / 2;
swap_free = fswap / 2;
swap_used = swap_total - swap_free;
}
# endif
} //# NAMESPACE CASACORE - END
#endif
|