patches/libgtop-01-solaris.diff
changeset 15227 50d0d5d77fb7
parent 13197 7c6e36efe0d8
--- a/patches/libgtop-01-solaris.diff	Wed Feb 25 16:57:15 2009 +0000
+++ b/patches/libgtop-01-solaris.diff	Wed Feb 25 18:21:25 2009 +0000
@@ -1,7 +1,7 @@
-diff -Nrup libgtop-2.23.90.orig/include/glibtop/procstate.h libgtop-2.23.90.mod/include/glibtop/procstate.h
---- libgtop-2.23.90.orig/include/glibtop/procstate.h	2008-05-24 06:13:20.000000000 +0800
-+++ libgtop-2.23.90.mod/include/glibtop/procstate.h	2008-08-20 10:26:31.847117000 +0800
-@@ -69,6 +69,13 @@ struct _glibtop_proc_state
+diff -urN libgtop-2.25.91/include/glibtop/procstate.h ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/include/glibtop/procstate.h
+--- libgtop-2.25.91/include/glibtop/procstate.h	2008-05-23 22:13:20.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/include/glibtop/procstate.h	2009-02-25 17:16:38.052247000 +0000
+@@ -69,6 +69,13 @@
      int has_cpu;
      int processor;
      int last_processor;
@@ -15,9 +15,9 @@
  };
  
  void glibtop_get_proc_state(glibtop_proc_state *buf, pid_t pid);
-diff -Nrup libgtop-2.23.90.orig/procmap.c libgtop-2.23.90.mod/procmap.c
---- libgtop-2.23.90.orig/procmap.c	1970-01-01 08:00:00.000000000 +0800
-+++ libgtop-2.23.90.mod/procmap.c	2008-08-20 19:05:25.738052000 +0800
+diff -urN libgtop-2.25.91/procmap.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/procmap.c
+--- libgtop-2.25.91/procmap.c	1970-01-01 00:00:00.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/procmap.c	2009-02-25 17:16:38.053079000 +0000
 @@ -0,0 +1,252 @@
 +/* Copyright (C) 1998-99 Martin Baulig
 +   This file is part of LibGTop 1.0.
@@ -271,10 +271,29 @@
 +	s_close(fd);
 +	return entry;
 +}
-diff -Nrup libgtop-2.23.90.orig/sysdeps/common/mountlist.c libgtop-2.23.90.mod/sysdeps/common/mountlist.c
---- libgtop-2.23.90.orig/sysdeps/common/mountlist.c	2008-05-24 06:13:22.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/common/mountlist.c	2008-08-20 11:03:42.561589000 +0800
-@@ -591,6 +591,17 @@ glibtop_get_mountlist_s (glibtop *server
+diff -urN libgtop-2.25.91/sysdeps/common/fsusage.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/common/fsusage.c
+--- libgtop-2.25.91/sysdeps/common/fsusage.c	2008-05-23 22:13:22.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/common/fsusage.c	2009-02-25 17:25:57.183257000 +0000
+@@ -149,6 +149,15 @@
+ #define _glibtop_get_fsusage_read_write(S, B, P) \
+ 	_glibtop_freebsd_get_fsusage_read_write(S, B, P)
+ 
++#elif (defined(sun) || defined(__sun))
++G_GNUC_INTERNAL void
++_glibtop_sun_get_fsusage_read_write(glibtop *server,
++					glibtop_fsusage *buf,
++					const char *path);
++
++#define _glibtop_get_fsusage_read_write(S, B, P) \
++	_glibtop_sun_get_fsusage_read_write(S, B, P)
++
+ #else /* default fallback */
+ #warning glibtop_get_fsusage .read .write are not implemented.
+ static inline void
+diff -urN libgtop-2.25.91/sysdeps/common/mountlist.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/common/mountlist.c
+--- libgtop-2.25.91/sysdeps/common/mountlist.c	2008-05-23 22:13:22.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/common/mountlist.c	2009-02-25 17:16:38.053543000 +0000
+@@ -591,6 +591,17 @@
  
  	for (cur = &entries[0]; cur != NULL; cur = next) {
  
@@ -292,21 +311,23 @@
  		if(all_fs || !ignore_mount_entry(cur)) {
  			/* add a new glibtop_mountentry */
  			glibtop_mountentry e;
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/Makefile.am libgtop-2.23.90.mod/sysdeps/solaris/Makefile.am
---- libgtop-2.23.90.orig/sysdeps/solaris/Makefile.am	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/Makefile.am	2008-08-20 21:07:30.398511000 +0800
-@@ -9,6 +9,7 @@ libgtop_sysdeps_2_0_la_SOURCES	= open.c 
+diff -urN libgtop-2.25.91/sysdeps/solaris/Makefile.am ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/Makefile.am
+--- libgtop-2.25.91/sysdeps/solaris/Makefile.am	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/Makefile.am	2009-02-25 17:27:23.462319000 +0000
+@@ -8,7 +8,8 @@
+ 				  proclist.c procstate.c procuid.c \
  				  proctime.c procmem.c procsignal.c \
  				  prockernel.c procsegment.c procargs.c \
- 				  procopenfiles.c \
-+                                  sysinfo.c procwd.c glibtop_private.c procaffinity.c \
+-				  procopenfiles.c \
++				  procopenfiles.c sysinfo.c fsusage.c procwd.c \
++				  glibtop_private.c procaffinity.c \
  				  procmap.c netload.c ppp.c procdata.c netlist.c
  
  libgtop_sysdeps_2_0_la_LDFLAGS	= $(LT_VERSION_INFO)
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/cpu.c libgtop-2.23.90.mod/sysdeps/solaris/cpu.c
---- libgtop-2.23.90.orig/sysdeps/solaris/cpu.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/cpu.c	2008-08-20 11:06:54.437929000 +0800
-@@ -34,6 +34,7 @@ static const unsigned long _glibtop_sysd
+diff -urN libgtop-2.25.91/sysdeps/solaris/cpu.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/cpu.c
+--- libgtop-2.25.91/sysdeps/solaris/cpu.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/cpu.c	2009-02-25 17:16:38.055204000 +0000
+@@ -34,6 +34,7 @@
  
  static const unsigned long _glibtop_sysdeps_cpu_all =
  (1L << GLIBTOP_CPU_TOTAL) + (1L << GLIBTOP_CPU_USER) +
@@ -314,10 +335,113 @@
  (1L << GLIBTOP_CPU_SYS) + (1L << GLIBTOP_CPU_IDLE) +
  (1L << GLIBTOP_XCPU_TOTAL) + (1L << GLIBTOP_XCPU_USER) +
  (1L << GLIBTOP_XCPU_SYS) + (1L << GLIBTOP_XCPU_IDLE) +
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/glibtop_machine.h libgtop-2.23.90.mod/sysdeps/solaris/glibtop_machine.h
---- libgtop-2.23.90.orig/sysdeps/solaris/glibtop_machine.h	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/glibtop_machine.h	2008-08-20 11:48:46.031067000 +0800
-@@ -61,14 +61,14 @@ struct _glibtop_machine
+diff -urN libgtop-2.25.91/sysdeps/solaris/fsusage.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/fsusage.c
+--- libgtop-2.25.91/sysdeps/solaris/fsusage.c	1970-01-01 00:00:00.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/fsusage.c	2009-02-25 17:20:33.608888000 +0000
+@@ -0,0 +1,99 @@
++#include <config.h>
++#include <glibtop.h>
++#include <glibtop/error.h>
++#include <glibtop/fsusage.h>
++#include <glibtop/union.h>
++
++#include "glibtop_private.h"
++
++#include <glib.h>
++
++#include <unistd.h>
++#include <kstat.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <sys/statvfs.h>
++
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++
++G_GNUC_INTERNAL void 
++_glibtop_sun_get_fsusage_read_write(glibtop *server,
++				      glibtop_fsusage *buf,
++				      const char *path)
++{
++        struct statvfs64       statvfsbuf;
++        char            ksname[KSTAT_STRLEN + 1];
++    	kstat_ctl_t * const kctl = server->machine.kc;
++	kstat_t		*ksp;
++     	kstat_io_t     	kio;
++	kstat_named_t   *kread, *kwrite;
++	int i;
++	
++        /*
++         *  get a kstat handle and update the user's kstat chain
++         */
++        if( kctl == NULL ){ 
++                glibtop_warn_io_r (server, "kstat_open ()");
++                return;
++        }
++	
++        /* make sure we have current data */  
++	while( kstat_chain_update( kctl ) != 0 )
++                ;
++		
++         for (ksp = kctl->kc_chain, i =0; ksp != NULL; ksp = ksp->ks_next, i++) {  
++		if (ksp->ks_type == KSTAT_TYPE_IO && strcmp(ksp->ks_class,"disk") == 0) { 
++              		kstat_read(kctl, ksp, &kio);  
++               		buf->read +=  kio.nread;       
++			buf->write +=  kio.nwritten;
++		}  
++	}
++#if 0
++	/* these codes keep here, because they are a good way to get the 
++	   fsusage information, but at the moment, the interfaces used 
++	   are not public or stable. so let's use them when public...
++	  */
++        /*
++         *  get a kstat handle and update the user's kstat chain
++         */
++        if( kctl == NULL ){
++                glibtop_warn_io_r (server, "kstat_open ()");
++                return;
++        }
++	   
++	while( kstat_chain_update( kctl ) != 0 )
++                ;
++
++	if (statvfs64(path, &statvfsbuf) != 0) {
++                glibtop_warn_io_r (server, "kstat_open ()");
++		return;
++	}        
++	snprintf(ksname, KSTAT_STRLEN, "%s%lx", VOPSTATS_STR,
++                        	statvfsbuf.f_fsid);
++
++       	/*
++         *  traverse the kstat chain
++         *  to find the appropriate statistics
++         */
++        if( (ksp = kstat_lookup( kctl,
++                       "unix", 0, ksname )) == NULL ) {
++               	return;
++        }
++        if( kstat_read( kctl, ksp, NULL ) == -1 ) {
++               	return;
++        }
++
++	kread = (kstat_named_t *)kstat_data_lookup(ksp,"read_bytes");
++        if( kread != NULL ) {
++               	buf->read = kread->value.ull;
++        }
++
++        kwrite = (kstat_named_t *)kstat_data_lookup(ksp,"write_bytes");
++        if( kwrite != NULL ) {
++               	buf->write = kwrite->value.ull;
++        }
++#endif
++        buf->flags |= (1 << GLIBTOP_FSUSAGE_READ) | (1 << GLIBTOP_FSUSAGE_WRITE);
++}
+diff -urN libgtop-2.25.91/sysdeps/solaris/glibtop_machine.h ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/glibtop_machine.h
+--- libgtop-2.25.91/sysdeps/solaris/glibtop_machine.h	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/glibtop_machine.h	2009-02-25 17:16:38.055426000 +0000
+@@ -61,14 +61,14 @@
      int pagesize;		/* in bits to shift, ie. 2^pagesize gives Kb */
      int ticks;			/* clock ticks, as returned by sysconf() */
      unsigned long long boot;	/* boot time, although it's ui32 in kstat */
@@ -339,9 +463,9 @@
  };
  
  G_END_DECLS
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/glibtop_private.c libgtop-2.23.90.mod/sysdeps/solaris/glibtop_private.c
---- libgtop-2.23.90.orig/sysdeps/solaris/glibtop_private.c	1970-01-01 08:00:00.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/glibtop_private.c	2008-08-20 11:50:10.409057000 +0800
+diff -urN libgtop-2.25.91/sysdeps/solaris/glibtop_private.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/glibtop_private.c
+--- libgtop-2.25.91/sysdeps/solaris/glibtop_private.c	1970-01-01 00:00:00.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/glibtop_private.c	2009-02-25 17:16:38.055744000 +0000
 @@ -0,0 +1,203 @@
 +#include <config.h>
 +#include <glibtop.h>
@@ -546,10 +670,10 @@
 +	buf[ret] = '\0';
 +	return TRUE;
 +}
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/glibtop_private.h libgtop-2.23.90.mod/sysdeps/solaris/glibtop_private.h
---- libgtop-2.23.90.orig/sysdeps/solaris/glibtop_private.h	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/glibtop_private.h	2008-08-20 11:50:43.153956000 +0800
-@@ -60,6 +60,8 @@ int glibtop_get_proc_credentials_s(glibt
+diff -urN libgtop-2.25.91/sysdeps/solaris/glibtop_private.h ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/glibtop_private.h
+--- libgtop-2.25.91/sysdeps/solaris/glibtop_private.h	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/glibtop_private.h	2009-02-25 17:16:38.057019000 +0000
+@@ -60,6 +60,8 @@
  /* Reread kstat chains */
  void glibtop_get_kstats(glibtop *);
  
@@ -558,10 +682,10 @@
  G_END_DECLS
  
  #endif /* __GLIBTOP_PRIVATE_H__ */
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/glibtop_server.h libgtop-2.23.90.mod/sysdeps/solaris/glibtop_server.h
---- libgtop-2.23.90.orig/sysdeps/solaris/glibtop_server.h	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/glibtop_server.h	2008-08-20 20:27:29.536004000 +0800
-@@ -29,9 +29,15 @@ G_BEGIN_DECLS
+diff -urN libgtop-2.25.91/sysdeps/solaris/glibtop_server.h ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/glibtop_server.h
+--- libgtop-2.25.91/sysdeps/solaris/glibtop_server.h	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/glibtop_server.h	2009-02-25 17:16:38.057265000 +0000
+@@ -29,9 +29,15 @@
  #define GLIBTOP_SUID_SWAP		0
  #define GLIBTOP_SUID_UPTIME		0
  #define GLIBTOP_SUID_LOADAVG		0
@@ -577,7 +701,7 @@
  #define GLIBTOP_SUID_PROCLIST		0
  #define GLIBTOP_SUID_PROC_STATE		0
  #define GLIBTOP_SUID_PROC_UID		0
-@@ -44,7 +50,10 @@ G_BEGIN_DECLS
+@@ -44,7 +50,10 @@
  #define GLIBTOP_SUID_PROC_MAP		0
  #define GLIBTOP_SUID_NETLOAD		0
  #define GLIBTOP_SUID_NETLIST		0
@@ -588,10 +712,10 @@
  
  G_END_DECLS
  
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/msg_limits.c libgtop-2.23.90.mod/sysdeps/solaris/msg_limits.c
---- libgtop-2.23.90.orig/sysdeps/solaris/msg_limits.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/msg_limits.c	2008-08-20 11:54:47.408687000 +0800
-@@ -37,14 +37,24 @@ static const unsigned long _glibtop_sysd
+diff -urN libgtop-2.25.91/sysdeps/solaris/msg_limits.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/msg_limits.c
+--- libgtop-2.25.91/sysdeps/solaris/msg_limits.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/msg_limits.c	2009-02-25 17:16:38.058081000 +0000
+@@ -37,14 +37,24 @@
  (1L << GLIBTOP_IPC_MSGMNB) + (1L << GLIBTOP_IPC_MSGMNI) +
  (1L << GLIBTOP_IPC_MSGTQL);
  #else
@@ -617,7 +741,7 @@
  {
  #if GLIBTOP_SOLARIS_RELEASE < 51000
  
-@@ -59,8 +69,13 @@ _glibtop_init_msg_limits_p (glibtop *ser
+@@ -59,8 +69,13 @@
  
  /* Provides information about sysv ipc limits. */
  
@@ -631,9 +755,9 @@
  {
  #if GLIBTOP_SOLARIS_RELEASE < 51000
  
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/netload.c libgtop-2.23.90.mod/sysdeps/solaris/netload.c
---- libgtop-2.23.90.orig/sysdeps/solaris/netload.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/netload.c	2008-08-20 20:11:42.601468000 +0800
+diff -urN libgtop-2.25.91/sysdeps/solaris/netload.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/netload.c
+--- libgtop-2.25.91/sysdeps/solaris/netload.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/netload.c	2009-02-25 17:16:38.059013000 +0000
 @@ -37,6 +37,17 @@
  
  #include <net/if.h>
@@ -652,7 +776,7 @@
  
  static const unsigned long _glibtop_sysdeps_netload =
  (1L << GLIBTOP_NETLOAD_ERRORS_IN) +
-@@ -89,6 +100,72 @@ _glibtop_init_netload_s (glibtop *server
+@@ -89,6 +100,72 @@
  	_glibtop_sysdeps_netload_packets;
  }
  
@@ -725,7 +849,7 @@
  static int
  solaris_stats(glibtop *server,
  		glibtop_netload *buf,
-@@ -245,6 +322,13 @@ glibtop_get_netload_s (glibtop *server, 
+@@ -245,6 +322,13 @@
  	    buf->subnet = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr.s_addr;
  	    buf->flags |= (1L << GLIBTOP_NETLOAD_SUBNET);
  	}
@@ -739,7 +863,7 @@
  	close (skfd);
      }
  
-@@ -254,4 +338,7 @@ glibtop_get_netload_s (glibtop *server, 
+@@ -254,4 +338,7 @@
       
      solaris_stats(server, buf, interface);
  
@@ -747,10 +871,10 @@
 +    get_ipv6(server, buf, interface);
 +#endif /* HAVE_IFADDRS_H */
  }
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/open.c libgtop-2.23.90.mod/sysdeps/solaris/open.c
---- libgtop-2.23.90.orig/sysdeps/solaris/open.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/open.c	2008-08-20 18:55:17.944520000 +0800
-@@ -209,34 +209,34 @@ glibtop_open_s (glibtop *server, const c
+diff -urN libgtop-2.25.91/sysdeps/solaris/open.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/open.c
+--- libgtop-2.25.91/sysdeps/solaris/open.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/open.c	2009-02-25 17:16:38.060014000 +0000
+@@ -209,34 +209,34 @@
  	    }
      }
  
@@ -811,9 +935,9 @@
 +//#endif
      server->machine.me = getpid();
  }
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/procaffinity.c libgtop-2.23.90.mod/sysdeps/solaris/procaffinity.c
---- libgtop-2.23.90.orig/sysdeps/solaris/procaffinity.c	1970-01-01 08:00:00.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/procaffinity.c	2008-08-20 20:39:47.771308000 +0800
+diff -urN libgtop-2.25.91/sysdeps/solaris/procaffinity.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procaffinity.c
+--- libgtop-2.25.91/sysdeps/solaris/procaffinity.c	1970-01-01 00:00:00.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procaffinity.c	2009-02-25 17:16:38.060320000 +0000
 @@ -0,0 +1,84 @@
 +/* Copyright (C) 2007 Joe Marcus Clarke <[email protected]>
 +   This file is part of LibGTop 2.
@@ -899,10 +1023,10 @@
 +*/
 +}
 +
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/procmap.c libgtop-2.23.90.mod/sysdeps/solaris/procmap.c
---- libgtop-2.23.90.orig/sysdeps/solaris/procmap.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/procmap.c	2008-08-20 19:06:32.593851000 +0800
-@@ -54,9 +54,16 @@ glibtop_map_entry *
+diff -urN libgtop-2.25.91/sysdeps/solaris/procmap.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procmap.c
+--- libgtop-2.25.91/sysdeps/solaris/procmap.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procmap.c	2009-02-25 17:16:38.061314000 +0000
+@@ -54,9 +54,16 @@
  glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf,	pid_t pid)
  {
     	int fd, i, nmaps, pr_err, heap;
@@ -920,7 +1044,7 @@
  #else
  	prmap_t *maps;
  #endif
-@@ -123,16 +130,44 @@ glibtop_get_proc_map_s (glibtop *server,
+@@ -123,16 +130,44 @@
  	buf->total = nmaps * sizeof(glibtop_map_entry);
  	entry = g_malloc0(buf->total);
  
@@ -970,7 +1094,7 @@
  	   	entry[i].start = maps[i].pr_vaddr;
  		entry[i].end = maps[i].pr_vaddr + maps[i].pr_size;
  
-@@ -177,25 +212,40 @@ glibtop_get_proc_map_s (glibtop *server,
+@@ -177,25 +212,40 @@
  		   entry[i].flags |= (1L << GLIBTOP_MAP_ENTRY_FILENAME);
  		}
  		else
@@ -1030,9 +1154,9 @@
  	buf->flags = _glibtop_sysdeps_proc_map;
  	s_close(fd);
  	return entry;
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/procmem.c libgtop-2.23.90.mod/sysdeps/solaris/procmem.c
---- libgtop-2.23.90.orig/sysdeps/solaris/procmem.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/procmem.c	2008-08-20 19:09:08.485871000 +0800
+diff -urN libgtop-2.25.91/sysdeps/solaris/procmem.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procmem.c
+--- libgtop-2.25.91/sysdeps/solaris/procmem.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procmem.c	2009-02-25 17:16:38.061600000 +0000
 @@ -22,12 +22,14 @@
  #include <config.h>
  #include <glibtop.h>
@@ -1049,7 +1173,7 @@
  
  /* Init function. */
  
-@@ -61,5 +63,31 @@ glibtop_get_proc_mem_s (glibtop *server,
+@@ -61,5 +63,31 @@
  	buf->size = buf->vsize = psinfo.pr_size << pagesize << 10;
  	buf->resident = buf->rss = psinfo.pr_rssize << pagesize << 10;
  #endif
@@ -1081,10 +1205,10 @@
 + 
  	buf->flags = _glibtop_sysdeps_proc_mem;
  }
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/procstate.c libgtop-2.23.90.mod/sysdeps/solaris/procstate.c
---- libgtop-2.23.90.orig/sysdeps/solaris/procstate.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/procstate.c	2008-08-20 22:19:57.697233000 +0800
-@@ -62,6 +62,26 @@ glibtop_get_proc_state_s (glibtop *serve
+diff -urN libgtop-2.25.91/sysdeps/solaris/procstate.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procstate.c
+--- libgtop-2.25.91/sysdeps/solaris/procstate.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procstate.c	2009-02-25 17:16:38.062411000 +0000
+@@ -62,6 +62,26 @@
  	buf->gid = psinfo.pr_egid;
  	buf->ruid = psinfo.pr_uid;
  	buf->rgid = psinfo.pr_gid;
@@ -1111,10 +1235,10 @@
  
  #ifdef HAVE_PROCFS_H
  	switch(psinfo.pr_lwp.pr_state)
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/proctime.c libgtop-2.23.90.mod/sysdeps/solaris/proctime.c
---- libgtop-2.23.90.orig/sysdeps/solaris/proctime.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/proctime.c	2008-08-20 19:38:04.212493000 +0800
-@@ -43,6 +43,11 @@ void
+diff -urN libgtop-2.25.91/sysdeps/solaris/proctime.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/proctime.c
+--- libgtop-2.25.91/sysdeps/solaris/proctime.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/proctime.c	2009-02-25 17:16:38.062715000 +0000
+@@ -43,6 +43,11 @@
  glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf,
  			 pid_t pid)
  {
@@ -1126,7 +1250,7 @@
  	struct prusage prusage;
          GTimeVal time;
  
-@@ -52,19 +57,27 @@ glibtop_get_proc_time_s (glibtop *server
+@@ -52,19 +57,27 @@
  
  	if(pid)
  	{
@@ -1159,9 +1283,9 @@
  	}
  
  	buf->flags = _glibtop_sysdeps_proc_time;
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/procwd.c libgtop-2.23.90.mod/sysdeps/solaris/procwd.c
---- libgtop-2.23.90.orig/sysdeps/solaris/procwd.c	1970-01-01 08:00:00.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/procwd.c	2008-08-20 19:17:28.084980000 +0800
+diff -urN libgtop-2.25.91/sysdeps/solaris/procwd.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procwd.c
+--- libgtop-2.25.91/sysdeps/solaris/procwd.c	1970-01-01 00:00:00.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/procwd.c	2009-02-25 17:16:38.062977000 +0000
 @@ -0,0 +1,98 @@
 +/* Copyright (C) 2007 BenoƮt Dejean
 +   This file is part of LibGTop 2.
@@ -1261,10 +1385,10 @@
 +	return (char**) g_ptr_array_free(dirs, FALSE);
 +}
 +
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/sem_limits.c libgtop-2.23.90.mod/sysdeps/solaris/sem_limits.c
---- libgtop-2.23.90.orig/sysdeps/solaris/sem_limits.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/sem_limits.c	2008-08-20 20:21:27.584506000 +0800
-@@ -39,14 +39,22 @@ static const unsigned long _glibtop_sysd
+diff -urN libgtop-2.25.91/sysdeps/solaris/sem_limits.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/sem_limits.c
+--- libgtop-2.25.91/sysdeps/solaris/sem_limits.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/sem_limits.c	2009-02-25 17:16:38.063802000 +0000
+@@ -39,14 +39,22 @@
  (1L << GLIBTOP_IPC_SEMUSZ) + (1L << GLIBTOP_IPC_SEMVMX) +
  (1L << GLIBTOP_IPC_SEMAEM);
  #else
@@ -1288,7 +1412,7 @@
  {
  #if GLIBTOP_SOLARIS_RELEASE < 51000
  
-@@ -61,8 +69,13 @@ _glibtop_init_sem_limits_p (glibtop *ser
+@@ -61,8 +69,13 @@
  
  /* Provides information about sysv sem limits. */
  
@@ -1302,9 +1426,9 @@
  {
  #if GLIBTOP_SOLARIS_RELEASE < 51000
     	kvm_t *kd = server->machine.kd;
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/shm_limits.c libgtop-2.23.90.mod/sysdeps/solaris/shm_limits.c
---- libgtop-2.23.90.orig/sysdeps/solaris/shm_limits.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/shm_limits.c	2008-08-20 21:46:13.220805000 +0800
+diff -urN libgtop-2.25.91/sysdeps/solaris/shm_limits.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/shm_limits.c
+--- libgtop-2.25.91/sysdeps/solaris/shm_limits.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/shm_limits.c	2009-02-25 17:16:38.064069000 +0000
 @@ -30,7 +30,9 @@
  static const struct nlist nlst[] = { {"glibtop_shm_limits"}, {NULL} };
  
@@ -1316,7 +1440,7 @@
  #else
  # if GLIBTOP_SOLARIS_RELEASE < 50900
  static const unsigned long _glibtop_sysdeps_shm_limits =
-@@ -45,8 +47,13 @@ static const unsigned long _glibtop_sysd
+@@ -45,8 +47,13 @@
  
  /* Init function. */
  
@@ -1330,7 +1454,7 @@
  {
  #if GLIBTOP_SOLARIS_RELEASE < 51000
  
-@@ -61,8 +68,13 @@ _glibtop_init_shm_limits_p (glibtop *ser
+@@ -61,8 +68,13 @@
  
  /* Provides information about sysv ipc limits. */
  
@@ -1344,10 +1468,10 @@
  {
  #if GLIBTOP_SOLARIS_RELEASE < 51000
  
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/siglist.c libgtop-2.23.90.mod/sysdeps/solaris/siglist.c
---- libgtop-2.23.90.orig/sysdeps/solaris/siglist.c	2008-05-24 06:13:24.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/siglist.c	2008-08-20 19:22:53.411487000 +0800
-@@ -61,6 +61,7 @@ const glibtop_signame glibtop_sys_siglis
+diff -urN libgtop-2.25.91/sysdeps/solaris/siglist.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/siglist.c
+--- libgtop-2.25.91/sysdeps/solaris/siglist.c	2008-05-23 22:13:24.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/siglist.c	2009-02-25 17:16:38.064867000 +0000
+@@ -61,6 +61,7 @@
     { 35, "SIGTHAW", "Checkpoint Thaw" },
     { 36, "SIGCANCEL","Thread Cancelation" },
     { 37, "SIGLOST", "Resource Lost" },
@@ -1355,7 +1479,7 @@
     { 38, "SIGRTMIN","First Realtime Signal" },
     { 39, "SIGRTMIN+1", "Second Realtime Signal" },
     { 40, "SIGRTMIN+2", "Third Realtime Signal" },
-@@ -69,5 +70,30 @@ const glibtop_signame glibtop_sys_siglis
+@@ -69,5 +70,30 @@
     { 43, "SIGRTMAX-2", "Third Last Realtime Signal" },
     { 44, "SIGRTMAX-1", "Second Last Realtime Signal" },
     { 45, "SIGRTMAX", "Last Realtime Signal" },
@@ -1386,9 +1510,9 @@
 +#endif
     {  0, NULL, NULL }
  };
-diff -Nrup libgtop-2.23.90.orig/sysdeps/solaris/sysinfo.c libgtop-2.23.90.mod/sysdeps/solaris/sysinfo.c
---- libgtop-2.23.90.orig/sysdeps/solaris/sysinfo.c	1970-01-01 08:00:00.000000000 +0800
-+++ libgtop-2.23.90.mod/sysdeps/solaris/sysinfo.c	2008-08-20 19:23:21.791056000 +0800
+diff -urN libgtop-2.25.91/sysdeps/solaris/sysinfo.c ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/sysinfo.c
+--- libgtop-2.25.91/sysdeps/solaris/sysinfo.c	1970-01-01 00:00:00.000000000 +0000
++++ ../SUNWlibgtop-2.25.91.hacked/libgtop-2.25.91/sysdeps/solaris/sysinfo.c	2009-02-25 17:16:38.065095000 +0000
 @@ -0,0 +1,48 @@
 +/* $Id: sysinfo.c,v 1.22 2004/11/28 01:32:55 bdejean Exp $ */
 +