Blame sysdeps/sun4/glibtop_machine.h

Packit d37888
/* Copyright (C) 1998-99 Martin Baulig
Packit d37888
   This file is part of LibGTop 1.0.
Packit d37888
Packit d37888
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
Packit d37888
Packit d37888
   LibGTop is free software; you can redistribute it and/or modify it
Packit d37888
   under the terms of the GNU General Public License as published by
Packit d37888
   the Free Software Foundation; either version 2 of the License,
Packit d37888
   or (at your option) any later version.
Packit d37888
Packit d37888
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
Packit d37888
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
Packit d37888
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
Packit d37888
   for more details.
Packit d37888
Packit d37888
   You should have received a copy of the GNU General Public License
Packit d37888
   along with LibGTop; see the file COPYING. If not, write to the
Packit d37888
   Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Packit d37888
   Boston, MA 02110-1301, USA.
Packit d37888
*/
Packit d37888
Packit d37888
#ifndef __GLIBTOP_MACHINE_H__
Packit d37888
#define __GLIBTOP_MACHINE_H__
Packit d37888
Packit d37888
/* make sure param.h gets loaded with KERNEL defined to get PZERO & NZERO */
Packit d37888
#define KERNEL
Packit d37888
#include <sys/param.h>
Packit d37888
#undef KERNEL
Packit d37888
Packit d37888
#include <stdio.h>
Packit d37888
#include <kvm.h>
Packit d37888
#include <nlist.h>
Packit d37888
#include <math.h>
Packit d37888
#include <sys/dir.h>
Packit d37888
#include <sys/user.h>
Packit d37888
#include <sys/proc.h>
Packit d37888
#include <sys/dk.h>
Packit d37888
#include <sys/vm.h>
Packit d37888
#include <sys/file.h>
Packit d37888
#include <sys/time.h>
Packit d37888
#include <vm/page.h>
Packit d37888
Packit d37888
#ifdef solbourne
Packit d37888
#include <sys/syscall.h>
Packit d37888
#endif
Packit d37888
Packit d37888
#include "loadavg.h"
Packit d37888
Packit d37888
G_BEGIN_DECLS
Packit d37888
Packit d37888
/* Older versions of SunOS don't have a typedef for pid_t.
Packit d37888
   Hopefully this will catch all those cases without causing other problems.
Packit d37888
 */
Packit d37888
#ifndef __sys_stdtypes_h
Packit d37888
typedef int pid_t;
Packit d37888
#endif
Packit d37888
Packit d37888
/* definitions for indices in the nlist array */
Packit d37888
#define X_AVENRUN	0
Packit d37888
#define X_CCPU		1
Packit d37888
#define X_MPID		2
Packit d37888
#define X_NPROC		3
Packit d37888
#define X_PROC		4
Packit d37888
#define X_TOTAL		5
Packit d37888
#define X_CP_TIME	6
Packit d37888
#define X_PAGES		7
Packit d37888
#define X_EPAGES	8
Packit d37888
#define X_SHMINFO	9
Packit d37888
#define X_MSGINFO	10
Packit d37888
#define X_SEMINFO	11
Packit d37888
Packit d37888
#ifdef MULTIPROCESSOR
Packit d37888
#define X_NCPU		12
Packit d37888
#define X_MP_TIME	13
Packit d37888
#endif
Packit d37888
Packit d37888
/* Log base 2 of 1024 is 10 (2^10 == 1024) */
Packit d37888
#define LOG1024         10
Packit d37888
Packit d37888
typedef struct _glibtop_machine		glibtop_machine;
Packit d37888
Packit d37888
struct _glibtop_machine
Packit d37888
{
Packit d37888
	uid_t uid, euid;		/* Real and effective user id */
Packit d37888
	gid_t gid, egid;		/* Real and effective group id */
Packit d37888
	int nlist_count;		/* Number of symbols in the nlist */
Packit d37888
	int ncpu;			/* Number of CPUs we have */
Packit d37888
	int nproc;			/* Number of entries in the process array */
Packit d37888
	size_t ptable_size;		/* Size of process array. */
Packit d37888
	unsigned long ptable_offset;	/* Offset of process array in kernel. */
Packit d37888
	struct proc *proc_table;	/* Process array. */
Packit d37888
	unsigned long pages, epages;
Packit d37888
	struct page *physpage;
Packit d37888
	int bytesize, count;
Packit d37888
	int pageshift;			/* log base 2 of the pagesize */
Packit d37888
	kvm_t *kd;
Packit d37888
};
Packit d37888
Packit d37888
/* Those functions are used internally in libgtop */
Packit d37888
Packit d37888
#ifdef _IN_LIBGTOP
Packit d37888
Packit d37888
extern struct nlist _glibtop_nlist[];
Packit d37888
Packit d37888
int _glibtop_check_nlist (void *server, register struct nlist *nlst);
Packit d37888
int _glibtop_getkval (void *void_server, unsigned long offset, int *ptr,
Packit d37888
		      int size, char *refstr);
Packit d37888
void _glibtop_read_proc_table (void *void_server);
Packit d37888
struct proc *_glibtop_find_pid (void *void_server, pid_t pid);
Packit d37888
Packit d37888
#endif
Packit d37888
Packit d37888
G_END_DECLS
Packit d37888
Packit d37888
#endif