Merge branch 'sigar-1.6' into cleanup
Conflicts: bindings/SigarWrapper.pm src/os/netware/Makefile.nw src/os/netware/netware_sigar.c src/os/osf1/osf1_sigar.c src/os/stub/stub_sigar.c
This commit is contained in:
commit
4a0dc0cef3
|
@ -2956,39 +2956,5 @@ EOF
|
|||
$self->SUPER::finish;
|
||||
}
|
||||
|
||||
#XXX not currently supporting netware
|
||||
package SigarWrapper::Netware;
|
||||
|
||||
use vars qw(@ISA);
|
||||
@ISA = qw(SigarWrapper);
|
||||
|
||||
sub start {
|
||||
my $self = shift;
|
||||
$self->SUPER::start;
|
||||
$self->{dfh} = $self->create('javasigar_generated.def');
|
||||
}
|
||||
|
||||
sub finish {
|
||||
my $self = shift;
|
||||
my $fh = $self->{dfh};
|
||||
for my $func (@{ $self->{nativefunc} }) {
|
||||
#$fh->println($nativefunc) if $impl;
|
||||
}
|
||||
my $jsigar = "../../src/jni/javasigar.c";
|
||||
my(%alias) = (x => 'Sigar');
|
||||
open JSIGAR, $jsigar or die "open $jsigar: $!";
|
||||
while (<JSIGAR>) {
|
||||
next unless /SIGAR_JNI([a-z]?)\(([A-Za-z_]+)\)/;
|
||||
my $class = "";
|
||||
if ($1) {
|
||||
$class = $alias{$1} . "_";
|
||||
}
|
||||
$fh->println("Java_org_hyperic_sigar_$class$2");
|
||||
}
|
||||
close JSIGAR;
|
||||
|
||||
$self->SUPER::finish;
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
|
|
@ -3,11 +3,10 @@
|
|||
<classpathentry kind="src" path="build/src"/>
|
||||
<classpathentry kind="src" path="hyperic_jni/src"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="lib" path="lib/junit.jar"/>
|
||||
<classpathentry kind="var" path="ANT_HOME/lib/ant.jar"/>
|
||||
<classpathentry kind="var" path="ANT_HOME/lib/junit.jar"/>
|
||||
<classpathentry kind="lib" path="hyperic_jni/lib/cpptasks.jar"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="lib" path="lib/log4j.jar"/>
|
||||
<classpathentry kind="lib" path="lib/mx4j-jmx.jar"/>
|
||||
<classpathentry kind="lib" path="lib/ant.jar"/>
|
||||
<classpathentry kind="output" path="build/classes"/>
|
||||
</classpath>
|
||||
|
|
|
@ -156,15 +156,6 @@
|
|||
value="${build}/src/sigar_version.c"/>
|
||||
</antcall>
|
||||
|
||||
<antcall target="version-file">
|
||||
<param name="version.file.srcdir"
|
||||
value="../.."/>
|
||||
<param name="version.file"
|
||||
value="src/os/netware/sigar.def"/>
|
||||
<param name="version.tofile"
|
||||
value="${build}/src/sigar.def"/>
|
||||
</antcall>
|
||||
|
||||
<antcall target="version-file">
|
||||
<param name="version.file.srcdir"
|
||||
value="../.."/>
|
||||
|
|
|
@ -1,284 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) [2004, 2005, 2006], Hyperic, Inc.
|
||||
* This file is part of SIGAR.
|
||||
*
|
||||
* SIGAR is free software; you can redistribute it and/or modify
|
||||
* it under the terms version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation. This program is distributed
|
||||
* in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
|
||||
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* talk to Data Link Provider Interface aka /dev/dlpi
|
||||
* see: http://docs.hp.com/hpux/onlinedocs/B2355-90139/B2355-90139.html
|
||||
*/
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <memory.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/dlpi.h>
|
||||
#include <sys/dlpi_ext.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/stream.h>
|
||||
#include <sys/stropts.h>
|
||||
#include <sys/mib.h>
|
||||
|
||||
#define DLBUF_SIZE 8192
|
||||
|
||||
#define ERRBUF_SIZE 1024
|
||||
|
||||
static int send_req(int fd, char *ptr, int len, char *what, char *ebuf)
|
||||
{
|
||||
struct strbuf ctl;
|
||||
int flags = 0;
|
||||
|
||||
ctl.maxlen = 0;
|
||||
ctl.len = len;
|
||||
ctl.buf = ptr;
|
||||
|
||||
if (putmsg(fd, &ctl, (struct strbuf *) NULL, flags) < 0) {
|
||||
snprintf(ebuf, ERRBUF_SIZE, "send_req: putmsg \"%s\": %s",
|
||||
what, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int recv_ack(int fd, int size, const char *what, char *bufp, char *ebuf)
|
||||
{
|
||||
union DL_primitives *dlp;
|
||||
struct strbuf ctl;
|
||||
int flags = 0;
|
||||
|
||||
ctl.maxlen = DLBUF_SIZE;
|
||||
ctl.len = 0;
|
||||
ctl.buf = bufp;
|
||||
|
||||
if (getmsg(fd, &ctl, (struct strbuf*)NULL, &flags) < 0) {
|
||||
snprintf(ebuf, ERRBUF_SIZE, "recv_ack: %s getmsg: %s",
|
||||
what, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
dlp = (union DL_primitives *)ctl.buf;
|
||||
switch (dlp->dl_primitive) {
|
||||
case DL_INFO_ACK:
|
||||
case DL_BIND_ACK:
|
||||
case DL_OK_ACK:
|
||||
case DL_HP_PPA_ACK:
|
||||
case DL_HP_INFO_ACK:
|
||||
case DL_GET_STATISTICS_ACK:
|
||||
break;
|
||||
|
||||
case DL_ERROR_ACK:
|
||||
switch (dlp->error_ack.dl_errno) {
|
||||
|
||||
case DL_SYSERR:
|
||||
snprintf(ebuf, ERRBUF_SIZE, "recv_ack: %s: system error - %s",
|
||||
what, strerror(dlp->error_ack.dl_unix_errno));
|
||||
break;
|
||||
|
||||
default:
|
||||
snprintf(ebuf, ERRBUF_SIZE, "recv_ack: %s: dl error - %d",
|
||||
what, dlp->error_ack.dl_errno);
|
||||
break;
|
||||
}
|
||||
return -1;
|
||||
default:
|
||||
snprintf(ebuf, ERRBUF_SIZE,
|
||||
"recv_ack: %s: unexpected primitive ack %d",
|
||||
what, dlp->dl_primitive);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (ctl.len < size) {
|
||||
snprintf(ebuf, ERRBUF_SIZE,
|
||||
"recv_ack: %s: ack too small (%d < %d)",
|
||||
what, ctl.len, size);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return ctl.len;
|
||||
}
|
||||
|
||||
static int dl_attach_req(int fd, uint32_t ppa, char *ebuf)
|
||||
{
|
||||
dl_attach_req_t req;
|
||||
|
||||
req.dl_primitive = DL_ATTACH_REQ;
|
||||
req.dl_ppa = ppa;
|
||||
|
||||
return send_req(fd, (char *)&req, sizeof(req), "attach", ebuf);
|
||||
}
|
||||
|
||||
static int dl_bind_req(int fd, uint32_t sap, char *ebuf)
|
||||
{
|
||||
dl_bind_req_t req;
|
||||
|
||||
memset((char *)&req, 0, sizeof(req));
|
||||
req.dl_primitive = DL_BIND_REQ;
|
||||
|
||||
req.dl_max_conind = 1;
|
||||
/* 22 == INSAP, see HP-UX DLPI Programmer's Guide */
|
||||
req.dl_sap = 22;
|
||||
req.dl_service_mode = DL_HP_RAWDLS;
|
||||
req.dl_service_mode = DL_CODLS;
|
||||
|
||||
return send_req(fd, (char *)&req, sizeof(req), "bind", ebuf);
|
||||
}
|
||||
|
||||
static int dl_bind_ack(int fd, char *bufp, char *ebuf)
|
||||
{
|
||||
return recv_ack(fd, DL_BIND_ACK_SIZE, "bind", bufp, ebuf);
|
||||
}
|
||||
|
||||
static int dl_ok_ack(int fd, const char *what, char *bufp, char *ebuf)
|
||||
{
|
||||
return recv_ack(fd, DL_OK_ACK_SIZE, what, bufp, ebuf);
|
||||
}
|
||||
|
||||
static int dl_info_req(int fd, char *ebuf)
|
||||
{
|
||||
dl_info_req_t req;
|
||||
|
||||
req.dl_primitive = DL_INFO_REQ;
|
||||
|
||||
return send_req(fd, (char *)&req, sizeof(req), "info", ebuf);
|
||||
}
|
||||
|
||||
static int dl_info_ack(int fd, char *bufp, char *ebuf)
|
||||
{
|
||||
return recv_ack(fd, DL_INFO_ACK_SIZE, "info", bufp, ebuf);
|
||||
}
|
||||
|
||||
static int dl_hp_info_req(int fd, char *ebuf)
|
||||
{
|
||||
dl_hp_info_req_t req;
|
||||
|
||||
req.dl_primitive = DL_HP_INFO_REQ;
|
||||
|
||||
return send_req(fd, (char *)&req, sizeof(req), "hpinfo", ebuf);
|
||||
}
|
||||
|
||||
static int dl_hp_info_ack(int fd, char *bufp, char *ebuf)
|
||||
{
|
||||
return recv_ack(fd, DL_HP_INFO_ACK_SIZE, "hpinfo", bufp, ebuf);
|
||||
}
|
||||
|
||||
static int dl_stats_req(int fd, char *ebuf)
|
||||
{
|
||||
dl_get_statistics_req_t req;
|
||||
|
||||
req.dl_primitive = DL_GET_STATISTICS_REQ;
|
||||
|
||||
return send_req(fd, (char *)&req, sizeof(req), "stats", ebuf);
|
||||
}
|
||||
|
||||
static int dl_stats_ack(int fd, char *bufp, char *ebuf)
|
||||
{
|
||||
return recv_ack(fd, DL_GET_STATISTICS_ACK_SIZE, "stats", bufp, ebuf);
|
||||
}
|
||||
|
||||
static int dl_open(int ppa, char *ebuf)
|
||||
{
|
||||
char *dev = "/dev/dlpi";
|
||||
int fd = -1;
|
||||
dl_info_ack_t *infop;
|
||||
uint32_t buf[DLBUF_SIZE];
|
||||
char dname[128];
|
||||
|
||||
if ((fd = open(dev, O_RDWR)) < 0) {
|
||||
snprintf(ebuf, sizeof(ebuf),
|
||||
"failed to open %s: %s", dev, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (dl_info_req(fd, ebuf) < 0 ||
|
||||
dl_info_ack(fd, (char *)buf, ebuf) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
infop = &((union DL_primitives *)buf)->info_ack;
|
||||
|
||||
if (infop->dl_provider_style == DL_STYLE2 &&
|
||||
(dl_attach_req(fd, ppa, ebuf) < 0 ||
|
||||
dl_ok_ack(fd, "attach", (char *)buf, ebuf) < 0))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (dl_bind_req(fd, 0, ebuf) < 0 ||
|
||||
dl_bind_ack(fd, (char *)buf, ebuf) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
||||
static int dl_get_hp_info(int fd, char *bufp, char *ebuf)
|
||||
{
|
||||
dl_hp_info_ack_t *ip;
|
||||
|
||||
if ((dl_hp_info_req(fd, ebuf) < 0) ||
|
||||
(dl_hp_info_ack(fd, bufp, ebuf) < 0)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
ip = (dl_hp_info_ack_t *)bufp;
|
||||
if (ip->dl_primitive != DL_HP_INFO_ACK) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dl_get_stats(int fd, char *bufp, char *ebuf)
|
||||
{
|
||||
dl_get_statistics_ack_t *ip;
|
||||
|
||||
if ((dl_stats_req(fd, ebuf) < 0) ||
|
||||
(dl_stats_ack(fd, bufp, ebuf) < 0)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
ip = (dl_get_statistics_ack_t *)bufp;
|
||||
if (ip->dl_primitive != DL_GET_STATISTICS_ACK) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hpux_get_mib_ifentry(int ppa, mib_ifEntry *mib)
|
||||
{
|
||||
int fd, status=0;
|
||||
char ebuf[ERRBUF_SIZE];
|
||||
uint32_t buf[DLBUF_SIZE];
|
||||
|
||||
if ((fd = dl_open(ppa, ebuf)) < 0) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
if (dl_get_stats(fd, (char *)buf, ebuf) >= 0) {
|
||||
dl_get_statistics_ack_t *st = (dl_get_statistics_ack_t *)buf;
|
||||
memcpy(mib, (u_char *)buf + st->dl_stat_offset, sizeof(*mib));
|
||||
}
|
||||
else {
|
||||
status = errno;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
return status;
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
EXTRA_DIST=\
|
||||
Makefile.nw \
|
||||
netware_sigar.c \
|
||||
sigar.def.in \
|
||||
sigar_os.h
|
|
@ -1,72 +0,0 @@
|
|||
NDKBASE = c:/novell
|
||||
#SYS:/ drive mount
|
||||
NDRIVE = g:
|
||||
|
||||
NDK_ROOT = $(NDKBASE)/ndk
|
||||
SDK_LIBC = $(NDK_ROOT)/libc
|
||||
SDK_CLIB = $(NDK_ROOT)/clib
|
||||
|
||||
JBINDINGS = ../../../bindings/java
|
||||
JBUILD = $(JBINDINGS)/build
|
||||
DEF_FILE = $(JBUILD)/sigar.def
|
||||
JINCLUDES = -I$(NDRIVE)/JAVA/include -I$(NDRIVE)/JAVA/include/netware
|
||||
INCLUDES = $(JINCLUDES) -I../../../include -I. -I$(JBUILD)/src
|
||||
OBJDIR = $(JBUILD)/obj/x86-netware
|
||||
LIBDIR = $(JBINDINGS)/sigar-bin/lib
|
||||
SIGARLIB = $(LIBDIR)/sigar.nlm
|
||||
|
||||
DB = NDEBUG
|
||||
# DB = DEBUG
|
||||
|
||||
ifeq ($(DB),NDEBUG)
|
||||
OPT = -O2
|
||||
else
|
||||
OPT = -g
|
||||
endif
|
||||
|
||||
CC = mwccnlm
|
||||
|
||||
CFLAGS = -DNETWARE -D$(DB) -nostdinc $(OPT)
|
||||
CFLAGS += -gccinc -inline off -opt nointrinsics -align 4 -inst mmx -proc 686
|
||||
|
||||
PRELUDE = $(SDK_LIBC)/imports/libcpre.o
|
||||
LD = mwldnlm
|
||||
LDFLAGS = -nostdlib $(PRELUDE) $(DEF_FILE) $(NW_OBJ) $(SIGAR_OBJ) $(JNI_OBJ) -o $(SIGARLIB) -type generic
|
||||
|
||||
INCLUDES += \
|
||||
-I$(SDK_LIBC)/include \
|
||||
-I$(SDK_LIBC)/include/nks \
|
||||
-I$(SDK_LIBC)/include/winsock \
|
||||
-I$(SDK_CLIB)/include \
|
||||
-I$(SDK_CLIB)/include/nlm
|
||||
|
||||
CFLAGS += $(INCLUDES)
|
||||
|
||||
NW_SRC = .\netware_sigar.c
|
||||
|
||||
SIGAR_SRC = \
|
||||
..\..\sigar.c \
|
||||
..\..\sigar_cache.c \
|
||||
..\..\sigar_getline.c \
|
||||
..\..\sigar_fileinfo.c \
|
||||
..\..\sigar_util.c \
|
||||
..\..\sigar_win32ish.c \
|
||||
|
||||
JNI_SRC = $(JBINDINGS)\src\jni\javasigar.c
|
||||
|
||||
NW_OBJ = $(NW_SRC:.c=.o)
|
||||
SIGAR_OBJ = $(SIGAR_SRC:.c=.o)
|
||||
JNI_OBJ = $(JNI_SRC:.c=.o)
|
||||
|
||||
all: $(OBJDIR) $(SIGARLIB)
|
||||
|
||||
clean:
|
||||
-$(RM) -r $(OBJDIR)
|
||||
|
||||
$(OBJDIR):
|
||||
@mkdir $(OBJDIR)
|
||||
|
||||
$(SIGARLIB): $(SIGAR_OBJ) $(NW_OBJ) $(JNI_OBJ) $(DEF_FILE)
|
||||
@echo Linking $@
|
||||
@-$(RM) $@
|
||||
@$(LD) $(LDFLAGS)
|
|
@ -1,725 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) [2004, 2005, 2006], Hyperic, Inc.
|
||||
* This file is part of SIGAR.
|
||||
*
|
||||
* SIGAR is free software; you can redistribute it and/or modify
|
||||
* it under the terms version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation. This program is distributed
|
||||
* in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
|
||||
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA.
|
||||
*/
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
|
||||
#include "sigar.h"
|
||||
#include "sigar_private.h"
|
||||
#include "sigar_os.h"
|
||||
#include "sigar_util.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <monitor.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include <netware.h>
|
||||
#include <novsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
#include <sys/statfs.h>
|
||||
#define _STRUCT_TM
|
||||
#include <nwtime.h>
|
||||
#include <nit/nwservst.h>
|
||||
#include <monitor.h>
|
||||
/*
|
||||
* http://developer.novell.com/research/appnotes/2003/may/05/a0305058.htm
|
||||
*/
|
||||
int _NonAppStart(void *NLMHandle,
|
||||
void *errorScreen,
|
||||
const char *cmdLine,
|
||||
const char *loadDirPath,
|
||||
size_t uninitializedDataLength,
|
||||
void *NLMFileHandle,
|
||||
int (*readRoutineP)(int conn,
|
||||
void *fileHandle,
|
||||
size_t offset,
|
||||
size_t nbytes,
|
||||
size_t *bytesRead,
|
||||
void *buffer),
|
||||
size_t customDataOffset,
|
||||
size_t customDataSize,
|
||||
int messageCount,
|
||||
const char **messages)
|
||||
{
|
||||
|
||||
#pragma unused(cmdLine)
|
||||
#pragma unused(loadDirPath)
|
||||
#pragma unused(uninitializedDataLength)
|
||||
#pragma unused(NLMFileHandle)
|
||||
#pragma unused(readRoutineP)
|
||||
#pragma unused(customDataOffset)
|
||||
#pragma unused(customDataSize)
|
||||
#pragma unused(messageCount)
|
||||
#pragma unused(messages)
|
||||
|
||||
WSADATA wsaData;
|
||||
|
||||
NWCallsInit(NULL, NULL);
|
||||
|
||||
return WSAStartup((WORD)MAKEWORD(2, 0), &wsaData);
|
||||
}
|
||||
|
||||
void _NonAppStop(void)
|
||||
{
|
||||
NWCallsTerm(NULL);
|
||||
WSACleanup();
|
||||
}
|
||||
|
||||
int _NonAppCheckUnload(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sigar_os_open(sigar_t **sigar)
|
||||
{
|
||||
*sigar = malloc(sizeof(**sigar));
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_os_close(sigar_t *sigar)
|
||||
{
|
||||
free(sigar);
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
char *sigar_os_error_string(sigar_t *sigar, int err)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||
{
|
||||
struct memory_info info;
|
||||
if (netware_mem_info(&info) != 0) {
|
||||
return errno;
|
||||
}
|
||||
mem->total = info.TotalKnownSystemMemoryUnder4Gb;
|
||||
mem->used = info.TotalWorkMemory;
|
||||
mem->free = mem->total - mem->used;
|
||||
mem->actual_free = mem->free;
|
||||
mem->actual_used = mem->used;
|
||||
|
||||
sigar_mem_calc_ram(sigar, mem);
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
|
||||
{
|
||||
struct vmemory_info info;
|
||||
|
||||
if (netware_vmem_info(&info) != 0) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
swap->used = info.SwapPageCount * PAGESIZE;
|
||||
swap->free = info.SwapFreeCount * PAGESIZE;
|
||||
swap->total = swap->used + swap->free;
|
||||
swap->page_in = swap->page_out = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
||||
{
|
||||
cpu->user = -1;
|
||||
cpu->nice = -1;
|
||||
cpu->sys = -1;
|
||||
cpu->idle = -1;
|
||||
cpu->wait = -1;
|
||||
|
||||
cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_cpu_list_get(sigar_t *sigar, sigar_cpu_list_t *cpulist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_uptime_get(sigar_t *sigar,
|
||||
sigar_uptime_t *uptime)
|
||||
{
|
||||
LONG seconds, tenths;
|
||||
|
||||
TicksToSeconds(GetCurrentTicks(), &seconds, &tenths);
|
||||
uptime->uptime = seconds;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_loadavg_get(sigar_t *sigar,
|
||||
sigar_loadavg_t *loadavg)
|
||||
{
|
||||
loadavg->loadavg[0] = -1;
|
||||
loadavg->loadavg[1] = -1;
|
||||
loadavg->loadavg[2] = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_mem_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_mem_t *procmem)
|
||||
{
|
||||
procmem->size = -1;
|
||||
procmem->vsize = -1;
|
||||
procmem->share = -1;
|
||||
procmem->rss = -1;
|
||||
procmem->resident = -1;
|
||||
procmem->page_faults = -1;
|
||||
procmem->minor_faults = -1;
|
||||
procmem->major_faults = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_cred_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_cred_t *proccred)
|
||||
{
|
||||
proccred->uid = -1;
|
||||
proccred->gid = -1;
|
||||
proccred->euid = -1;
|
||||
proccred->egid = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_time_t *proctime)
|
||||
{
|
||||
proctime->start_time = -1;
|
||||
proctime->user = -1;
|
||||
proctime->sys = -1;
|
||||
proctime->total = proctime->user + proctime->sys;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_state_t *procstate)
|
||||
{
|
||||
SIGAR_SSTRCPY(procstate->name, "java");
|
||||
procstate->ppid = -1;
|
||||
procstate->priority = -1;
|
||||
procstate->nice = -1;
|
||||
procstate->tty = -1;
|
||||
procstate->state = 'R';
|
||||
procstate->threads = -1;
|
||||
procstate->processor = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_env_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_env_t *procenv)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_fd_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_fd_t *procfd)
|
||||
{
|
||||
procfd->total = -1;
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_exe_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_exe_t *procexe)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_modules_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_modules_t *procmods)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_thread_cpu_get(sigar_t *sigar,
|
||||
sigar_uint64_t id,
|
||||
sigar_thread_cpu_t *cpu)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_os_fs_type_get(sigar_file_system_t *fsp)
|
||||
{
|
||||
fsp->type = SIGAR_FSTYPE_UNKNOWN;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_file_system_list_get(sigar_t *sigar,
|
||||
sigar_file_system_list_t *fslist)
|
||||
{
|
||||
struct volume_info info;
|
||||
int num = 0;
|
||||
|
||||
sigar_file_system_list_create(fslist);
|
||||
|
||||
while (netware_vol_info(&info, &num) == 0) {
|
||||
sigar_file_system_t *fsp;
|
||||
int len;
|
||||
char *type = NULL;
|
||||
|
||||
SIGAR_FILE_SYSTEM_LIST_GROW(fslist);
|
||||
|
||||
fsp = &fslist->data[fslist->number++];
|
||||
SIGAR_SSTRCPY(fsp->dev_name, info.name);
|
||||
SIGAR_SSTRCPY(fsp->dir_name, info.name);
|
||||
len = strlen(info.name);
|
||||
fsp->dir_name[len] = ':';
|
||||
fsp->dir_name[len+1] = '/';
|
||||
fsp->dir_name[len+2] = '\0';
|
||||
|
||||
fsp->type = SIGAR_FSTYPE_LOCAL_DISK;
|
||||
type = "nss";
|
||||
|
||||
sigar_fs_type_get(fsp);
|
||||
if (!type) {
|
||||
type = fsp->type_name;
|
||||
}
|
||||
|
||||
SIGAR_SSTRCPY(fsp->sys_type_name, type);
|
||||
fsp->options[0] = '\0'; /*XXX*/
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_disk_usage_get(sigar_t *sigar, const char *name,
|
||||
sigar_disk_usage_t *usage)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
#define SIGAR_FS_BLOCKS_TO_BYTES(buf, f) \
|
||||
((buf.f * (buf.f_bsize / 512)) >> 1)
|
||||
|
||||
int sigar_file_system_usage_get(sigar_t *sigar,
|
||||
const char *dirname,
|
||||
sigar_file_system_usage_t *fsusage)
|
||||
{
|
||||
struct statfs buf;
|
||||
|
||||
if (statfs(dirname, &buf) != 0) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
fsusage->total = SIGAR_FS_BLOCKS_TO_BYTES(buf, f_blocks);
|
||||
fsusage->free = SIGAR_FS_BLOCKS_TO_BYTES(buf, f_bfree);
|
||||
fsusage->avail = fsusage->free;
|
||||
fsusage->used = fsusage->total - fsusage->free;
|
||||
fsusage->files = buf.f_files;
|
||||
fsusage->free_files = buf.f_ffree;
|
||||
fsusage->use_percent = sigar_file_system_usage_calc_used(sigar, fsusage);
|
||||
|
||||
SIGAR_DISK_STATS_INIT(&fsusage->disk);
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_cpu_info_list_get(sigar_t *sigar,
|
||||
sigar_cpu_info_list_t *cpu_infos)
|
||||
{
|
||||
struct cpu_info cpu;
|
||||
int num = 0;
|
||||
|
||||
sigar_cpu_info_list_create(cpu_infos);
|
||||
|
||||
while (netware_cpu_info(&cpu, &num) == 0) {
|
||||
sigar_cpu_info_t *info;
|
||||
|
||||
SIGAR_CPU_INFO_LIST_GROW(cpu_infos);
|
||||
|
||||
info = &cpu_infos->data[cpu_infos->number++];
|
||||
|
||||
SIGAR_SSTRCPY(info->vendor, "vendor");
|
||||
SIGAR_SSTRCPY(info->model, "model");
|
||||
info->mhz = cpu.Speed;
|
||||
info->cache_size = cpu.L2CacheSize;
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_net_route_list_get(sigar_t *sigar,
|
||||
sigar_net_route_list_t *routelist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_net_interface_stat_get(sigar_t *sigar, const char *name,
|
||||
sigar_net_interface_stat_t *ifstat)
|
||||
{
|
||||
LONG board = 1; /* XXX derive from name */
|
||||
LONG block = 0;
|
||||
BYTE buffer[SS_DEFAULT_BUFFER_SIZE];
|
||||
WORD len = sizeof(buffer);
|
||||
CommonLANStructure *info;
|
||||
|
||||
if (SSGetLANCommonCounters(board, block, buffer, len) != 0) {
|
||||
return ENOENT;
|
||||
}
|
||||
|
||||
info = &((GetLANCommonCountersStructure *)buffer)->info;
|
||||
|
||||
ifstat->rx_bytes = info->TotalTxOKByteCountHigh;
|
||||
ifstat->rx_packets = info->TotalRxPacketCount;
|
||||
ifstat->rx_errors = info->PacketRxMiscErrorCount;
|
||||
ifstat->rx_dropped = -1;
|
||||
ifstat->rx_overruns = info->PacketRxTooBigCount;
|
||||
ifstat->rx_frame = -1;
|
||||
|
||||
ifstat->tx_bytes = info->TotalTxOKByteCountHigh;
|
||||
ifstat->tx_packets = info->TotalTxPacketCount;
|
||||
ifstat->tx_errors = info->PacketTxMiscErrorCount;
|
||||
ifstat->tx_dropped = info->RetryTxCount;
|
||||
ifstat->tx_overruns = info->PacketTxTooBigCount;
|
||||
ifstat->tx_collisions = -1;
|
||||
ifstat->tx_carrier = -1;
|
||||
|
||||
ifstat->speed = SIGAR_FIELD_NOTIMPL;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_net_connection_walk(sigar_net_connection_walker_t *walker)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_net_info_get(sigar_t *sigar,
|
||||
sigar_net_info_t *netinfo)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_port_get(sigar_t *sigar, int protocol,
|
||||
unsigned long port, sigar_pid_t *pid)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_ping(char *host)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_os_sys_info_get(sigar_t *sigar,
|
||||
sigar_sys_info_t *sysinfo)
|
||||
{
|
||||
SIGAR_SSTRCPY(sysinfo->vendor, "Novell");
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_get_iftype(const char *name, int *type, int *inst)
|
||||
{
|
||||
if (strnEQ(name, "eth", IFTYPE_ETH)) {
|
||||
*type = IFTYPE_ETH;
|
||||
}
|
||||
else if (strnEQ(name, "lo", IFTYPE_LO)) {
|
||||
*type = IFTYPE_LO;
|
||||
}
|
||||
else {
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
if (isdigit(*(name + *type))) {
|
||||
*inst = atoi(name + *type);
|
||||
}
|
||||
else {
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
static void hwaddr_lookup(sigar_t *sigar,
|
||||
sigar_net_interface_config_t *ifconfig,
|
||||
int num)
|
||||
{
|
||||
uint8_t addr[SIGAR_IFHWADDRLEN];
|
||||
|
||||
if (netware_net_macaddr(num+1, addr) == 0) {
|
||||
sigar_net_address_mac_set(ifconfig->hwaddr,
|
||||
addr,
|
||||
sizeof(addr));
|
||||
}
|
||||
else {
|
||||
sigar_hwaddr_set_null(ifconfig);
|
||||
}
|
||||
}
|
||||
|
||||
static int sigar_ioctl_iflist(sigar_t *sigar,
|
||||
SOCKET sock,
|
||||
DWORD *bytes)
|
||||
{
|
||||
return WSAIoctl(sock,
|
||||
SIO_GET_INTERFACE_LIST,
|
||||
NULL,
|
||||
0,
|
||||
(void *)sigar->ifconf_buf,
|
||||
sigar->ifconf_len,
|
||||
bytes,
|
||||
NULL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static int get_iflist(sigar_t *sigar, DWORD *bytes)
|
||||
{
|
||||
SOCKET sock = INVALID_SOCKET;
|
||||
int status, rc, limit;
|
||||
|
||||
sock = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
if (sock == INVALID_SOCKET) {
|
||||
return WSAGetLastError();
|
||||
}
|
||||
|
||||
if (sigar->ifconf_len == 0) {
|
||||
sigar->ifconf_len = 8192;
|
||||
sigar->ifconf_buf = malloc(sigar->ifconf_len);
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX We can't tell ahead of time what buffer size is required
|
||||
* limit just incase.
|
||||
*/
|
||||
for (limit=0; limit<100; limit++) {
|
||||
rc = sigar_ioctl_iflist(sigar, sock, bytes);
|
||||
if (rc && (WSAGetLastError() == WSAEFAULT)) {
|
||||
sigar->ifconf_len += (sizeof(INTERFACE_INFO) * 16);
|
||||
sigar->ifconf_buf = malloc(sigar->ifconf_len);
|
||||
}
|
||||
}
|
||||
|
||||
status = rc ? WSAGetLastError() : SIGAR_OK;
|
||||
|
||||
closesocket(sock);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
SIGAR_DECLARE(int)
|
||||
sigar_net_interface_config_get(sigar_t *sigar,
|
||||
const char *name,
|
||||
sigar_net_interface_config_t *ifconfig)
|
||||
{
|
||||
DWORD i, num, bytes;
|
||||
DWORD lo=0, eth=0;
|
||||
int status, type, inst;
|
||||
INTERFACE_INFO *if_info = NULL;
|
||||
u_long flags;
|
||||
|
||||
if (!name) {
|
||||
return sigar_net_interface_config_primary_get(sigar, ifconfig);
|
||||
}
|
||||
|
||||
/* win32 lacks socket ioctls to query given interface.
|
||||
* so we loop through the list to find our made up ifname.
|
||||
*/
|
||||
status = get_iflist(sigar, &bytes);
|
||||
if (status != SIGAR_OK) {
|
||||
return status;
|
||||
}
|
||||
|
||||
num = bytes / sizeof(INTERFACE_INFO);
|
||||
|
||||
if ((status = sigar_get_iftype(name, &type, &inst)) != SIGAR_OK) {
|
||||
return status;
|
||||
}
|
||||
|
||||
for (i=0; i<num ; i++) {
|
||||
if_info = ((INTERFACE_INFO *)sigar->ifconf_buf) + i;
|
||||
|
||||
if (if_info->iiFlags & IFF_LOOPBACK) {
|
||||
if ((type == IFTYPE_LO) && (inst == lo)) {
|
||||
break;
|
||||
}
|
||||
++lo;
|
||||
}
|
||||
else {
|
||||
if ((type == IFTYPE_ETH) && (inst == eth)) {
|
||||
break;
|
||||
}
|
||||
++eth;
|
||||
}
|
||||
|
||||
if_info = NULL;
|
||||
}
|
||||
|
||||
if (!if_info) {
|
||||
return ENOENT;
|
||||
}
|
||||
|
||||
SIGAR_ZERO(ifconfig);
|
||||
|
||||
SIGAR_SSTRCPY(ifconfig->name, name);
|
||||
|
||||
#define if_s_addr(a) \
|
||||
((struct sockaddr_in *)&a)->sin_addr.s_addr
|
||||
|
||||
sigar_net_address_set(ifconfig->address,
|
||||
if_s_addr(if_info->iiAddress));
|
||||
sigar_net_address_set(ifconfig->broadcast,
|
||||
if_s_addr(if_info->iiBroadcastAddress));
|
||||
sigar_net_address_set(ifconfig->netmask,
|
||||
if_s_addr(if_info->iiNetmask));
|
||||
|
||||
flags = if_info->iiFlags;
|
||||
|
||||
if (flags & IFF_UP) {
|
||||
ifconfig->flags |= SIGAR_IFF_UP|SIGAR_IFF_RUNNING;
|
||||
}
|
||||
if (flags & IFF_BROADCAST) {
|
||||
ifconfig->flags |= SIGAR_IFF_BROADCAST;
|
||||
}
|
||||
if (flags & IFF_LOOPBACK) {
|
||||
ifconfig->flags |= SIGAR_IFF_LOOPBACK;
|
||||
sigar_net_address_set(ifconfig->destination,
|
||||
ifconfig->address.addr.in);
|
||||
sigar_net_address_set(ifconfig->broadcast, 0);
|
||||
SIGAR_SSTRCPY(ifconfig->type,
|
||||
SIGAR_NIC_LOOPBACK);
|
||||
}
|
||||
else {
|
||||
SIGAR_SSTRCPY(ifconfig->type,
|
||||
SIGAR_NIC_ETHERNET);
|
||||
}
|
||||
|
||||
/* should be overridden w/ better description
|
||||
* using MIB_IFROW.bDescr when hwaddr is lookedup
|
||||
*/
|
||||
SIGAR_SSTRCPY(ifconfig->description,
|
||||
ifconfig->name);
|
||||
|
||||
hwaddr_lookup(sigar, ifconfig, i);
|
||||
|
||||
if (flags & IFF_POINTTOPOINT) {
|
||||
ifconfig->flags |= SIGAR_IFF_POINTOPOINT;
|
||||
}
|
||||
if (flags & IFF_MULTICAST) {
|
||||
ifconfig->flags |= SIGAR_IFF_MULTICAST;
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* win32 interface list does not include a name.
|
||||
* and the name from GetIfList() is the name of card
|
||||
* including vendor name, etc. so we use 'eth' for ethernet
|
||||
* interfaces and 'lo' for loopback.
|
||||
*/
|
||||
|
||||
#define ETH "eth"
|
||||
#define LO "lo"
|
||||
|
||||
SIGAR_DECLARE(int)
|
||||
sigar_net_interface_list_get(sigar_t *sigar,
|
||||
sigar_net_interface_list_t *iflist)
|
||||
{
|
||||
char eth[56], lo[56];
|
||||
int ethcnt=0, locnt=0;
|
||||
DWORD i, num, bytes;
|
||||
int status;
|
||||
|
||||
status = get_iflist(sigar, &bytes);
|
||||
if (status != SIGAR_OK) {
|
||||
return status;
|
||||
}
|
||||
|
||||
num = bytes / sizeof(INTERFACE_INFO);
|
||||
|
||||
iflist->number = 0;
|
||||
iflist->size = num;
|
||||
iflist->data =
|
||||
malloc(sizeof(*(iflist->data)) * iflist->size);
|
||||
|
||||
for (i=0; i<num ; i++) {
|
||||
INTERFACE_INFO *if_info =
|
||||
((INTERFACE_INFO *)sigar->ifconf_buf) + i;
|
||||
char *name;
|
||||
|
||||
if (if_info->iiFlags & IFF_LOOPBACK) {
|
||||
sprintf(lo, LO "%d", locnt++);
|
||||
name = strdup(lo);
|
||||
}
|
||||
else {
|
||||
/* XXX: assuming ethernet here */
|
||||
sprintf(eth, ETH "%d", ethcnt++);
|
||||
name = strdup(eth);
|
||||
}
|
||||
|
||||
iflist->data[iflist->number++] = name;
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
SIGAR_DECLARE(int)
|
||||
sigar_tcp_get(sigar_t *sigar,
|
||||
sigar_tcp_t *tcp)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_client_v2_get(sigar_t *sigar,
|
||||
sigar_nfs_client_v2_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_server_v2_get(sigar_t *sigar,
|
||||
sigar_nfs_server_v2_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_client_v3_get(sigar_t *sigar,
|
||||
sigar_nfs_client_v3_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_server_v3_get(sigar_t *sigar,
|
||||
sigar_nfs_server_v3_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_arp_list_get(sigar_t *sigar,
|
||||
sigar_arp_list_t *arplist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
copyright "Copyright @@COPYRIGHT_YEAR@@ Hyperic, LLC"
|
||||
description Sigar
|
||||
version @@VERSION_MAJOR@@,@@VERSION_MINOR@@,@@VERSION_MAINT@@
|
||||
stack 8192
|
||||
screenname DEFAULT
|
||||
threadname sigar
|
||||
autounload
|
||||
pseudopreemption
|
||||
start _LibCPrelude
|
||||
exit _LibCPostlude
|
||||
check _LibCCheckUnload
|
||||
import @c:/novell/ndk/libc/imports/libc.imp
|
||||
import @c:/novell/ndk/libc/imports/netware.imp
|
||||
import @c:/novell/ndk/libc/imports/ws2nlm.imp
|
||||
import @c:/novell/ndk/clib/imports/clib.imp
|
||||
import @c:/novell/ndk/clib/imports/calnlm32.imp
|
||||
module libc
|
||||
export @../../../bindings/java/build/src/javasigar_generated.def
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) [2004, 2005, 2006], Hyperic, Inc.
|
||||
* This file is part of SIGAR.
|
||||
*
|
||||
* SIGAR is free software; you can redistribute it and/or modify
|
||||
* it under the terms version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation. This program is distributed
|
||||
* in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
|
||||
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA.
|
||||
*/
|
||||
|
||||
#ifndef SIGAR_OS_H
|
||||
#define SIGAR_OS_H
|
||||
|
||||
struct sigar_t {
|
||||
SIGAR_T_BASE;
|
||||
};
|
||||
|
||||
#endif /* SIGAR_OS_H */
|
|
@ -1,3 +0,0 @@
|
|||
EXTRA_DIST=\
|
||||
osf1_sigar.c \
|
||||
sigar_os.h
|
|
@ -1,599 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) [2004, 2005, 2006], Hyperic, Inc.
|
||||
* This file is part of SIGAR.
|
||||
*
|
||||
* SIGAR is free software; you can redistribute it and/or modify
|
||||
* it under the terms version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation. This program is distributed
|
||||
* in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
|
||||
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA.
|
||||
*/
|
||||
|
||||
#include "sigar.h"
|
||||
#include "sigar_private.h"
|
||||
#include "sigar_os.h"
|
||||
#include "sigar_util.h"
|
||||
|
||||
#include <mach.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/task_info.h>
|
||||
|
||||
#include <sys/mount.h>
|
||||
#include <sys/fs_types.h>
|
||||
#include <sys/user.h>
|
||||
|
||||
int sigar_os_open(sigar_t **sigar)
|
||||
{
|
||||
*sigar = malloc(sizeof(**sigar));
|
||||
|
||||
(*sigar)->pagesize = getpagesize();
|
||||
(*sigar)->boot_time = 0;
|
||||
(*sigar)->mhz = 0;
|
||||
(*sigar)->nproc = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_os_close(sigar_t *sigar)
|
||||
{
|
||||
free(sigar);
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
char *sigar_os_error_string(sigar_t *sigar, int err)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||
{
|
||||
vm_statistics_data_t vmstats;
|
||||
|
||||
vm_statistics(task_self(), &vmstats);
|
||||
|
||||
mem->free = vmstats.free_count * vmstats.pagesize;
|
||||
mem->used = vmstats.active_count * vmstats.pagesize;
|
||||
|
||||
mem->total =
|
||||
mem->free + mem->used +
|
||||
((vmstats.inactive_count + vmstats.wire_count) * vmstats.pagesize);
|
||||
|
||||
mem->actual_free = mem->free;
|
||||
mem->actual_used = mem->used;
|
||||
|
||||
sigar_mem_calc_ram(sigar, mem);
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
|
||||
{
|
||||
struct tbl_swapinfo info;
|
||||
|
||||
table(TBL_SWAPINFO, -1, &info, 1, sizeof(info));
|
||||
|
||||
swap->total = info.size;
|
||||
swap->free = info.free;
|
||||
swap->total *= sigar->pagesize;
|
||||
swap->free *= sigar->pagesize;
|
||||
|
||||
swap->used = swap->total - swap->free;
|
||||
|
||||
swap->page_in = swap->page_out = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
||||
{
|
||||
struct tbl_sysinfo sysinfo;
|
||||
|
||||
if (table(TBL_SYSINFO, 0, &sysinfo, 1, sizeof(sysinfo)) != 1) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
cpu->user = sysinfo.si_user;
|
||||
cpu->nice = sysinfo.si_nice;
|
||||
cpu->sys = sysinfo.si_sys;
|
||||
cpu->idle = sysinfo.si_idle;
|
||||
cpu->wait = 0; /*N/A?*/
|
||||
cpu->irq = 0; /*N/A*/
|
||||
cpu->soft_irq = 0; /*N/A*/
|
||||
cpu->stolen = 0; /*N/A*/
|
||||
cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle + cpu->wait;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_cpu_list_get(sigar_t *sigar, sigar_cpu_list_t *cpulist)
|
||||
{
|
||||
sigar_cpu_t *cpu;
|
||||
|
||||
sigar_cpu_list_create(cpulist);
|
||||
|
||||
/* XXX multi cpu */
|
||||
cpu = &cpulist->data[cpulist->number++];
|
||||
|
||||
return sigar_cpu_get(sigar, cpu);
|
||||
}
|
||||
|
||||
int sigar_uptime_get(sigar_t *sigar,
|
||||
sigar_uptime_t *uptime)
|
||||
{
|
||||
if (sigar->boot_time == 0) {
|
||||
struct tbl_sysinfo sysinfo;
|
||||
|
||||
if (table(TBL_SYSINFO, 0, &sysinfo, 1, sizeof(sysinfo)) != 1) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
sigar->boot_time = sysinfo.si_boottime;
|
||||
}
|
||||
|
||||
uptime->uptime = time(NULL) - sigar->boot_time;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_loadavg_get(sigar_t *sigar,
|
||||
sigar_loadavg_t *loadavg)
|
||||
{
|
||||
int i;
|
||||
struct tbl_loadavg avg;
|
||||
|
||||
if (table(TBL_LOADAVG, 0, &avg, 1, sizeof(avg)) < 0) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
if (avg.tl_lscale) {
|
||||
for (i=0; i<3; i++) {
|
||||
loadavg->loadavg[i] =
|
||||
((double)avg.tl_avenrun.l[i] /
|
||||
(double)avg.tl_lscale);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (i=0; i<3; i++) {
|
||||
loadavg->loadavg[i] = avg.tl_avenrun.d[i];
|
||||
}
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
#define PROC_ELTS 16
|
||||
|
||||
int sigar_os_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
struct tbl_procinfo procinfo[PROC_ELTS];
|
||||
int offset;
|
||||
|
||||
if (sigar->nproc == -1) {
|
||||
/* this number will not change while we are running */
|
||||
sigar->nproc = table(TBL_PROCINFO, 0, NULL, INT_MAX, 0);
|
||||
}
|
||||
|
||||
for (offset=0; offset<sigar->nproc; offset+=PROC_ELTS) {
|
||||
int i;
|
||||
int elts = table(TBL_PROCINFO, offset, &procinfo,
|
||||
PROC_ELTS, sizeof(procinfo[0]));
|
||||
|
||||
for (i=0; i<elts; i++) {
|
||||
struct tbl_procinfo *info = &procinfo[i];
|
||||
if (info->pi_status == PI_EMPTY) {
|
||||
continue;
|
||||
}
|
||||
|
||||
SIGAR_PROC_LIST_GROW(proclist);
|
||||
|
||||
proclist->data[proclist->number++] = info->pi_pid;
|
||||
}
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_mem_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_mem_t *procmem)
|
||||
{
|
||||
task_t self;
|
||||
task_basic_info_data_t taskinfo;
|
||||
struct user s_user;
|
||||
int type = TASK_BASIC_INFO_COUNT;
|
||||
int status;
|
||||
|
||||
status = task_by_unix_pid(task_self(), pid, &self);
|
||||
|
||||
if (status != KERN_SUCCESS) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
status = task_info(self, TASK_BASIC_INFO,
|
||||
(task_info_t)&taskinfo, &type);
|
||||
|
||||
if (status != KERN_SUCCESS) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
procmem->resident = taskinfo.resident_size;
|
||||
procmem->size = taskinfo.virtual_size;
|
||||
|
||||
status = table(TBL_UAREA, pid, &s_user, 1, sizeof(s_user));
|
||||
|
||||
if (status != 1) {
|
||||
procmem->share = SIGAR_FIELD_NOTIMPL;
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
procmem->share = s_user.u_ru.ru_ixrss;
|
||||
|
||||
procmem->page_faults = SIGAR_FIELD_NOTIMPL;
|
||||
procmem->minor_faults = SIGAR_FIELD_NOTIMPL;
|
||||
procmem->major_faults = SIGAR_FIELD_NOTIMPL;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_cred_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_cred_t *proccred)
|
||||
{
|
||||
proccred->uid = SIGAR_FIELD_NOTIMPL;
|
||||
proccred->gid = SIGAR_FIELD_NOTIMPL;
|
||||
proccred->euid = SIGAR_FIELD_NOTIMPL;
|
||||
proccred->egid = SIGAR_FIELD_NOTIMPL;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_time_t *proctime)
|
||||
{
|
||||
struct user s_user;
|
||||
int status;
|
||||
|
||||
status = table(TBL_UAREA, pid, &s_user, 1, sizeof(s_user));
|
||||
|
||||
if (status != 1) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
proctime->user = s_user.u_ru.ru_utime.tv_sec;
|
||||
proctime->sys = s_user.u_ru.ru_stime.tv_sec;
|
||||
proctime->total = proctime->user + proctime->sys;
|
||||
proctime->start_time = s_user.u_start.tv_sec;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_state_t *procstate)
|
||||
{
|
||||
struct tbl_procinfo info;
|
||||
int status;
|
||||
|
||||
status = table(TBL_PROCINFO, pid, &info, 1, sizeof(info));
|
||||
|
||||
if (status != 1) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
SIGAR_SSTRCPY(procstate->name, info.pi_comm);
|
||||
procstate->ppid = info.pi_ppid;
|
||||
procstate->priority = SIGAR_FIELD_NOTIMPL;
|
||||
procstate->nice = SIGAR_FIELD_NOTIMPL;
|
||||
procstate->tty = info.pi_ttyd;
|
||||
procstate->threads = SIGAR_FIELD_NOTIMPL;
|
||||
procstate->processor = SIGAR_FIELD_NOTIMPL;
|
||||
|
||||
switch (info.pi_status) {
|
||||
case PI_ACTIVE:
|
||||
procstate->state = 'R';
|
||||
break;
|
||||
case PI_ZOMBIE:
|
||||
procstate->state = 'Z';
|
||||
break;
|
||||
default:
|
||||
procstate->state = 'S';
|
||||
break;
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_env_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_env_t *procenv)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_fd_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_fd_t *procfd)
|
||||
{
|
||||
procfd->total = SIGAR_FIELD_NOTIMPL;
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_exe_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_exe_t *procexe)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_modules_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_modules_t *procmods)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_thread_cpu_get(sigar_t *sigar,
|
||||
sigar_uint64_t id,
|
||||
sigar_thread_cpu_t *cpu)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_os_fs_type_get(sigar_file_system_t *fsp)
|
||||
{
|
||||
return fsp->type;
|
||||
}
|
||||
|
||||
static int sigar_fsstat(struct statfs **fs, int *num)
|
||||
{
|
||||
int size;
|
||||
|
||||
if ((*num = getfsstat(NULL, 0, MNT_WAIT)) < 0) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
size = ((*num)+1) * sizeof(struct statfs);
|
||||
|
||||
*fs = malloc(size);
|
||||
|
||||
if ((*num = getfsstat(*fs, size, MNT_WAIT)) < 0) {
|
||||
free(fs);
|
||||
return errno;
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_file_system_list_get(sigar_t *sigar,
|
||||
sigar_file_system_list_t *fslist)
|
||||
{
|
||||
int i, num, status;
|
||||
struct statfs *fs;
|
||||
|
||||
if ((status = sigar_fsstat(&fs, &num)) != SIGAR_OK) {
|
||||
return status;
|
||||
}
|
||||
|
||||
sigar_file_system_list_create(fslist);
|
||||
|
||||
for (i=0; i<num; i++) {
|
||||
sigar_file_system_t *fsp;
|
||||
const char *typename = NULL;
|
||||
|
||||
SIGAR_FILE_SYSTEM_LIST_GROW(fslist);
|
||||
|
||||
fsp = &fslist->data[fslist->number++];
|
||||
|
||||
SIGAR_SSTRCPY(fsp->dir_name, fs[i].f_mntonname);
|
||||
SIGAR_SSTRCPY(fsp->dev_name, fs[i].f_mntfromname);
|
||||
SIGAR_SSTRCPY(fsp->sys_type_name, mnt_names[fs[i].f_type]);
|
||||
fsp->options[0] = '\0'; /*XXX*/
|
||||
|
||||
switch (fs[i].f_type) {
|
||||
case MOUNT_UFS:
|
||||
typename = "ufs";
|
||||
fsp->type = SIGAR_FSTYPE_LOCAL_DISK;
|
||||
break;
|
||||
case MOUNT_MFS:
|
||||
case MOUNT_MSFS:
|
||||
typename = "advfs";
|
||||
fsp->type = SIGAR_FSTYPE_LOCAL_DISK;
|
||||
break;
|
||||
case MOUNT_FDFS:
|
||||
typename = "fdfs";
|
||||
fsp->type = SIGAR_FSTYPE_LOCAL_DISK;
|
||||
break;
|
||||
case MOUNT_DVDFS:
|
||||
case MOUNT_CDFS:
|
||||
fsp->type = SIGAR_FSTYPE_CDROM;
|
||||
break;
|
||||
case MOUNT_DFS: /* DCE */
|
||||
typename = "dfs";
|
||||
fsp->type = SIGAR_FSTYPE_NETWORK;
|
||||
break;
|
||||
case MOUNT_EFS: /* DCE */
|
||||
typename = "efs";
|
||||
fsp->type = SIGAR_FSTYPE_NETWORK;
|
||||
break;
|
||||
case MOUNT_NFS:
|
||||
case MOUNT_NFS3:
|
||||
typename = "nfs";
|
||||
fsp->type = SIGAR_FSTYPE_NETWORK;
|
||||
break;
|
||||
case MOUNT_CSPEC:
|
||||
case MOUNT_CFS:
|
||||
typename = "cfs";
|
||||
fsp->type = SIGAR_FSTYPE_NETWORK;
|
||||
break;
|
||||
case MOUNT_NONE:
|
||||
case MOUNT_PC:
|
||||
case MOUNT_S5FS:
|
||||
case MOUNT_PROCFS:
|
||||
case MOUNT_FFM:
|
||||
case MOUNT_ADDON:
|
||||
case MOUNT_AUTOFS:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* we set fsp->type, just looking up sigar.c:fstype_names[type] */
|
||||
sigar_fs_type_get(fsp);
|
||||
|
||||
if (typename == NULL) {
|
||||
typename = fsp->type_name;
|
||||
}
|
||||
}
|
||||
|
||||
free(fs);
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_disk_usage_get(sigar_t *sigar, const char *name,
|
||||
sigar_disk_usage_t *usage)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
#define SIGAR_FS_BLOCKS_TO_BYTES(buf, f) \
|
||||
(((sigar_uint64_t)buf.f * (buf.f_bsize / 512)) >> 1)
|
||||
|
||||
int sigar_file_system_usage_get(sigar_t *sigar,
|
||||
const char *dirname,
|
||||
sigar_file_system_usage_t *fsusage)
|
||||
{
|
||||
struct statfs buf;
|
||||
|
||||
if (statfs((char *)dirname, &buf) != 0) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
fsusage->total = SIGAR_FS_BLOCKS_TO_BYTES(buf, f_blocks);
|
||||
fsusage->free = SIGAR_FS_BLOCKS_TO_BYTES(buf, f_bfree);
|
||||
fsusage->avail = SIGAR_FS_BLOCKS_TO_BYTES(buf, f_bavail);
|
||||
fsusage->used = fsusage->total - fsusage->free;
|
||||
fsusage->files = buf.f_files;
|
||||
fsusage->free_files = buf.f_ffree;
|
||||
fsusage->use_percent = sigar_file_system_usage_calc_used(sigar, fsusage);
|
||||
|
||||
SIGAR_DISK_STATS_INIT(&fsusage->disk)
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_cpu_info_list_get(sigar_t *sigar,
|
||||
sigar_cpu_info_list_t *cpu_infos)
|
||||
{
|
||||
sigar_cpu_info_t *info;
|
||||
|
||||
if (sigar->mhz == 0) {
|
||||
struct tbl_sysinfo sysinfo;
|
||||
|
||||
if (table(TBL_SYSINFO, 0, &sysinfo, 1, sizeof(sysinfo)) != 1) {
|
||||
return errno;
|
||||
}
|
||||
|
||||
sigar->mhz = sysinfo.si_hz;
|
||||
}
|
||||
|
||||
sigar_cpu_info_list_create(cpu_infos);
|
||||
|
||||
info = &cpu_infos->data[cpu_infos->number++];
|
||||
|
||||
SIGAR_SSTRCPY(info->vendor, "DEC");
|
||||
SIGAR_SSTRCPY(info->model, "alpha");
|
||||
info->mhz = sigar->mhz;
|
||||
info->cache_size = SIGAR_FIELD_NOTIMPL;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_net_route_list_get(sigar_t *sigar,
|
||||
sigar_net_route_list_t *routelist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_net_interface_stat_get(sigar_t *sigar, const char *name,
|
||||
sigar_net_interface_stat_t *ifstat)
|
||||
{
|
||||
ifstat->rx_bytes = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->rx_packets = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->rx_errors = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->rx_dropped = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->rx_overruns = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->rx_frame = SIGAR_FIELD_NOTIMPL;
|
||||
|
||||
ifstat->tx_bytes = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->tx_packets = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->tx_errors = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->tx_dropped = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->tx_overruns = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->tx_collisions = SIGAR_FIELD_NOTIMPL;
|
||||
ifstat->tx_carrier = SIGAR_FIELD_NOTIMPL;
|
||||
|
||||
ifstat->speed = SIGAR_FIELD_NOTIMPL;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_net_connection_walk(sigar_net_connection_walker_t *walker)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
SIGAR_DECLARE(int)
|
||||
sigar_tcp_get(sigar_t *sigar,
|
||||
sigar_tcp_t *tcp)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_client_v2_get(sigar_t *sigar,
|
||||
sigar_nfs_client_v2_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_server_v2_get(sigar_t *sigar,
|
||||
sigar_nfs_server_v2_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_client_v3_get(sigar_t *sigar,
|
||||
sigar_nfs_client_v3_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_server_v3_get(sigar_t *sigar,
|
||||
sigar_nfs_server_v3_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_arp_list_get(sigar_t *sigar,
|
||||
sigar_arp_list_t *arplist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_port_get(sigar_t *sigar, int protocol,
|
||||
unsigned long port, sigar_pid_t *pid)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_os_sys_info_get(sigar_t *sigar,
|
||||
sigar_sys_info_t *sysinfo)
|
||||
{
|
||||
return SIGAR_OK;
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) [2004, 2005, 2006], Hyperic, Inc.
|
||||
* This file is part of SIGAR.
|
||||
*
|
||||
* SIGAR is free software; you can redistribute it and/or modify
|
||||
* it under the terms version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation. This program is distributed
|
||||
* in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
|
||||
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA.
|
||||
*/
|
||||
|
||||
#ifndef SIGAR_OS_H
|
||||
#define SIGAR_OS_H
|
||||
|
||||
#include <sys/table.h>
|
||||
/* "i will *punch* you in the *face*" --will ferrell */
|
||||
#undef idle
|
||||
#undef usr
|
||||
#undef sys
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/vm.h>
|
||||
|
||||
#include <mach.h>
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/vm_statistics.h>
|
||||
|
||||
struct sigar_t {
|
||||
SIGAR_T_BASE;
|
||||
int pagesize;
|
||||
int mhz;
|
||||
int nproc;
|
||||
};
|
||||
|
||||
#endif /* SIGAR_OS_H */
|
|
@ -1,3 +0,0 @@
|
|||
EXTRA_DIST=\
|
||||
sigar_os.h \
|
||||
stub_sigar.c
|
|
@ -1,8 +0,0 @@
|
|||
#ifndef SIGAR_OS_H
|
||||
#define SIGAR_OS_H
|
||||
|
||||
struct sigar_t {
|
||||
SIGAR_T_BASE;
|
||||
};
|
||||
|
||||
#endif /* SIGAR_OS_H */
|
|
@ -1,309 +0,0 @@
|
|||
#include "sigar.h"
|
||||
#include "sigar_private.h"
|
||||
#include "sigar_os.h"
|
||||
#include "sigar_util.h"
|
||||
|
||||
int sigar_os_open(sigar_t **sigar)
|
||||
{
|
||||
*sigar = malloc(sizeof(**sigar));
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_os_close(sigar_t *sigar)
|
||||
{
|
||||
free(sigar);
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
char *sigar_os_error_string(sigar_t *sigar, int err)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
||||
{
|
||||
mem->total = -1;
|
||||
mem->ram = -1;
|
||||
mem->used = -1;
|
||||
mem->free = -1;
|
||||
mem->actual_free = mem->free;
|
||||
mem->actual_used = mem->used;
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
|
||||
{
|
||||
swap->total = -1;
|
||||
swap->used = -1;
|
||||
swap->free = -1;
|
||||
swap->page_in = -1;
|
||||
swap->page_out = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
||||
{
|
||||
cpu->user = -1;
|
||||
cpu->nice = -1;
|
||||
cpu->sys = -1;
|
||||
cpu->idle = -1;
|
||||
cpu->wait = -1;
|
||||
|
||||
cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_cpu_list_get(sigar_t *sigar, sigar_cpu_list_t *cpulist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_uptime_get(sigar_t *sigar,
|
||||
sigar_uptime_t *uptime)
|
||||
{
|
||||
uptime->uptime = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_loadavg_get(sigar_t *sigar,
|
||||
sigar_loadavg_t *loadavg)
|
||||
{
|
||||
loadavg->loadavg[0] = -1;
|
||||
loadavg->loadavg[1] = -1;
|
||||
loadavg->loadavg[2] = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_mem_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_mem_t *procmem)
|
||||
{
|
||||
procmem->size = -1;
|
||||
procmem->share = -1;
|
||||
procmem->resident = -1;
|
||||
procmem->page_faults = -1;
|
||||
procmem->minor_faults = -1;
|
||||
procmem->major_faults = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_cred_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_cred_t *proccred)
|
||||
{
|
||||
proccred->uid = -1;
|
||||
proccred->gid = -1;
|
||||
proccred->euid = -1;
|
||||
proccred->egid = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_time_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_time_t *proctime)
|
||||
{
|
||||
proctime->start_time = -1;
|
||||
proctime->user = -1;
|
||||
proctime->sys = -1;
|
||||
proctime->total = proctime->user + proctime->sys;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_state_t *procstate)
|
||||
{
|
||||
SIGAR_SSTRCPY(procstate->name, "java");
|
||||
procstate->ppid = -1;
|
||||
procstate->priority = -1;
|
||||
procstate->nice = -1;
|
||||
procstate->tty = -1;
|
||||
procstate->state = 'R';
|
||||
procstate->threads = -1;
|
||||
procstate->processor = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_env_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_env_t *procenv)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_fd_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_fd_t *procfd)
|
||||
{
|
||||
procfd->total = -1;
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_exe_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_exe_t *procexe)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_modules_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_modules_t *procmods)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_thread_cpu_get(sigar_t *sigar,
|
||||
sigar_uint64_t id,
|
||||
sigar_thread_cpu_t *cpu)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_os_fs_type_get(sigar_file_system_t *fsp)
|
||||
{
|
||||
fsp->type = SIGAR_FSTYPE_UNKNOWN;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_file_system_list_get(sigar_t *sigar,
|
||||
sigar_file_system_list_t *fslist)
|
||||
{
|
||||
sigar_file_system_list_create(fslist);
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_disk_usage_get(sigar_t *sigar, const char *name,
|
||||
sigar_disk_usage_t *usage)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_file_system_usage_get(sigar_t *sigar,
|
||||
const char *dirname,
|
||||
sigar_file_system_usage_t *fsusage)
|
||||
{
|
||||
fsusage->total = -1;
|
||||
fsusage->free = -1;
|
||||
fsusage->avail = -1;
|
||||
fsusage->used = -1;
|
||||
fsusage->files = -1;
|
||||
fsusage->free_files = -1;
|
||||
SIGAR_DISK_STATS_INIT(&fsusage->disk);
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_cpu_info_list_get(sigar_t *sigar,
|
||||
sigar_cpu_info_list_t *cpu_infos)
|
||||
{
|
||||
sigar_cpu_info_t *info;
|
||||
|
||||
sigar_cpu_info_list_create(cpu_infos);
|
||||
|
||||
info = &cpu_infos->data[cpu_infos->number++];
|
||||
|
||||
SIGAR_SSTRCPY(info->vendor, "vendor");
|
||||
SIGAR_SSTRCPY(info->model, "model");
|
||||
info->mhz = -1;
|
||||
info->cache_size = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_net_route_list_get(sigar_t *sigar,
|
||||
sigar_net_route_list_t *routelist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_net_interface_stat_get(sigar_t *sigar, const char *name,
|
||||
sigar_net_interface_stat_t *ifstat)
|
||||
{
|
||||
ifstat->rx_bytes = -1;
|
||||
ifstat->rx_packets = -1;
|
||||
ifstat->rx_errors = -1;
|
||||
ifstat->rx_dropped = -1;
|
||||
ifstat->rx_overruns = -1;
|
||||
ifstat->rx_frame = -1;
|
||||
|
||||
ifstat->tx_bytes = -1;
|
||||
ifstat->tx_packets = -1;
|
||||
ifstat->tx_errors = -1;
|
||||
ifstat->tx_dropped = -1;
|
||||
ifstat->tx_overruns = -1;
|
||||
ifstat->tx_collisions = -1;
|
||||
ifstat->tx_carrier = -1;
|
||||
ifstat->speed = -1;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_net_connection_walk(sigar_net_connection_walker_t *walker)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
SIGAR_DECLARE(int)
|
||||
sigar_tcp_get(sigar_t *sigar,
|
||||
sigar_tcp_t *tcp)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_client_v2_get(sigar_t *sigar,
|
||||
sigar_nfs_client_v2_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_server_v2_get(sigar_t *sigar,
|
||||
sigar_nfs_server_v2_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_client_v3_get(sigar_t *sigar,
|
||||
sigar_nfs_client_v3_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_nfs_server_v3_get(sigar_t *sigar,
|
||||
sigar_nfs_server_v3_t *nfs)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_arp_list_get(sigar_t *sigar,
|
||||
sigar_arp_list_t *arplist)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_proc_port_get(sigar_t *sigar, int protocol,
|
||||
unsigned long port, sigar_pid_t *pid)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
}
|
||||
|
||||
int sigar_os_sys_info_get(sigar_t *sigar,
|
||||
sigar_sys_info_t *sysinfo)
|
||||
{
|
||||
return SIGAR_OK;
|
||||
}
|
|
@ -1,820 +0,0 @@
|
|||
#counter names from registry key
|
||||
#SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib
|
||||
0 UNDEFINED
|
||||
1 1847
|
||||
2 System
|
||||
4 Memory
|
||||
6 % Processor Time
|
||||
10 File Read Operations/sec
|
||||
12 File Write Operations/sec
|
||||
14 File Control Operations/sec
|
||||
16 File Read Bytes/sec
|
||||
18 File Write Bytes/sec
|
||||
20 File Control Bytes/sec
|
||||
24 Available Bytes
|
||||
26 Committed Bytes
|
||||
28 Page Faults/sec
|
||||
30 Commit Limit
|
||||
32 Write Copies/sec
|
||||
34 Transition Faults/sec
|
||||
36 Cache Faults/sec
|
||||
38 Demand Zero Faults/sec
|
||||
40 Pages/sec
|
||||
42 Page Reads/sec
|
||||
44 Processor Queue Length
|
||||
46 Thread State
|
||||
48 Pages Output/sec
|
||||
50 Page Writes/sec
|
||||
52 Browser
|
||||
54 Announcements Server/sec
|
||||
56 Pool Paged Bytes
|
||||
58 Pool Nonpaged Bytes
|
||||
60 Pool Paged Allocs
|
||||
64 Pool Nonpaged Allocs
|
||||
66 Pool Paged Resident Bytes
|
||||
68 System Code Total Bytes
|
||||
70 System Code Resident Bytes
|
||||
72 System Driver Total Bytes
|
||||
74 System Driver Resident Bytes
|
||||
76 System Cache Resident Bytes
|
||||
78 Announcements Domain/sec
|
||||
80 Election Packets/sec
|
||||
82 Mailslot Writes/sec
|
||||
84 Server List Requests/sec
|
||||
86 Cache
|
||||
88 Data Maps/sec
|
||||
90 Sync Data Maps/sec
|
||||
92 Async Data Maps/sec
|
||||
94 Data Map Hits %
|
||||
96 Data Map Pins/sec
|
||||
98 Pin Reads/sec
|
||||
100 Sync Pin Reads/sec
|
||||
102 Async Pin Reads/sec
|
||||
104 Pin Read Hits %
|
||||
106 Copy Reads/sec
|
||||
108 Sync Copy Reads/sec
|
||||
110 Async Copy Reads/sec
|
||||
112 Copy Read Hits %
|
||||
114 MDL Reads/sec
|
||||
116 Sync MDL Reads/sec
|
||||
118 Async MDL Reads/sec
|
||||
120 MDL Read Hits %
|
||||
122 Read Aheads/sec
|
||||
124 Fast Reads/sec
|
||||
126 Sync Fast Reads/sec
|
||||
128 Async Fast Reads/sec
|
||||
130 Fast Read Resource Misses/sec
|
||||
132 Fast Read Not Possibles/sec
|
||||
134 Lazy Write Flushes/sec
|
||||
136 Lazy Write Pages/sec
|
||||
138 Data Flushes/sec
|
||||
140 Data Flush Pages/sec
|
||||
142 % User Time
|
||||
144 % Privileged Time
|
||||
146 Context Switches/sec
|
||||
148 Interrupts/sec
|
||||
150 System Calls/sec
|
||||
152 Level 1 TLB Fills/sec
|
||||
154 Level 2 TLB Fills/sec
|
||||
156 Enumerations Server/sec
|
||||
158 Enumerations Domain/sec
|
||||
160 Enumerations Other/sec
|
||||
162 Missed Server Announcements
|
||||
164 Missed Mailslot Datagrams
|
||||
166 Missed Server List Requests
|
||||
168 Server Announce Allocations Failed/sec
|
||||
170 Mailslot Allocations Failed
|
||||
172 Virtual Bytes Peak
|
||||
174 Virtual Bytes
|
||||
178 Working Set Peak
|
||||
180 Working Set
|
||||
182 Page File Bytes Peak
|
||||
184 Page File Bytes
|
||||
186 Private Bytes
|
||||
188 Announcements Total/sec
|
||||
190 Enumerations Total/sec
|
||||
198 Current Disk Queue Length
|
||||
200 % Disk Time
|
||||
202 % Disk Read Time
|
||||
204 % Disk Write Time
|
||||
206 Avg. Disk sec/Transfer
|
||||
208 Avg. Disk sec/Read
|
||||
210 Avg. Disk sec/Write
|
||||
212 Disk Transfers/sec
|
||||
214 Disk Reads/sec
|
||||
216 Disk Writes/sec
|
||||
218 Disk Bytes/sec
|
||||
220 Disk Read Bytes/sec
|
||||
222 Disk Write Bytes/sec
|
||||
224 Avg. Disk Bytes/Transfer
|
||||
226 Avg. Disk Bytes/Read
|
||||
228 Avg. Disk Bytes/Write
|
||||
230 Process
|
||||
232 Thread
|
||||
234 PhysicalDisk
|
||||
236 LogicalDisk
|
||||
238 Processor
|
||||
240 % Total Processor Time
|
||||
242 % Total User Time
|
||||
244 % Total Privileged Time
|
||||
246 Total Interrupts/sec
|
||||
248 Processes
|
||||
250 Threads
|
||||
252 Events
|
||||
254 Semaphores
|
||||
256 Mutexes
|
||||
258 Sections
|
||||
260 Objects
|
||||
262 Redirector
|
||||
264 Bytes Received/sec
|
||||
266 Packets Received/sec
|
||||
268 Read Bytes Paging/sec
|
||||
270 Read Bytes Non-Paging/sec
|
||||
272 Read Bytes Cache/sec
|
||||
274 Read Bytes Network/sec
|
||||
276 Bytes Transmitted/sec
|
||||
278 Packets Transmitted/sec
|
||||
280 Write Bytes Paging/sec
|
||||
282 Write Bytes Non-Paging/sec
|
||||
284 Write Bytes Cache/sec
|
||||
286 Write Bytes Network/sec
|
||||
288 Read Operations/sec
|
||||
290 Read Operations Random/sec
|
||||
292 Read Packets/sec
|
||||
294 Reads Large/sec
|
||||
296 Read Packets Small/sec
|
||||
298 Write Operations/sec
|
||||
300 Write Operations Random/sec
|
||||
302 Write Packets/sec
|
||||
304 Writes Large/sec
|
||||
306 Write Packets Small/sec
|
||||
308 Reads Denied/sec
|
||||
310 Writes Denied/sec
|
||||
312 Network Errors/sec
|
||||
314 Server Sessions
|
||||
316 Server Reconnects
|
||||
318 Connects Core
|
||||
320 Connects Lan Manager 2.0
|
||||
322 Connects Lan Manager 2.1
|
||||
324 Connects Windows NT
|
||||
326 Server Disconnects
|
||||
328 Server Sessions Hung
|
||||
330 Server
|
||||
336 Thread Wait Reason
|
||||
340 Sessions Timed Out
|
||||
342 Sessions Errored Out
|
||||
344 Sessions Logged Off
|
||||
346 Sessions Forced Off
|
||||
348 Errors Logon
|
||||
350 Errors Access Permissions
|
||||
352 Errors Granted Access
|
||||
354 Errors System
|
||||
356 Blocking Requests Rejected
|
||||
358 Work Item Shortages
|
||||
360 Files Opened Total
|
||||
362 Files Open
|
||||
366 File Directory Searches
|
||||
370 Pool Nonpaged Failures
|
||||
372 Pool Nonpaged Peak
|
||||
376 Pool Paged Failures
|
||||
378 Pool Paged Peak
|
||||
388 Bytes Total/sec
|
||||
392 Current Commands
|
||||
398 NWLink NetBIOS
|
||||
400 Packets/sec
|
||||
404 Context Blocks Queued/sec
|
||||
406 File Data Operations/sec
|
||||
408 % Free Space
|
||||
410 Free Megabytes
|
||||
412 Connections Open
|
||||
414 Connections No Retries
|
||||
416 Connections With Retries
|
||||
418 Disconnects Local
|
||||
420 Disconnects Remote
|
||||
422 Failures Link
|
||||
424 Failures Adapter
|
||||
426 Connection Session Timeouts
|
||||
428 Connections Canceled
|
||||
430 Failures Resource Remote
|
||||
432 Failures Resource Local
|
||||
434 Failures Not Found
|
||||
436 Failures No Listen
|
||||
438 Datagrams/sec
|
||||
440 Datagram Bytes/sec
|
||||
442 Datagrams Sent/sec
|
||||
444 Datagram Bytes Sent/sec
|
||||
446 Datagrams Received/sec
|
||||
448 Datagram Bytes Received/sec
|
||||
452 Packets Sent/sec
|
||||
456 Frames/sec
|
||||
458 Frame Bytes/sec
|
||||
460 Frames Sent/sec
|
||||
462 Frame Bytes Sent/sec
|
||||
464 Frames Received/sec
|
||||
466 Frame Bytes Received/sec
|
||||
468 Frames Re-Sent/sec
|
||||
470 Frame Bytes Re-Sent/sec
|
||||
472 Frames Rejected/sec
|
||||
474 Frame Bytes Rejected/sec
|
||||
476 Expirations Response
|
||||
478 Expirations Ack
|
||||
480 Window Send Maximum
|
||||
482 Window Send Average
|
||||
484 Piggyback Ack Queued/sec
|
||||
486 Piggyback Ack Timeouts
|
||||
488 NWLink IPX
|
||||
490 NWLink SPX
|
||||
492 NetBEUI
|
||||
494 NetBEUI Resource
|
||||
496 Used Maximum
|
||||
498 Used Average
|
||||
500 Times Exhausted
|
||||
502 NBT Connection
|
||||
506 Bytes Sent/sec
|
||||
508 Total Bytes/sec
|
||||
510 Network Interface
|
||||
512 Bytes/sec
|
||||
520 Current Bandwidth
|
||||
524 Packets Received Unicast/sec
|
||||
526 Packets Received Non-Unicast/sec
|
||||
528 Packets Received Discarded
|
||||
530 Packets Received Errors
|
||||
532 Packets Received Unknown
|
||||
536 Packets Sent Unicast/sec
|
||||
538 Packets Sent Non-Unicast/sec
|
||||
540 Packets Outbound Discarded
|
||||
542 Packets Outbound Errors
|
||||
544 Output Queue Length
|
||||
546 IP
|
||||
552 Datagrams Received Header Errors
|
||||
554 Datagrams Received Address Errors
|
||||
556 Datagrams Forwarded/sec
|
||||
558 Datagrams Received Unknown Protocol
|
||||
560 Datagrams Received Discarded
|
||||
562 Datagrams Received Delivered/sec
|
||||
566 Datagrams Outbound Discarded
|
||||
568 Datagrams Outbound No Route
|
||||
570 Fragments Received/sec
|
||||
572 Fragments Re-assembled/sec
|
||||
574 Fragment Re-assembly Failures
|
||||
576 Fragmented Datagrams/sec
|
||||
578 Fragmentation Failures
|
||||
580 Fragments Created/sec
|
||||
582 ICMP
|
||||
584 Messages/sec
|
||||
586 Messages Received/sec
|
||||
588 Messages Received Errors
|
||||
590 Received Dest. Unreachable
|
||||
592 Received Time Exceeded
|
||||
594 Received Parameter Problem
|
||||
596 Received Source Quench
|
||||
598 Received Redirect/sec
|
||||
600 Received Echo/sec
|
||||
602 Received Echo Reply/sec
|
||||
604 Received Timestamp/sec
|
||||
606 Received Timestamp Reply/sec
|
||||
608 Received Address Mask
|
||||
610 Received Address Mask Reply
|
||||
612 Messages Sent/sec
|
||||
614 Messages Outbound Errors
|
||||
616 Sent Destination Unreachable
|
||||
618 Sent Time Exceeded
|
||||
620 Sent Parameter Problem
|
||||
622 Sent Source Quench
|
||||
624 Sent Redirect/sec
|
||||
626 Sent Echo/sec
|
||||
628 Sent Echo Reply/sec
|
||||
630 Sent Timestamp/sec
|
||||
632 Sent Timestamp Reply/sec
|
||||
634 Sent Address Mask
|
||||
636 Sent Address Mask Reply
|
||||
638 TCP
|
||||
640 Segments/sec
|
||||
642 Connections Established
|
||||
644 Connections Active
|
||||
646 Connections Passive
|
||||
648 Connection Failures
|
||||
650 Connections Reset
|
||||
652 Segments Received/sec
|
||||
654 Segments Sent/sec
|
||||
656 Segments Retransmitted/sec
|
||||
658 UDP
|
||||
660 % Total DPC Time
|
||||
662 % Total Interrupt Time
|
||||
664 Datagrams No Port/sec
|
||||
666 Datagrams Received Errors
|
||||
670 Disk Storage Unit
|
||||
672 Allocation Failures
|
||||
674 System Up Time
|
||||
676 System Handle Count
|
||||
678 Free System Page Table Entries
|
||||
680 Thread Count
|
||||
682 Priority Base
|
||||
684 Elapsed Time
|
||||
686 Alignment Fixups/sec
|
||||
688 Exception Dispatches/sec
|
||||
690 Floating Emulations/sec
|
||||
692 Logon/sec
|
||||
694 Priority Current
|
||||
696 % DPC Time
|
||||
698 % Interrupt Time
|
||||
700 Paging File
|
||||
702 % Usage
|
||||
704 % Usage Peak
|
||||
706 Start Address
|
||||
708 User PC
|
||||
710 Mapped Space No Access
|
||||
712 Mapped Space Read Only
|
||||
714 Mapped Space Read/Write
|
||||
716 Mapped Space Write Copy
|
||||
718 Mapped Space Executable
|
||||
720 Mapped Space Exec Read Only
|
||||
722 Mapped Space Exec Read/Write
|
||||
724 Mapped Space Exec Write Copy
|
||||
726 Reserved Space No Access
|
||||
728 Reserved Space Read Only
|
||||
730 Reserved Space Read/Write
|
||||
732 Reserved Space Write Copy
|
||||
734 Reserved Space Executable
|
||||
736 Reserved Space Exec Read Only
|
||||
738 Reserved Space Exec Read/Write
|
||||
740 Image
|
||||
742 Reserved Space Exec Write Copy
|
||||
744 Unassigned Space No Access
|
||||
746 Unassigned Space Read Only
|
||||
748 Unassigned Space Read/Write
|
||||
750 Unassigned Space Write Copy
|
||||
752 Unassigned Space Executable
|
||||
754 Unassigned Space Exec Read Only
|
||||
756 Unassigned Space Exec Read/Write
|
||||
758 Unassigned Space Exec Write Copy
|
||||
760 Image Space No Access
|
||||
762 Image Space Read Only
|
||||
764 Image Space Read/Write
|
||||
766 Image Space Write Copy
|
||||
768 Image Space Executable
|
||||
770 Image Space Exec Read Only
|
||||
772 Image Space Exec Read/Write
|
||||
774 Image Space Exec Write Copy
|
||||
776 Bytes Image Reserved
|
||||
778 Bytes Image Free
|
||||
780 Bytes Reserved
|
||||
782 Bytes Free
|
||||
784 ID Process
|
||||
786 Process Address Space
|
||||
788 No Access
|
||||
790 Read Only
|
||||
792 Read/Write
|
||||
794 Write Copy
|
||||
796 Executable
|
||||
798 Exec Read Only
|
||||
800 Exec Read/Write
|
||||
802 Exec Write Copy
|
||||
804 ID Thread
|
||||
806 Mailslot Receives Failed
|
||||
808 Mailslot Writes Failed
|
||||
810 Mailslot Opens Failed/sec
|
||||
812 Duplicate Master Announcements
|
||||
814 Illegal Datagrams/sec
|
||||
816 Thread Details
|
||||
818 Cache Bytes
|
||||
820 Cache Bytes Peak
|
||||
822 Pages Input/sec
|
||||
870 RAS Port
|
||||
872 Bytes Transmitted
|
||||
874 Bytes Received
|
||||
876 Frames Transmitted
|
||||
878 Frames Received.
|
||||
880 Percent Compression Out
|
||||
882 Percent Compression In
|
||||
884 CRC Errors
|
||||
886 Timeout Errors
|
||||
888 Serial Overrun Errors
|
||||
890 Alignment Errors
|
||||
892 Buffer Overrun Errors
|
||||
894 Total Errors
|
||||
896 Bytes Transmitted/Sec
|
||||
898 Bytes Received/Sec
|
||||
900 Frames Transmitted/Sec
|
||||
902 Frames Received/Sec
|
||||
904 Total Errors/Sec
|
||||
906 RAS Total
|
||||
908 Total Connections
|
||||
920 WINS Server
|
||||
922 Unique Registrations/sec
|
||||
924 Group Registrations/sec
|
||||
926 Total Number of Registrations/sec
|
||||
928 Unique Renewals/sec
|
||||
930 Group Renewals/sec
|
||||
932 Total Number of Renewals/sec
|
||||
934 Releases/sec
|
||||
936 Queries/sec
|
||||
938 Unique Conflicts/sec
|
||||
940 Group Conflicts/sec
|
||||
942 Total Number of Conflicts/sec
|
||||
944 Successful Releases/sec
|
||||
946 Failed Releases/sec
|
||||
948 Successful Queries/sec
|
||||
950 Failed Queries/sec
|
||||
952 Handle Count
|
||||
1000 MacFile Server
|
||||
1002 Max Paged Memory
|
||||
1004 Current Paged Memory
|
||||
1006 Max NonPaged Memory
|
||||
1008 Current NonPaged memory
|
||||
1010 Current Sessions
|
||||
1012 Maximum Sessions
|
||||
1014 Current Files Open
|
||||
1016 Maximum Files Open
|
||||
1018 Failed Logons
|
||||
1020 Data Read/sec
|
||||
1022 Data Written/sec
|
||||
1024 Data Received/sec
|
||||
1026 Data Transmitted/sec
|
||||
1028 Current Queue Length
|
||||
1030 Maximum Queue Length
|
||||
1032 Current Threads
|
||||
1034 Maximum Threads
|
||||
1050 AppleTalk
|
||||
1052 Packets In/sec
|
||||
1054 Packets Out/sec
|
||||
1056 Bytes In/sec
|
||||
1058 Bytes Out/sec
|
||||
1060 Average Time/DDP Packet
|
||||
1062 DDP Packets/sec
|
||||
1064 Average Time/AARP Packet
|
||||
1066 AARP Packets/sec
|
||||
1068 Average Time/ATP Packet
|
||||
1070 ATP Packets/sec
|
||||
1072 Average Time/NBP Packet
|
||||
1074 NBP Packets/sec
|
||||
1076 Average Time/ZIP Packet
|
||||
1078 ZIP Packets/sec
|
||||
1080 Average Time/RTMP Packet
|
||||
1082 RTMP Packets/sec
|
||||
1084 ATP Retries Local
|
||||
1086 ATP Response Timouts
|
||||
1088 ATP XO Response/Sec
|
||||
1090 ATP ALO Response/Sec
|
||||
1092 ATP Recvd Release/Sec
|
||||
1094 Current NonPaged Pool
|
||||
1096 Packets Routed In/Sec
|
||||
1098 Packets dropped
|
||||
1100 ATP Retries Remote
|
||||
1102 Packets Routed Out/Sec
|
||||
1110 Network Segment
|
||||
1112 Total frames received/second
|
||||
1114 Total bytes received/second
|
||||
1116 Broadcast frames received/second
|
||||
1118 Multicast frames received/second
|
||||
1120 % Network utilization
|
||||
1124 % Broadcast Frames
|
||||
1126 % Multicast Frames
|
||||
1150 Telephony
|
||||
1152 Lines
|
||||
1154 Telephone Devices
|
||||
1156 Active Lines
|
||||
1158 Active Telephones
|
||||
1160 Outgoing Calls/sec
|
||||
1162 Incoming Calls/sec
|
||||
1164 Client Apps
|
||||
1166 Current Outgoing Calls
|
||||
1168 Current Incoming Calls
|
||||
1228 Gateway Service For NetWare
|
||||
1230 Client Service For NetWare
|
||||
1232 Packet Burst Read NCP Count/sec
|
||||
1234 Packet Burst Read Timeouts/sec
|
||||
1236 Packet Burst Write NCP Count/sec
|
||||
1238 Packet Burst Write Timeouts/sec
|
||||
1240 Packet Burst IO/sec
|
||||
1242 Connect NetWare 2.x
|
||||
1244 Connect NetWare 3.x
|
||||
1246 Connect NetWare 4.x
|
||||
1260 Logon Total
|
||||
1300 Server Work Queues
|
||||
1302 Queue Length
|
||||
1304 Active Threads
|
||||
1306 Available Threads
|
||||
1308 Available Work Items
|
||||
1310 Borrowed Work Items
|
||||
1312 Work Item Shortages
|
||||
1314 Current Clients
|
||||
1320 Bytes Transferred/sec
|
||||
1324 Read Bytes/sec
|
||||
1328 Write Bytes/sec
|
||||
1332 Total Operations/sec
|
||||
1334 DPCs Queued/sec
|
||||
1336 DPC Rate
|
||||
1342 Total DPCs Queued/sec
|
||||
1344 Total DPC Rate
|
||||
1350 % Registry Quota In Use
|
||||
1360 VL Memory
|
||||
1362 VLM % Virtual Size In Use
|
||||
1364 VLM Virtual Size
|
||||
1366 VLM Virtual Size Peak
|
||||
1368 VLM Virtual Size Available
|
||||
1370 VLM Commit Charge
|
||||
1372 VLM Commit Charge Peak
|
||||
1374 System VLM Commit Charge
|
||||
1376 System VLM Commit Charge Peak
|
||||
1378 System VLM Shared Commit Charge
|
||||
1380 Available KBytes
|
||||
1382 Available MBytes
|
||||
1400 Avg. Disk Queue Length
|
||||
1402 Avg. Disk Read Queue Length
|
||||
1404 Avg. Disk Write Queue Length
|
||||
1406 % Committed Bytes In Use
|
||||
1408 Full Image
|
||||
1410 Creating Process ID
|
||||
1412 IO Read Operations/sec
|
||||
1414 IO Write Operations/sec
|
||||
1416 IO Data Operations/sec
|
||||
1418 IO Other Operations/sec
|
||||
1420 IO Read Bytes/sec
|
||||
1422 IO Write Bytes/sec
|
||||
1424 IO Data Bytes/sec
|
||||
1426 IO Other Bytes/sec
|
||||
1450 Print Queue
|
||||
1452 Total Jobs Printed
|
||||
1454 Bytes Printed/sec
|
||||
1456 Total Pages Printed
|
||||
1458 Jobs
|
||||
1460 References
|
||||
1462 Max References
|
||||
1464 Jobs Spooling
|
||||
1466 Max Jobs Spooling
|
||||
1468 Out of Paper Errors
|
||||
1470 Not Ready Errors
|
||||
1472 Job Errors
|
||||
1474 Enumerate Network Printer Calls
|
||||
1476 Add Network Printer Calls
|
||||
1478 Working Set - Private
|
||||
1480 Working Set - Shared
|
||||
1482 % Idle Time
|
||||
1484 Split IO/Sec
|
||||
1500 Job Object
|
||||
1502 Current % Processor Time
|
||||
1504 Current % User Mode Time
|
||||
1506 Current % Kernel Mode Time
|
||||
1508 This Period mSec - Processor
|
||||
1510 This Period mSec - User Mode
|
||||
1512 This Period mSec - Kernel Mode
|
||||
1514 Pages/Sec
|
||||
1516 Process Count - Total
|
||||
1518 Process Count - Active
|
||||
1520 Process Count - Terminated
|
||||
1522 Total mSec - Processor
|
||||
1524 Total mSec - User Mode
|
||||
1526 Total mSec - Kernel Mode
|
||||
1548 Job Object Details
|
||||
1746 % Idle Time
|
||||
1748 % C1 Time
|
||||
1750 % C2 Time
|
||||
1752 % C3 Time
|
||||
1754 C1 Transitions/sec
|
||||
1756 C2 Transitions/sec
|
||||
1758 C3 Transitions/sec
|
||||
1760 Heap
|
||||
1762 Committed Bytes
|
||||
1764 Reserved Bytes
|
||||
1766 Virtual Bytes
|
||||
1768 Free Bytes
|
||||
1770 Free List Length
|
||||
1772 Avg. alloc rate
|
||||
1774 Avg. free rate
|
||||
1776 Uncommitted Ranges Length
|
||||
1778 Allocs - Frees
|
||||
1780 Cached Allocs/sec
|
||||
1782 Cached Frees/sec
|
||||
1784 Allocs <1K/sec
|
||||
1786 Frees <1K/sec
|
||||
1788 Allocs 1-8K/sec
|
||||
1790 Frees 1-8K/sec
|
||||
1792 Allocs over 8K/sec
|
||||
1794 Frees over 8K/sec
|
||||
1796 Total Allocs/sec
|
||||
1798 Total Frees/sec
|
||||
1800 Blocks in Heap Cache
|
||||
1802 Largest Cache Depth
|
||||
1804 % Fragmentation
|
||||
1806 % VAFragmentation
|
||||
1808 Heap Lock contention
|
||||
1846 End Marker
|
||||
1848 RSVP Service
|
||||
1850 Network Interfaces
|
||||
1852 Network sockets
|
||||
1854 Timers
|
||||
1856 RSVP sessions
|
||||
1858 QoS clients
|
||||
1860 QoS-enabled senders
|
||||
1862 QoS-enabled receivers
|
||||
1864 Failed QoS requests
|
||||
1866 Failed QoS sends
|
||||
1868 QoS notifications
|
||||
1870 Bytes in QoS notifications
|
||||
1872 RSVP Interfaces
|
||||
1874 Signaling bytes received
|
||||
1876 Signaling bytes sent
|
||||
1878 PATH messages received
|
||||
1880 RESV messages received
|
||||
1882 PATH ERR messages received
|
||||
1884 RESV ERR messages received
|
||||
1886 PATH TEAR messages received
|
||||
1888 RESV TEAR messages received
|
||||
1890 RESV CONFIRM messages received
|
||||
1892 PATH messages sent
|
||||
1894 RESV messages sent
|
||||
1896 PATH ERR messages sent
|
||||
1898 RESV ERR messages sent
|
||||
1900 PATH TEAR messages sent
|
||||
1902 RESV TEAR messages sent
|
||||
1904 RESV CONFIRM messages sent
|
||||
1906 Resource control failures
|
||||
1908 Policy control failures
|
||||
1910 General failures
|
||||
1912 Blocked RESVs
|
||||
1914 RESV state block timeouts
|
||||
1916 PATH state block timeouts
|
||||
1918 Send messages errors - Big messages
|
||||
1920 Receive messages errors - Big messages
|
||||
1922 Send messages errors - No memory
|
||||
1924 Receive messages errors - No memory
|
||||
1926 Number of incoming messages dropped
|
||||
1928 Number of outgoing messages dropped
|
||||
1930 Number of active flows
|
||||
1932 Reserved bandwidth
|
||||
1934 Maximum admitted bandwidth
|
||||
1936 PSched Flow
|
||||
1938 PSched Pipe
|
||||
1940 Packets dropped
|
||||
1942 Packets scheduled
|
||||
1944 Packets transmitted
|
||||
1946 Average packets in shaper
|
||||
1948 Max packets in shaper
|
||||
1950 Average packets in sequencer
|
||||
1952 Max packets in sequencer
|
||||
1954 Bytes scheduled
|
||||
1956 Bytes transmitted
|
||||
1958 Bytes transmitted/sec
|
||||
1960 Bytes scheduled/sec
|
||||
1962 Packets transmitted/sec
|
||||
1964 Packets scheduled/sec
|
||||
1966 Packets dropped/sec
|
||||
1968 Nonconforming packets scheduled
|
||||
1970 Nonconforming packets scheduled/sec
|
||||
1972 Nonconforming packets transmitted
|
||||
1974 Nonconforming packets transmitted/sec
|
||||
1976 Maximum Packets in netcard
|
||||
1978 Average Packets in netcard
|
||||
1980 Out of packets
|
||||
1982 Flows opened
|
||||
1984 Flows closed
|
||||
1986 Flows rejected
|
||||
1988 Flows modified
|
||||
1990 Flow mods rejected
|
||||
1992 Max simultaneous flows
|
||||
1994 Nonconforming packets scheduled
|
||||
1996 Nonconforming packets scheduled/sec
|
||||
1998 Nonconforming packets transmitted
|
||||
2000 Nonconforming packets transmitted/sec
|
||||
2002 Average packets in shaper
|
||||
2004 Max packets in shaper
|
||||
2006 Average packets in sequencer
|
||||
2008 Max packets in sequencer
|
||||
2010 Max packets in netcard
|
||||
2012 Average packets in netcard
|
||||
2014 RAS Port
|
||||
2016 Bytes Transmitted
|
||||
2018 Bytes Received
|
||||
2020 Frames Transmitted
|
||||
2022 Frames Received
|
||||
2024 Percent Compression Out
|
||||
2026 Percent Compression In
|
||||
2028 CRC Errors
|
||||
2030 Timeout Errors
|
||||
2032 Serial Overrun Errors
|
||||
2034 Alignment Errors
|
||||
2036 Buffer Overrun Errors
|
||||
2038 Total Errors
|
||||
2040 Bytes Transmitted/Sec
|
||||
2042 Bytes Received/Sec
|
||||
2044 Frames Transmitted/Sec
|
||||
2046 Frames Received/Sec
|
||||
2048 Total Errors/Sec
|
||||
2050 RAS Total
|
||||
2052 Total Connections
|
||||
2054 Terminal Services Session
|
||||
2056 Input WdBytes
|
||||
2058 Input WdFrames
|
||||
2060 Input WaitForOutBuf
|
||||
2062 Input Frames
|
||||
2064 Input Bytes
|
||||
2066 Input Compressed Bytes
|
||||
2068 Input Compress Flushes
|
||||
2070 Input Errors
|
||||
2072 Input Timeouts
|
||||
2074 Input Async Frame Error
|
||||
2076 Input Async Overrun
|
||||
2078 Input Async Overflow
|
||||
2080 Input Async Parity Error
|
||||
2082 Input Transport Errors
|
||||
2084 Output WdBytes
|
||||
2086 Output WdFrames
|
||||
2088 Output WaitForOutBuf
|
||||
2090 Output Frames
|
||||
2092 Output Bytes
|
||||
2094 Output Compressed Bytes
|
||||
2096 Output Compress Flushes
|
||||
2098 Output Errors
|
||||
2100 Output Timeouts
|
||||
2102 Output Async Frame Error
|
||||
2104 Output Async Overrun
|
||||
2106 Output Async Overflow
|
||||
2108 Output Async Parity Error
|
||||
2110 Output Transport Errors
|
||||
2112 Total WdBytes
|
||||
2114 Total WdFrames
|
||||
2116 Total WaitForOutBuf
|
||||
2118 Total Frames
|
||||
2120 Total Bytes
|
||||
2122 Total Compressed Bytes
|
||||
2124 Total Compress Flushes
|
||||
2126 Total Errors
|
||||
2128 Total Timeouts
|
||||
2130 Total Async Frame Error
|
||||
2132 Total Async Overrun
|
||||
2134 Total Async Overflow
|
||||
2136 Total Async Parity Error
|
||||
2138 Total Transport Errors
|
||||
2140 Total Protocol Cache Reads
|
||||
2142 Total Protocol Cache Hits
|
||||
2144 Total Protocol Cache Hit Ratio
|
||||
2146 Protocol Bitmap Cache Reads
|
||||
2148 Protocol Bitmap Cache Hits
|
||||
2150 Protocol Bitmap Cache Hit Ratio
|
||||
2152 Protocol Glyph Cache Reads
|
||||
2154 Protocol Glyph Cache Hits
|
||||
2156 Protocol Glyph Cache Hit Ratio
|
||||
2158 Protocol Brush Cache Reads
|
||||
2160 Protocol Brush Cache Hits
|
||||
2162 Protocol Brush Cache Hit Ratio
|
||||
2164 Protocol Save Screen Bitmap Cache Reads
|
||||
2166 Protocol Save Screen Bitmap Cache Hits
|
||||
2168 Protocol Save Screen Bitmap Cache Hit Ratio
|
||||
2170 Input Compression Ratio
|
||||
2172 Output Compression Ratio
|
||||
2174 Total Compression Ratio
|
||||
2176 Terminal Services
|
||||
2178 Total Sessions
|
||||
2180 Active Sessions
|
||||
2182 Inactive Sessions
|
||||
2184 Distributed Transaction Coordinator
|
||||
2186 Active Transactions
|
||||
2188 Committed Transactions
|
||||
2190 Aborted Transactions
|
||||
2192 In Doubt Transactions
|
||||
2194 Active Transactions Maximum
|
||||
2196 Force Committed Transactions
|
||||
2198 Force Aborted Transactions
|
||||
2200 Response Time -- Minimum
|
||||
2202 Response Time -- Average
|
||||
2204 Response Time -- Maximum
|
||||
2206 Transactions/sec
|
||||
2208 Committed Transactions/sec
|
||||
2210 Aborted Transactions/sec
|
||||
2212 Indexing Service
|
||||
2214 Word lists
|
||||
2216 Saved indexes
|
||||
2218 Index size (MB)
|
||||
2220 Files to be indexed
|
||||
2222 Unique keys
|
||||
2224 Running queries
|
||||
2226 Merge progress
|
||||
2228 # documents indexed
|
||||
2230 Total # documents
|
||||
2232 Total # of queries
|
||||
2234 Deferred for indexing
|
||||
2236 Indexing Service Filter
|
||||
2238 Total indexing speed (MB/hr)
|
||||
2240 Binding time (msec)
|
||||
2242 Indexing speed (MB/hr)
|
||||
2244 Http Indexing Service
|
||||
2246 Cache items
|
||||
2248 % Cache hits
|
||||
2250 Total cache accesses 1
|
||||
2252 % Cache misses
|
||||
2254 Total cache accesses 2
|
||||
2256 Active queries
|
||||
2258 Total queries
|
||||
2260 Queries per minute
|
||||
2262 Current requests queued
|
||||
2264 Total requests rejected
|
||||
2266 WMI Objects
|
||||
2268 HiPerf Classes
|
||||
2270 HiPerf Validity
|
||||
2272 BatteryStatus
|
||||
2274 ChargeRate
|
||||
2276 DischargeRate
|
||||
2278 RemainingCapacity
|
||||
2280 Tag
|
||||
2282 Voltage
|
Loading…
Reference in New Issue