+2006-11-16 Henry Zhang <[email protected]>
authorhenryz
Thu, 16 Nov 2006 07:11:03 +0000
changeset 8569 bcdeb66705af
parent 8568 333eb618eecf
child 8570 a8ef20a581d4
+2006-11-16 Henry Zhang <[email protected]> + + * gnome-system-monitor.spec: add patch comment. + * libgtop.spec: add patch comment. +
ChangeLog
gnome-system-monitor.spec
libgtop.spec
patches/gnome-system-monitor-01-solaris.diff
patches/libgtop-01-solaris.diff
--- a/ChangeLog	Thu Nov 16 06:57:12 2006 +0000
+++ b/ChangeLog	Thu Nov 16 07:11:03 2006 +0000
@@ -1,3 +1,9 @@
+
+2006-11-16  Henry Zhang <[email protected]>
+
+        * gnome-system-monitor.spec: add patch comment.
+        * libgtop.spec: add patch comment.
+
 2006-11-16  Harry Lu  <[email protected]>
 
         * gnome-menus.spec: fix a typo in patch comment.
--- a/gnome-system-monitor.spec	Thu Nov 16 06:57:12 2006 +0000
+++ b/gnome-system-monitor.spec	Thu Nov 16 07:11:03 2006 +0000
@@ -17,6 +17,9 @@
 Summary:      Simple process monitor 
 Source:       http://ftp.gnome.org/pub/GNOME/sources/%{name}/2.16/%{name}-%{version}.tar.bz2 
 Source1:      gnome-system-monitor.1.gz
+#owner:henryz date:2006-11-15 type:feature
+#This patch make libgtop run at Solaris
+Patch1:       gnome-system-monitor-01-solaris.diff
 URL:          http://www.gnome.org
 BuildRoot:    %{_tmppath}/%{name}-%{version}-build
 Autoreqprov:  on
@@ -35,8 +38,6 @@
 Requires:      libwnck >= %{libwnck_version}
 Requires:      libgtop >= %{libgtop_version}
 
-Patch1: gnome-system-monitor-01-solaris.diff
-
 %description
 Gnome-system-monitor is a simple process and system monitor for Gnome.
 
@@ -105,6 +106,8 @@
 %{_mandir}/man1/*
 
 %changelog
+* Thur. Nov. 16 2006 - [email protected]
+- add patch comments.
 * Mon Oct 02 2006 - [email protected]
 - Bump to 2.16.1.
 * Wed Sep 06 2006 - [email protected]
--- a/libgtop.spec	Thu Nov 16 06:57:12 2006 +0000
+++ b/libgtop.spec	Thu Nov 16 07:11:03 2006 +0000
@@ -17,6 +17,8 @@
 Summary:      libgtop System Information Library
 Source:       http://ftp.gnome.org/pub/GNOME/sources/libgtop/2.14/libgtop-%{version}.tar.bz2
 URL:          http://www.gnome.org
+#owner:henryz date:2006-11-15 type:feature
+#This patch make libgtop run at Solaris
 Patch1:       libgtop-01-solaris.diff
 BuildRoot:    %{_tmppath}/%{name}-%{version}-build
 Docdir:       %{_defaultdocdir}/dir
@@ -104,6 +106,8 @@
 %{_libdir}/*.so
 
 %changelog
+* Thur. Nov. 16 2006 - [email protected]
+- add patch comments.
 * Tue Sep 26 2006 - [email protected]
 - Bump to 2.14.4.
 * Wed Sep 06 2006 - [email protected]
--- a/patches/gnome-system-monitor-01-solaris.diff	Thu Nov 16 06:57:12 2006 +0000
+++ b/patches/gnome-system-monitor-01-solaris.diff	Thu Nov 16 07:11:03 2006 +0000
@@ -1,6 +1,6 @@
-diff -Nrup gnome-system-monitor-2.16.0/src/callbacks.c gnome-system-monitor-2.16.0.mod/src/callbacks.c
---- gnome-system-monitor-2.16.0/src/callbacks.c	2006-07-14 03:24:49.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/callbacks.c	2006-09-19 20:45:12.854554000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/callbacks.c gnome-system-monitor-2.16.1.mod/src/callbacks.c
+--- gnome-system-monitor-2.16.1/src/callbacks.c	2006-07-14 03:24:49.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/callbacks.c	2006-11-13 20:26:32.071084000 +0800
 @@ -452,7 +452,11 @@ cb_timeout (gpointer data)
  		return FALSE;
  	}
@@ -14,9 +14,9 @@
  }
  
  
-diff -Nrup gnome-system-monitor-2.16.0/src/callbacks.h gnome-system-monitor-2.16.0.mod/src/callbacks.h
---- gnome-system-monitor-2.16.0/src/callbacks.h	2005-07-13 22:35:04.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/callbacks.h	2006-09-19 20:46:01.672038000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/callbacks.h gnome-system-monitor-2.16.1.mod/src/callbacks.h
+--- gnome-system-monitor-2.16.1/src/callbacks.h	2005-07-13 22:35:04.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/callbacks.h	2006-11-13 20:26:32.071324000 +0800
 @@ -25,64 +25,64 @@
  #include "procman.h"
  #include <libgnomevfs/gnome-vfs.h>
@@ -131,9 +131,9 @@
  
  
  #endif /* _PROCMAN_CALLBACKS_H_ */
-diff -Nrup gnome-system-monitor-2.16.0/src/favorites.h gnome-system-monitor-2.16.0.mod/src/favorites.h
---- gnome-system-monitor-2.16.0/src/favorites.h	2005-03-17 17:23:13.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/favorites.h	2006-09-19 20:46:48.381302000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/favorites.h gnome-system-monitor-2.16.1.mod/src/favorites.h
+--- gnome-system-monitor-2.16.1/src/favorites.h	2005-03-17 17:23:13.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/favorites.h	2006-11-13 20:26:32.076242000 +0800
 @@ -26,15 +26,15 @@
  
  #include "procman.h"
@@ -157,9 +157,9 @@
 +G_GNUC_INTERNAL void		create_blacklist_dialog (ProcData *procdata) ;
  
  #endif
-diff -Nrup gnome-system-monitor-2.16.0/src/interface.c gnome-system-monitor-2.16.0.mod/src/interface.c
---- gnome-system-monitor-2.16.0/src/interface.c	2006-08-18 00:50:42.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/interface.c	2006-09-19 20:55:33.695148000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/interface.c gnome-system-monitor-2.16.1.mod/src/interface.c
+--- gnome-system-monitor-2.16.1/src/interface.c	2006-08-18 00:50:42.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/interface.c	2006-11-13 20:26:32.065079000 +0800
 @@ -240,12 +240,13 @@ create_sys_view (ProcData *procdata)
  	GtkWidget *cpu_box, *mem_box, *net_box;
  	GtkWidget *cpu_hbox, *mem_hbox, *net_hbox;
@@ -569,9 +569,9 @@
  
  	procdata->net_graph = net_graph;
  
-diff -Nrup gnome-system-monitor-2.16.0/src/interface.h gnome-system-monitor-2.16.0.mod/src/interface.h
---- gnome-system-monitor-2.16.0/src/interface.h	2005-03-17 22:23:42.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/interface.h	2006-09-19 20:57:01.020077000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/interface.h gnome-system-monitor-2.16.1.mod/src/interface.h
+--- gnome-system-monitor-2.16.1/src/interface.h	2005-03-17 22:23:42.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/interface.h	2006-11-13 20:26:32.065343000 +0800
 @@ -25,9 +25,9 @@
  #include "procman.h"
  
@@ -586,12 +586,12 @@
 +G_GNUC_INTERNAL GtkWidget *	make_title_label (const char *text) ;
  
  #endif /* _PROCMAN_INTERFACE_H_ */
-diff -Nrup gnome-system-monitor-2.16.0/src/load-graph.c gnome-system-monitor-2.16.0.mod/src/load-graph.c
---- gnome-system-monitor-2.16.0/src/load-graph.c	2006-08-18 00:50:03.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/load-graph.c	2006-09-19 21:03:32.426217000 +0800
-@@ -350,6 +350,21 @@ get_net (LoadGraph *g)
- 
- 	ifnames = glibtop_get_netlist(&netlist);
+diff -Nrup gnome-system-monitor-2.16.1/src/load-graph.c gnome-system-monitor-2.16.1.mod/src/load-graph.c
+--- gnome-system-monitor-2.16.1/src/load-graph.c	2006-08-18 00:50:03.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/load-graph.c	2006-11-13 20:26:32.073407000 +0800
+@@ -348,6 +348,20 @@ get_net (LoadGraph *g)
+ 	float din, dout;
+ 	gchar *text1, *text2;
  
 +        /* we have to optimize the performance of libgtop, because in some low level machine,
 +           to update the information will occupy too much cpu.
@@ -606,14 +606,13 @@
 +          */
 + 
 +        netlist.flags = 1;
-+
-+
++	
+ 	ifnames = glibtop_get_netlist(&netlist);
+ 
  	for (i = 0; i < netlist.number; ++i)
- 	{
- 		glibtop_netload netload;
-diff -Nrup gnome-system-monitor-2.16.0/src/load-graph.h gnome-system-monitor-2.16.0.mod/src/load-graph.h
---- gnome-system-monitor-2.16.0/src/load-graph.h	2006-01-02 17:28:58.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/load-graph.h	2006-09-19 21:05:02.782031000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/load-graph.h gnome-system-monitor-2.16.1.mod/src/load-graph.h
+--- gnome-system-monitor-2.16.1/src/load-graph.h	2006-01-02 17:28:58.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/load-graph.h	2006-11-13 20:26:32.073549000 +0800
 @@ -34,35 +34,35 @@ struct _LoadGraphLabels
  
  
@@ -666,9 +665,9 @@
  
  
  #endif /* _PROCMAN_LOAD_GRAPH_H_ */
-diff -Nrup gnome-system-monitor-2.16.0/src/memmaps.h gnome-system-monitor-2.16.0.mod/src/memmaps.h
---- gnome-system-monitor-2.16.0/src/memmaps.h	2005-03-17 17:23:13.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/memmaps.h	2006-09-19 21:05:27.253230000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/memmaps.h gnome-system-monitor-2.16.1.mod/src/memmaps.h
+--- gnome-system-monitor-2.16.1/src/memmaps.h	2005-03-17 17:23:13.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/memmaps.h	2006-11-13 20:26:32.076831000 +0800
 @@ -4,6 +4,6 @@
  #include <glib/gtypes.h>
  #include "procman.h"
@@ -677,9 +676,9 @@
 +G_GNUC_INTERNAL void 		create_memmaps_dialog (ProcData *procdata) ;
  
  #endif /* _PROCMAN_MEMMAPS_H_ */
-diff -Nrup gnome-system-monitor-2.16.0/src/openfiles.h gnome-system-monitor-2.16.0.mod/src/openfiles.h
---- gnome-system-monitor-2.16.0/src/openfiles.h	2005-03-17 17:23:13.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/openfiles.h	2006-09-19 21:05:49.467441000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/openfiles.h gnome-system-monitor-2.16.1.mod/src/openfiles.h
+--- gnome-system-monitor-2.16.1/src/openfiles.h	2005-03-17 17:23:13.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/openfiles.h	2006-11-13 20:26:32.065979000 +0800
 @@ -5,7 +5,7 @@
  
  #include "procman.h"
@@ -689,9 +688,9 @@
  
  
  #endif
-diff -Nrup gnome-system-monitor-2.16.0/src/prettytable.h gnome-system-monitor-2.16.0.mod/src/prettytable.h
---- gnome-system-monitor-2.16.0/src/prettytable.h	2005-02-16 23:40:01.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/prettytable.h	2006-09-19 21:06:13.130205000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/prettytable.h gnome-system-monitor-2.16.1.mod/src/prettytable.h
+--- gnome-system-monitor-2.16.1/src/prettytable.h	2005-02-16 23:40:01.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/prettytable.h	2006-11-13 20:26:32.066976000 +0800
 @@ -6,10 +6,10 @@
  #include "procman.h"
  
@@ -707,9 +706,9 @@
 +G_GNUC_INTERNAL void 		pretty_table_free (PrettyTable *pretty_table) ;
  
  #endif /* _PROCMAN_PRETTYTABLE_H_ */
-diff -Nrup gnome-system-monitor-2.16.0/src/procactions.c gnome-system-monitor-2.16.0.mod/src/procactions.c
---- gnome-system-monitor-2.16.0/src/procactions.c	2006-06-25 03:29:03.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/procactions.c	2006-09-19 21:07:39.444095000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/procactions.c gnome-system-monitor-2.16.1.mod/src/procactions.c
+--- gnome-system-monitor-2.16.1/src/procactions.c	2006-06-25 03:29:03.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/procactions.c	2006-11-13 20:26:32.068354000 +0800
 @@ -128,6 +128,14 @@ kill_single_process (GtkTreeModel *model
  	if (!info)
  		return;
@@ -725,9 +724,9 @@
  	error = kill (info->pid, args->signal);
  
  	/* success */
-diff -Nrup gnome-system-monitor-2.16.0/src/procactions.h gnome-system-monitor-2.16.0.mod/src/procactions.h
---- gnome-system-monitor-2.16.0/src/procactions.h	2005-12-01 21:06:34.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/procactions.h	2006-09-19 21:07:57.071501000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/procactions.h gnome-system-monitor-2.16.1.mod/src/procactions.h
+--- gnome-system-monitor-2.16.1/src/procactions.h	2005-12-01 21:06:34.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/procactions.h	2006-11-13 20:26:32.068652000 +0800
 @@ -21,8 +21,8 @@
  
  #include "procman.h"
@@ -739,9 +738,9 @@
  
  #endif
  
-diff -Nrup gnome-system-monitor-2.16.0/src/procdialogs.c gnome-system-monitor-2.16.0.mod/src/procdialogs.c
---- gnome-system-monitor-2.16.0/src/procdialogs.c	2006-08-09 04:56:59.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/procdialogs.c	2006-09-19 21:11:18.528879000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/procdialogs.c gnome-system-monitor-2.16.1.mod/src/procdialogs.c
+--- gnome-system-monitor-2.16.1/src/procdialogs.c	2006-08-09 04:56:59.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/procdialogs.c	2006-11-13 20:26:32.075288000 +0800
 @@ -333,7 +333,7 @@ smooth_refresh_toggled(GtkToggleButton *
  
  	gboolean toggled;
@@ -772,9 +771,9 @@
  							  100.0, 0.25, 1.0, 1.0);
  	spin_button = gtk_spin_button_new (adjustment, 1.0, 2);
  	g_signal_connect (G_OBJECT (spin_button), "focus_out_event",
-diff -Nrup gnome-system-monitor-2.16.0/src/procdialogs.h gnome-system-monitor-2.16.0.mod/src/procdialogs.h
---- gnome-system-monitor-2.16.0/src/procdialogs.h	2005-12-01 23:46:20.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/procdialogs.h	2006-09-19 21:11:54.270472000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/procdialogs.h gnome-system-monitor-2.16.1.mod/src/procdialogs.h
+--- gnome-system-monitor-2.16.1/src/procdialogs.h	2005-12-01 23:46:20.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/procdialogs.h	2006-11-13 20:26:32.075559000 +0800
 @@ -42,14 +42,14 @@ typedef enum
  } ProcmanActionType;
  
@@ -797,9 +796,9 @@
  
  #endif
  
-diff -Nrup gnome-system-monitor-2.16.0/src/procman.c gnome-system-monitor-2.16.0.mod/src/procman.c
---- gnome-system-monitor-2.16.0/src/procman.c	2006-08-23 05:07:53.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/procman.c	2006-09-19 21:15:25.744860000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/procman.c gnome-system-monitor-2.16.1.mod/src/procman.c
+--- gnome-system-monitor-2.16.1/src/procman.c	2006-09-17 18:05:19.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/procman.c	2006-11-13 20:26:32.074531000 +0800
 @@ -107,7 +107,10 @@ timeouts_changed_cb (GConfClient *client
  		procdata->config.graph_update_interval = gconf_value_get_int (value);
  		procdata->config.graph_update_interval = 
@@ -825,9 +824,9 @@
  	pd->config.disks_update_interval = MAX (pd->config.disks_update_interval, 1000);
  	pd->config.whose_process = CLAMP (pd->config.whose_process, 0, 2);
  	pd->config.current_tab = CLAMP (pd->config.current_tab, 0, 2);
-diff -Nrup gnome-system-monitor-2.16.0/src/procman.h gnome-system-monitor-2.16.0.mod/src/procman.h
---- gnome-system-monitor-2.16.0/src/procman.h	2006-08-18 00:50:43.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/procman.h	2006-09-19 23:23:27.071197000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/procman.h gnome-system-monitor-2.16.1.mod/src/procman.h
+--- gnome-system-monitor-2.16.1/src/procman.h	2006-08-18 00:50:43.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/procman.h	2006-11-13 20:26:32.074782000 +0800
 @@ -181,9 +181,9 @@ struct _ProcData
  	SmoothRefresh  *smooth_refresh;
  };
@@ -841,10 +840,28 @@
  
  
  
-diff -Nrup gnome-system-monitor-2.16.0/src/proctable.c gnome-system-monitor-2.16.0.mod/src/proctable.c
---- gnome-system-monitor-2.16.0/src/proctable.c	2006-08-31 02:11:01.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/proctable.c	2006-09-19 21:31:12.640661000 +0800
-@@ -588,6 +588,10 @@ get_process_memory_info(ProcInfo *info)
+diff -Nrup gnome-system-monitor-2.16.1/src/proctable.c gnome-system-monitor-2.16.1.mod/src/proctable.c
+--- gnome-system-monitor-2.16.1/src/proctable.c	2006-08-31 02:11:01.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/proctable.c	2006-11-13 20:45:40.107468000 +0800
+@@ -556,6 +556,17 @@ static void get_process_memory_writable(
+ 	unsigned i;
+ 
+ 	info->memwritable = 0;
++	/* we have to optimize the performance of libgtop, because update the information will occupy too much cpu.
++ 
++           here I would like to make a little update:set glibtop_proc_map.flags=1,so as to let glibtop_get_proc_map_s()
++           only return the ones this function need: memwritable
++ 
++           we do the check in glibtop_get_proc_map_s(), don't run the others part which don't need by this function,
++	   I think this will accelerate the transaction lots,
++           Also this will not affect the existing codes, because when nobody set glibtop_proc_map.flags,
++           glibtop_get_proc_map() will return all as before. zhua
++	*/
++	buf.flags = 1;
+ 
+ 	maps = glibtop_get_proc_map(&buf, info->pid);
+ 
+@@ -588,6 +599,10 @@ get_process_memory_info(ProcInfo *info)
  	info->memres	= procmem.resident;
  	info->memshared	= procmem.share;
  
@@ -855,7 +872,7 @@
  	info->memxserver = xresources.total_bytes_estimate;
  
  	get_process_memory_writable(info);
-@@ -766,6 +770,28 @@ remove_children_from_tree (ProcData *pro
+@@ -766,6 +781,28 @@ remove_children_from_tree (ProcData *pro
  	} while (gtk_tree_model_iter_next (model, parent));
  }
  
@@ -884,7 +901,7 @@
  
  void
  remove_info_from_tree (ProcInfo *info, ProcData *procdata)
-@@ -781,6 +807,11 @@ remove_info_from_tree (ProcInfo *info, P
+@@ -781,6 +818,11 @@ remove_info_from_tree (ProcInfo *info, P
  
  	if (procdata->selected_process == info)
  		procdata->selected_process = NULL;
@@ -896,7 +913,7 @@
  
  	gtk_tree_store_remove (GTK_TREE_STORE (model), &info->node);
  
-@@ -849,7 +880,7 @@ update_info (ProcData *procdata, ProcInf
+@@ -849,7 +891,7 @@ update_info (ProcData *procdata, ProcInf
  		glibtop_get_proc_uid (&procuid, info->pid);
  		glibtop_get_proc_time (&proctime, info->pid);
  
@@ -905,7 +922,7 @@
  		get_process_user(procdata, info, procstate.uid);
  
  		info->pcpu = (proctime.rtime - info->cpu_time_last) * 100 / total_time;
-@@ -859,6 +890,11 @@ update_info (ProcData *procdata, ProcInf
+@@ -859,6 +901,11 @@ update_info (ProcData *procdata, ProcInf
  		info->nice = procuid.nice;
  
  
@@ -917,7 +934,7 @@
  		model = gtk_tree_view_get_model (GTK_TREE_VIEW (procdata->tree));
  
  		update_info_mutable_cols(GTK_TREE_STORE (model), procdata, info);
-@@ -1018,8 +1054,8 @@ proctable_update_list (ProcData * const 
+@@ -1018,8 +1065,8 @@ proctable_update_list (ProcData * const 
  	/* FIXME: total cpu time elapsed should be calculated on an individual basis here
  	** should probably have a total_time_last gint in the ProcInfo structure */
  	glibtop_get_cpu (&cpu);
@@ -928,9 +945,9 @@
  
  	refresh_list (procdata, pid_list, proclist.number);
  
-diff -Nrup gnome-system-monitor-2.16.0/src/proctable.h gnome-system-monitor-2.16.0.mod/src/proctable.h
---- gnome-system-monitor-2.16.0/src/proctable.h	2006-07-06 17:40:24.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/proctable.h	2006-09-19 23:17:08.369026000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/proctable.h gnome-system-monitor-2.16.1.mod/src/proctable.h
+--- gnome-system-monitor-2.16.1/src/proctable.h	2006-07-06 17:40:24.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/proctable.h	2006-11-13 20:26:32.070490000 +0800
 @@ -26,42 +26,41 @@
  
  enum
@@ -1006,9 +1023,9 @@
 +G_GNUC_INTERNAL char*		make_loadavg_string(void) ;
  
  #endif /* _PROCMAN_PROCTABLE_H_ */
-diff -Nrup gnome-system-monitor-2.16.0/src/selinux.h gnome-system-monitor-2.16.0.mod/src/selinux.h
---- gnome-system-monitor-2.16.0/src/selinux.h	2006-07-09 01:24:40.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/selinux.h	2006-09-19 23:39:46.475989000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/selinux.h gnome-system-monitor-2.16.1.mod/src/selinux.h
+--- gnome-system-monitor-2.16.1/src/selinux.h	2006-07-09 01:24:40.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/selinux.h	2006-11-13 20:26:32.069158000 +0800
 @@ -5,10 +5,10 @@
  
  #include "procman.h"
@@ -1024,9 +1041,9 @@
 +can_show_security_context_column (void)  G_GNUC_CONST;
  
  #endif /* PROCMAN_SELINUX_H_20050525 */
-diff -Nrup gnome-system-monitor-2.16.0/src/smooth_refresh.c gnome-system-monitor-2.16.0.mod/src/smooth_refresh.c
---- gnome-system-monitor-2.16.0/src/smooth_refresh.c	2006-07-12 03:59:32.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/smooth_refresh.c	2006-09-19 21:33:17.380766000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/smooth_refresh.c gnome-system-monitor-2.16.1.mod/src/smooth_refresh.c
+--- gnome-system-monitor-2.16.1/src/smooth_refresh.c	2006-07-12 03:59:32.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/smooth_refresh.c	2006-11-13 20:26:32.072291000 +0800
 @@ -183,8 +183,10 @@ smooth_refresh_get(SmoothRefresh *sm, gu
  	gboolean changed;
  	float pcpu;
@@ -1048,9 +1065,9 @@
  
  	g_assert(sm->interval == *new_interval);
  	g_assert(sm->interval >= *sm->config_interval);
-diff -Nrup gnome-system-monitor-2.16.0/src/smooth_refresh.h gnome-system-monitor-2.16.0.mod/src/smooth_refresh.h
---- gnome-system-monitor-2.16.0/src/smooth_refresh.h	2005-12-28 00:14:59.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/smooth_refresh.h	2006-09-19 21:33:35.753383000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/smooth_refresh.h gnome-system-monitor-2.16.1.mod/src/smooth_refresh.h
+--- gnome-system-monitor-2.16.1/src/smooth_refresh.h	2005-12-28 00:14:59.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/smooth_refresh.h	2006-11-13 20:26:32.072506000 +0800
 @@ -18,8 +18,8 @@ typedef struct _SmoothRefresh SmoothRefr
    @return : initialized SmoothRefresh
   */
@@ -1095,9 +1112,9 @@
  
  
  #endif /* _PROCMAN_SMOOTH_REFRESH */
-diff -Nrup gnome-system-monitor-2.16.0/src/util.h gnome-system-monitor-2.16.0.mod/src/util.h
---- gnome-system-monitor-2.16.0/src/util.h	2006-07-12 03:51:11.000000000 +0800
-+++ gnome-system-monitor-2.16.0.mod/src/util.h	2006-09-19 22:31:15.717581000 +0800
+diff -Nrup gnome-system-monitor-2.16.1/src/util.h gnome-system-monitor-2.16.1.mod/src/util.h
+--- gnome-system-monitor-2.16.1/src/util.h	2006-07-12 03:51:11.000000000 +0800
++++ gnome-system-monitor-2.16.1.mod/src/util.h	2006-11-13 20:26:32.074021000 +0800
 @@ -5,7 +5,7 @@
  #include <libgnomevfs/gnome-vfs-utils.h>
  #include <stddef.h>
--- a/patches/libgtop-01-solaris.diff	Thu Nov 16 06:57:12 2006 +0000
+++ b/patches/libgtop-01-solaris.diff	Thu Nov 16 07:11:03 2006 +0000
@@ -1,6 +1,6 @@
-diff -Nrup libgtop-2.14.3/include/glibtop/error.h libgtop-2.14.3.mod/include/glibtop/error.h
---- libgtop-2.14.3/include/glibtop/error.h	2005-02-15 18:14:59.000000000 +0800
-+++ libgtop-2.14.3.mod/include/glibtop/error.h	2006-09-19 15:57:44.849308000 +0800
+diff -Nrup libgtop-2.14.4/include/glibtop/error.h libgtop-2.14.4.mod/include/glibtop/error.h
+--- libgtop-2.14.4/include/glibtop/error.h	2005-02-15 18:14:59.000000000 +0800
++++ libgtop-2.14.4.mod/include/glibtop/error.h	2006-11-13 20:28:00.229195000 +0800
 @@ -33,20 +33,20 @@
  
  G_BEGIN_DECLS
@@ -36,9 +36,9 @@
  
  G_END_DECLS
  
-diff -Nrup libgtop-2.14.3/include/glibtop/procmem.h libgtop-2.14.3.mod/include/glibtop/procmem.h
---- libgtop-2.14.3/include/glibtop/procmem.h	2006-04-23 02:16:53.000000000 +0800
-+++ libgtop-2.14.3.mod/include/glibtop/procmem.h	2006-09-19 17:28:53.936872000 +0800
+diff -Nrup libgtop-2.14.4/include/glibtop/procmem.h libgtop-2.14.4.mod/include/glibtop/procmem.h
+--- libgtop-2.14.4/include/glibtop/procmem.h	2006-04-23 02:16:53.000000000 +0800
++++ libgtop-2.14.4.mod/include/glibtop/procmem.h	2006-11-13 20:28:00.231664000 +0800
 @@ -53,6 +53,7 @@ struct _glibtop_proc_mem
  	guint64 rss;		/* resident set size */
  	guint64 rss_rlim;	/* current limit (in bytes) of the rss
@@ -47,9 +47,9 @@
  };
  
  void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid);
-diff -Nrup libgtop-2.14.3/src/daemon/daemon.h libgtop-2.14.3.mod/src/daemon/daemon.h
---- libgtop-2.14.3/src/daemon/daemon.h	2006-04-02 17:10:00.000000000 +0800
-+++ libgtop-2.14.3.mod/src/daemon/daemon.h	2006-09-19 17:32:49.755370000 +0800
+diff -Nrup libgtop-2.14.4/src/daemon/daemon.h libgtop-2.14.4.mod/src/daemon/daemon.h
+--- libgtop-2.14.4/src/daemon/daemon.h	2006-04-02 17:10:00.000000000 +0800
++++ libgtop-2.14.4.mod/src/daemon/daemon.h	2006-11-13 20:28:00.073924000 +0800
 @@ -59,17 +59,17 @@ G_BEGIN_DECLS
  #define MSG_BUFSZ		sizeof (struct _glibtop_ipc_message)
  #define MSG_MSGSZ		(MSG_BUFSZ - sizeof (long))
@@ -78,9 +78,9 @@
  
  extern int enable_debug;
  extern int verbose_output;
-diff -Nrup libgtop-2.14.3/sysdeps/common/fsusage.c libgtop-2.14.3.mod/sysdeps/common/fsusage.c
---- libgtop-2.14.3/sysdeps/common/fsusage.c	2005-02-28 16:11:15.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/common/fsusage.c	2006-09-19 17:35:19.379045000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/common/fsusage.c libgtop-2.14.4.mod/sysdeps/common/fsusage.c
+--- libgtop-2.14.4/sysdeps/common/fsusage.c	2005-02-28 16:11:15.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/common/fsusage.c	2006-11-13 20:28:00.187415000 +0800
 @@ -126,10 +126,10 @@ static const unsigned long _glibtop_sysd
   */
  
@@ -122,9 +122,9 @@
  static inline void
  _glibtop_get_fsusage_read_write(glibtop *server,
  				glibtop_fsusage *buf,
-diff -Nrup libgtop-2.14.3/sysdeps/common/mountlist.c libgtop-2.14.3.mod/sysdeps/common/mountlist.c
---- libgtop-2.14.3/sysdeps/common/mountlist.c	2006-06-25 01:24:27.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/common/mountlist.c	2006-09-19 17:39:31.506970000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/common/mountlist.c libgtop-2.14.4.mod/sysdeps/common/mountlist.c
+--- libgtop-2.14.4/sysdeps/common/mountlist.c	2006-06-25 01:24:27.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/common/mountlist.c	2006-11-13 20:28:00.187183000 +0800
 @@ -477,8 +477,10 @@ read_filesystem_list (void)
  
     if (fclose (fp) == EOF)
@@ -137,9 +137,9 @@
    }
  #endif /* MOUNTED_GETMNTENT2.  */
  
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/Makefile.am libgtop-2.14.3.mod/sysdeps/solaris/Makefile.am
---- libgtop-2.14.3/sysdeps/solaris/Makefile.am	2004-11-13 08:53:20.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/Makefile.am	2006-09-19 17:41:18.192524000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/Makefile.am libgtop-2.14.4.mod/sysdeps/solaris/Makefile.am
+--- libgtop-2.14.4/sysdeps/solaris/Makefile.am	2004-11-13 08:53:20.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/Makefile.am	2006-11-13 20:28:00.177639000 +0800
 @@ -8,6 +8,7 @@ libgtop_sysdeps_2_0_la_SOURCES	= open.c 
  				  proclist.c procstate.c procuid.c \
  				  proctime.c procmem.c procsignal.c \
@@ -148,9 +148,9 @@
  				  procmap.c netload.c ppp.c procdata.c netlist.c
  
  libgtop_sysdeps_2_0_la_LDFLAGS	= $(LT_VERSION_INFO)
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/cpu.c libgtop-2.14.3.mod/sysdeps/solaris/cpu.c
---- libgtop-2.14.3/sysdeps/solaris/cpu.c	2005-12-12 18:09:40.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/cpu.c	2006-09-19 17:42:40.723199000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/cpu.c libgtop-2.14.4.mod/sysdeps/solaris/cpu.c
+--- libgtop-2.14.4/sysdeps/solaris/cpu.c	2005-12-12 18:09:40.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/cpu.c	2006-11-13 20:28:00.175637000 +0800
 @@ -36,6 +36,7 @@ static const unsigned long _glibtop_sysd
  
  static const unsigned long _glibtop_sysdeps_cpu_all =
@@ -159,9 +159,9 @@
  (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.14.3/sysdeps/solaris/fsusage.c libgtop-2.14.3.mod/sysdeps/solaris/fsusage.c
---- libgtop-2.14.3/sysdeps/solaris/fsusage.c	1970-01-01 08:00:00.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/fsusage.c	2006-09-19 17:44:12.574124000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/fsusage.c libgtop-2.14.4.mod/sysdeps/solaris/fsusage.c
+--- libgtop-2.14.4/sysdeps/solaris/fsusage.c	1970-01-01 08:00:00.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/fsusage.c	2006-11-13 20:28:00.181048000 +0800
 @@ -0,0 +1,99 @@
 +#include <config.h>
 +#include <glibtop.h>
@@ -262,9 +262,9 @@
 +#endif
 +        buf->flags |= (1 << GLIBTOP_FSUSAGE_READ) | (1 << GLIBTOP_FSUSAGE_WRITE);
 +}
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/glibtop_machine.h libgtop-2.14.3.mod/sysdeps/solaris/glibtop_machine.h
---- libgtop-2.14.3/sysdeps/solaris/glibtop_machine.h	2006-06-25 01:52:28.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/glibtop_machine.h	2006-09-19 17:47:32.238908000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/glibtop_machine.h libgtop-2.14.4.mod/sysdeps/solaris/glibtop_machine.h
+--- libgtop-2.14.4/sysdeps/solaris/glibtop_machine.h	2006-06-25 01:52:28.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/glibtop_machine.h	2006-11-13 20:28:00.176250000 +0800
 @@ -63,14 +63,7 @@ struct _glibtop_machine
      int pagesize;		/* in bits to shift, ie. 2^pagesize gives Kb */
      int ticks;			/* clock ticks, as returned by sysconf() */
@@ -280,9 +280,9 @@
  };
  
  G_END_DECLS
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/glibtop_server.h libgtop-2.14.3.mod/sysdeps/solaris/glibtop_server.h
---- libgtop-2.14.3/sysdeps/solaris/glibtop_server.h	2005-08-12 22:55:37.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/glibtop_server.h	2006-09-19 17:50:53.413486000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/glibtop_server.h libgtop-2.14.4.mod/sysdeps/solaris/glibtop_server.h
+--- libgtop-2.14.4/sysdeps/solaris/glibtop_server.h	2005-08-12 22:55:37.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/glibtop_server.h	2006-11-13 20:28:00.175760000 +0800
 @@ -31,9 +31,15 @@ G_BEGIN_DECLS
  #define GLIBTOP_SUID_SWAP		0
  #define GLIBTOP_SUID_UPTIME		0
@@ -299,9 +299,9 @@
  #define GLIBTOP_SUID_PROCLIST		0
  #define GLIBTOP_SUID_PROC_STATE		0
  #define GLIBTOP_SUID_PROC_UID		0
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/msg_limits.c libgtop-2.14.3.mod/sysdeps/solaris/msg_limits.c
---- libgtop-2.14.3/sysdeps/solaris/msg_limits.c	2006-06-25 01:16:53.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/msg_limits.c	2006-09-19 17:58:06.482092000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/msg_limits.c libgtop-2.14.4.mod/sysdeps/solaris/msg_limits.c
+--- libgtop-2.14.4/sysdeps/solaris/msg_limits.c	2006-06-25 01:16:53.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/msg_limits.c	2006-11-13 20:28:00.176742000 +0800
 @@ -39,14 +39,24 @@ static const unsigned long _glibtop_sysd
  (1L << GLIBTOP_IPC_MSGMNB) + (1L << GLIBTOP_IPC_MSGMNI) +
  (1L << GLIBTOP_IPC_MSGTQL);
@@ -342,10 +342,10 @@
  {
  #if GLIBTOP_SOLARIS_RELEASE < 51000
  
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/netlist.c libgtop-2.14.3.mod/sysdeps/solaris/netlist.c
---- libgtop-2.14.3/sysdeps/solaris/netlist.c	2006-06-25 01:33:05.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/netlist.c	2006-09-19 18:06:30.883466000 +0800
-@@ -41,7 +41,10 @@ glibtop_get_netlist_s (glibtop *server, 
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/netlist.c libgtop-2.14.4.mod/sysdeps/solaris/netlist.c
+--- libgtop-2.14.4/sysdeps/solaris/netlist.c	2006-06-25 01:33:05.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/netlist.c	2006-11-13 20:28:00.176984000 +0800
+@@ -41,7 +41,13 @@ glibtop_get_netlist_s (glibtop *server, 
  {
  	GPtrArray *devices;
  	kstat_t *ksp;
@@ -353,11 +353,14 @@
 +	/* use the kc installed in server, don't need to create again, 
 +      	   it will save some time and improve performance */
 +        kstat_ctl_t * const kc = server->machine.kc;
++	/* use flags as a check condition, if it is 1, check, or not check... zhua */
 +        int check = buf->flags;
++	/* set flags back to 0 */
++	buf->flags = 0; 
  
  	glibtop_init_s (&server, GLIBTOP_SYSDEPS_NETLIST, 0);
  
-@@ -49,9 +52,9 @@ glibtop_get_netlist_s (glibtop *server, 
+@@ -49,9 +55,9 @@ glibtop_get_netlist_s (glibtop *server, 
  
  	devices = g_ptr_array_new();
  
@@ -368,7 +371,7 @@
  		return NULL;
  	}
  	
-@@ -60,12 +63,27 @@ glibtop_get_netlist_s (glibtop *server, 
+@@ -60,12 +66,27 @@ glibtop_get_netlist_s (glibtop *server, 
  		if (strcmp(ksp->ks_class, "net") != 0)
  			continue;
  
@@ -400,9 +403,9 @@
  	buf->flags = _glibtop_sysdeps_netlist;
  
  	g_ptr_array_add(devices, NULL);
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/netload.c libgtop-2.14.3.mod/sysdeps/solaris/netload.c
---- libgtop-2.14.3/sysdeps/solaris/netload.c	2005-12-12 18:09:40.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/netload.c	2006-09-19 18:21:59.974996000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/netload.c libgtop-2.14.4.mod/sysdeps/solaris/netload.c
+--- libgtop-2.14.4/sysdeps/solaris/netload.c	2005-12-12 18:09:40.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/netload.c	2006-11-13 20:28:00.177150000 +0800
 @@ -26,14 +26,247 @@
  #include <glibtop/error.h>
  #include <glibtop/netload.h>
@@ -728,9 +731,9 @@
 +#endif /* HAVE_IFADDRS_H */
  }
 +
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/open.c libgtop-2.14.3.mod/sysdeps/solaris/open.c
---- libgtop-2.14.3/sysdeps/solaris/open.c	2006-06-25 01:39:49.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/open.c	2006-09-19 18:25:54.519665000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/open.c libgtop-2.14.4.mod/sysdeps/solaris/open.c
+--- libgtop-2.14.4/sysdeps/solaris/open.c	2006-06-25 01:39:49.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/open.c	2006-11-13 20:28:00.178413000 +0800
 @@ -211,34 +211,5 @@ glibtop_open_s (glibtop *server, const c
  	    }
      }
@@ -766,18 +769,23 @@
 -#endif
      server->machine.me = getpid();
  }
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/procmap.c libgtop-2.14.3.mod/sysdeps/solaris/procmap.c
---- libgtop-2.14.3/sysdeps/solaris/procmap.c	2006-06-25 01:45:29.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/procmap.c	2006-09-19 18:41:08.104537000 +0800
-@@ -56,6 +56,7 @@ glibtop_map_entry *
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/procmap.c libgtop-2.14.4.mod/sysdeps/solaris/procmap.c
+--- libgtop-2.14.4/sysdeps/solaris/procmap.c	2006-06-25 01:45:29.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/procmap.c	2006-11-13 21:43:09.817707000 +0800
+@@ -56,6 +56,12 @@ glibtop_map_entry *
  glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf,	pid_t pid)
  {
     	int fd, i, nmaps, pr_err, heap;
 +        char filename [BUFSIZ];
++	/* use flags as a check condition, if it is 1, check, or, not check... zhua */
++	int check = buf->flags;
++	/* set flags back to 0 */
++	buf->flags = 0;
++	
  #if GLIBTOP_SOLARIS_RELEASE >= 50600
  	prxmap_t *maps;
  	struct ps_prochandle *Pr = NULL;
-@@ -125,15 +126,9 @@ glibtop_get_proc_map_s (glibtop *server,
+@@ -125,15 +131,29 @@ glibtop_get_proc_map_s (glibtop *server,
  	buf->total = nmaps * sizeof(glibtop_map_entry);
  	entry = g_malloc0(buf->total);
  
@@ -790,11 +798,31 @@
  	for(heap = 0,i = 0; i < nmaps; ++i)
  	{
 -	   	int len;
++		/* take a check to see if we need all information, if not, just get what we need.. 
++		   Also please see comments in get_process_memory_writable() of gnome-system-monitor zhua */
++		if (check == 1)
++		{
++			if(maps[i].pr_mflags & MA_WRITE){
++		   	entry[i].perm |= GLIBTOP_MAP_PERM_WRITE;
++		   	entry[i].size = maps[i].pr_size;
++			}
++		}
++		else 
++		if (check == 2)
++		{
++		        if(maps[i].pr_mflags & MA_SHARED){
++                        entry[i].perm |= GLIBTOP_MAP_PERM_SHARED;
++			/* here use shared_clean to store Shared Memory */
++                        entry[i].shared_clean = maps[i].pr_size; 
++                	}
++		}
++		else {
++		
 +	   	int len, rv;
  
  	   	entry[i].start = maps[i].pr_vaddr;
  		entry[i].end = maps[i].pr_vaddr + maps[i].pr_size;
-@@ -156,8 +151,12 @@ glibtop_get_proc_map_s (glibtop *server,
+@@ -156,8 +176,12 @@ glibtop_get_proc_map_s (glibtop *server,
  		}
  		if(maps[i].pr_mflags & MA_EXEC)
  		   	entry[i].perm |= GLIBTOP_MAP_PERM_EXECUTE;
@@ -809,7 +837,7 @@
  		else
  		   	entry[i].perm |= GLIBTOP_MAP_PERM_PRIVATE;
  		entry[i].flags = _glibtop_sysdeps_map_entry;
-@@ -179,25 +178,24 @@ glibtop_get_proc_map_s (glibtop *server,
+@@ -179,25 +203,25 @@ glibtop_get_proc_map_s (glibtop *server,
  		   entry[i].flags |= (1L << GLIBTOP_MAP_ENTRY_FILENAME);
  		}
  		else
@@ -840,6 +868,7 @@
 +                }
 +
  #endif
++		} /* end of else check */
  	}
  
 -#if GLIBTOP_SOLARIS_RELEASE >= 50600
@@ -850,9 +879,9 @@
  	buf->flags = _glibtop_sysdeps_proc_map;
  	s_close(fd);
  	return entry;
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/procmem.c libgtop-2.14.3.mod/sysdeps/solaris/procmem.c
---- libgtop-2.14.3/sysdeps/solaris/procmem.c	2005-12-12 18:09:40.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/procmem.c	2006-09-19 19:52:07.742086000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/procmem.c libgtop-2.14.4.mod/sysdeps/solaris/procmem.c
+--- libgtop-2.14.4/sysdeps/solaris/procmem.c	2005-12-12 18:09:40.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/procmem.c	2006-11-13 21:57:58.082161000 +0800
 @@ -24,6 +24,7 @@
  #include <config.h>
  #include <glibtop.h>
@@ -861,7 +890,7 @@
  
  #include "glibtop_private.h"
  
-@@ -59,9 +60,26 @@ glibtop_get_proc_mem_s (glibtop *server,
+@@ -59,9 +60,38 @@ glibtop_get_proc_mem_s (glibtop *server,
  #ifdef HAVE_PROCFS_H
  	buf->size = buf->vsize = psinfo.pr_size << 10;
  	buf->resident = buf->rss = psinfo.pr_rssize << 10;
@@ -877,6 +906,18 @@
 +        glibtop_map_entry *maps;
 +        unsigned i;
 +        buf->share = 0;
++	
++	/* we have to optimize the performance of libgtop, because update the information will occupy too much cpu.
++ 
++           here I would like to make a little update:set glibtop_proc_map.flags=1,so as to let glibtop_get_proc_map_s()
++           only return the ones this function need: memwritable
++ 
++           we do the check in glibtop_get_proc_map_s(), don't run the others part which don't need by this function,
++	   I think this will accelerate the transaction lots,
++           Also this will not affect the existing codes, because when nobody set glibtop_proc_map.flags,
++           glibtop_get_proc_map() will return all as before. zhua
++	*/
++	mapbuf.flags = 2;
 + 
 +        maps = glibtop_get_proc_map_s(server, &mapbuf, pid);
 + 
@@ -888,9 +929,9 @@
 + 
  	buf->flags = _glibtop_sysdeps_proc_mem;
  }
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/procopenfiles.c libgtop-2.14.3.mod/sysdeps/solaris/procopenfiles.c
---- libgtop-2.14.3/sysdeps/solaris/procopenfiles.c	1970-01-01 08:00:00.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/procopenfiles.c	2006-09-19 18:47:59.367792000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/procopenfiles.c libgtop-2.14.4.mod/sysdeps/solaris/procopenfiles.c
+--- libgtop-2.14.4/sysdeps/solaris/procopenfiles.c	1970-01-01 08:00:00.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/procopenfiles.c	2006-11-13 20:28:00.181183000 +0800
 @@ -0,0 +1,130 @@
 +/* $Id: procopenfiles.c,v 1.7 2005/12/12 09:38:12 jamesh Exp $ */
 +
@@ -1022,9 +1063,9 @@
 +
 +	return (glibtop_open_files_entry*)g_array_free(entries, FALSE);
 +}
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/proctime.c libgtop-2.14.3.mod/sysdeps/solaris/proctime.c
---- libgtop-2.14.3/sysdeps/solaris/proctime.c	2006-06-25 01:47:34.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/proctime.c	2006-09-19 18:57:06.349706000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/proctime.c libgtop-2.14.4.mod/sysdeps/solaris/proctime.c
+--- libgtop-2.14.4/sysdeps/solaris/proctime.c	2006-06-25 01:47:34.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/proctime.c	2006-11-13 20:28:00.179929000 +0800
 @@ -45,8 +45,12 @@ void
  glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf,
  			 pid_t pid)
@@ -1064,9 +1105,9 @@
  	}
  
  	buf->flags = _glibtop_sysdeps_proc_time;
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/sem_limits.c libgtop-2.14.3.mod/sysdeps/solaris/sem_limits.c
---- libgtop-2.14.3/sysdeps/solaris/sem_limits.c	2006-06-25 01:16:53.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/sem_limits.c	2006-09-19 20:05:46.475921000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/sem_limits.c libgtop-2.14.4.mod/sysdeps/solaris/sem_limits.c
+--- libgtop-2.14.4/sysdeps/solaris/sem_limits.c	2006-06-25 01:16:53.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/sem_limits.c	2006-11-13 20:28:00.179799000 +0800
 @@ -41,14 +41,22 @@ static const unsigned long _glibtop_sysd
  (1L << GLIBTOP_IPC_SEMUSZ) + (1L << GLIBTOP_IPC_SEMVMX) +
  (1L << GLIBTOP_IPC_SEMAEM);
@@ -1105,9 +1146,9 @@
  {
  #if GLIBTOP_SOLARIS_RELEASE < 51000
     	kvm_t *kd = server->machine.kd;
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/shm_limits.c libgtop-2.14.3.mod/sysdeps/solaris/shm_limits.c
---- libgtop-2.14.3/sysdeps/solaris/shm_limits.c	2006-06-25 01:16:53.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/shm_limits.c	2006-09-19 19:10:47.378164000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/shm_limits.c libgtop-2.14.4.mod/sysdeps/solaris/shm_limits.c
+--- libgtop-2.14.4/sysdeps/solaris/shm_limits.c	2006-06-25 01:16:53.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/shm_limits.c	2006-11-13 20:28:00.175514000 +0800
 @@ -32,7 +32,9 @@
  static const struct nlist nlst[] = { {"glibtop_shm_limits"}, {NULL} };
  
@@ -1147,9 +1188,9 @@
  {
  #if GLIBTOP_SOLARIS_RELEASE < 51000
  
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/siglist.c libgtop-2.14.3.mod/sysdeps/solaris/siglist.c
---- libgtop-2.14.3/sysdeps/solaris/siglist.c	2005-12-12 18:09:40.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/siglist.c	2006-09-19 19:12:41.405247000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/siglist.c libgtop-2.14.4.mod/sysdeps/solaris/siglist.c
+--- libgtop-2.14.4/sysdeps/solaris/siglist.c	2005-12-12 18:09:40.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/siglist.c	2006-11-13 20:28:00.180643000 +0800
 @@ -63,6 +63,7 @@ const glibtop_signame glibtop_sys_siglis
     { 35, "SIGTHAW", "Checkpoint Thaw" },
     { 36, "SIGCANCEL","Thread Cancelation" },
@@ -1189,9 +1230,9 @@
 +#endif
     {  0, NULL, NULL }
  };
-diff -Nrup libgtop-2.14.3/sysdeps/solaris/sysinfo.c libgtop-2.14.3.mod/sysdeps/solaris/sysinfo.c
---- libgtop-2.14.3/sysdeps/solaris/sysinfo.c	1970-01-01 08:00:00.000000000 +0800
-+++ libgtop-2.14.3.mod/sysdeps/solaris/sysinfo.c	2006-09-19 19:14:17.410484000 +0800
+diff -Nrup libgtop-2.14.4/sysdeps/solaris/sysinfo.c libgtop-2.14.4.mod/sysdeps/solaris/sysinfo.c
+--- libgtop-2.14.4/sysdeps/solaris/sysinfo.c	1970-01-01 08:00:00.000000000 +0800
++++ libgtop-2.14.4.mod/sysdeps/solaris/sysinfo.c	2006-11-13 20:28:00.181313000 +0800
 @@ -0,0 +1,48 @@
 +/* $Id: sysinfo.c,v 1.22 2004/11/28 01:32:55 bdejean Exp $ */
 +