summaryrefslogtreecommitdiff
path: root/devel/libgtop2/files/patch-aj
diff options
context:
space:
mode:
Diffstat (limited to 'devel/libgtop2/files/patch-aj')
-rw-r--r--devel/libgtop2/files/patch-aj205
1 files changed, 38 insertions, 167 deletions
diff --git a/devel/libgtop2/files/patch-aj b/devel/libgtop2/files/patch-aj
index 101a29532b41..b7ea24ebab8e 100644
--- a/devel/libgtop2/files/patch-aj
+++ b/devel/libgtop2/files/patch-aj
@@ -1,6 +1,8 @@
---- sysdeps/freebsd/proclist.c.orig Thu May 27 09:04:05 1999
-+++ sysdeps/freebsd/proclist.c Fri Dec 22 18:02:59 2000
-@@ -88,9 +88,20 @@
+--- sysdeps/freebsd/proclist.c.orig Thu May 27 23:04:05 1999
++++ sysdeps/freebsd/proclist.c Sun Sep 7 20:37:30 2003
+@@ -86,13 +86,24 @@
+ pids = glibtop_realloc_r (server, pids, count * sizeof (unsigned));
+ /* Copy the pids over to this chain */
for (i=j=0; i < count; i++) {
+#if __FreeBSD_version >= 500013
+#define XXX_P_STAT ki_stat
@@ -24,8 +26,10 @@
- pids [j++] = (unsigned) pinfo[i].kp_proc.p_pid;
+ pids [j++] = (unsigned) pinfo[i].XXX_P_PID;
} /* end for */
---- sysdeps/freebsd/procstate.c.orig Sun Feb 10 09:30:11 2002
-+++ sysdeps/freebsd/procstate.c Mon Apr 29 11:42:22 2002
+ /* Set the fields in buf */
+ buf->number = j;
+--- sysdeps/freebsd/procstate.c.orig Sun Oct 17 03:01:39 1999
++++ sysdeps/freebsd/procstate.c Sun Sep 7 20:37:30 2003
@@ -28,7 +28,7 @@
#include <glibtop_suid.h>
@@ -121,8 +125,10 @@
buf->flags |= (1L << GLIBTOP_PROC_STATE_STATE);
}
--- sysdeps/freebsd/procuid.c.orig Fri Sep 17 06:08:07 1999
-+++ sysdeps/freebsd/procuid.c Thu Feb 15 01:16:50 2001
-@@ -86,13 +86,42 @@
++++ sysdeps/freebsd/procuid.c Sun Sep 7 20:37:30 2003
+@@ -84,17 +84,46 @@
+ return;
+ }
- buf->uid = pinfo [0].kp_eproc.e_pcred.p_ruid;
- buf->euid = pinfo [0].kp_eproc.e_pcred.p_svuid;
@@ -175,39 +181,13 @@
+ buf->nice = pinfo [0].XXX_P_NICE;
+ buf->priority = pinfo [0].XXX_P_PRIORITY;
---- sysdeps/freebsd/procmem.c.orig Thu May 27 13:56:49 1999
-+++ sysdeps/freebsd/procmem.c Wed Dec 27 10:16:26 2000
-@@ -139,2 +139,18 @@
-
-+#if __FreeBSD_version >= 500013
-+
-+#define XXX_P_VMSPACE ki_vmspace
-+
-+ buf->rss_rlim = pinfo [0].ki_rssize;
-+
-+ buf->vsize = buf->size = (u_int64_t) pagetok
-+ (pinfo [0].ki_tsize + pinfo [0].ki_dsize + pinfo[0].ki_ssize)
-+ << LOG1024;
-+ buf->resident = buf->rss = (u_int64_t) pagetok
-+ (pinfo [0].ki_rssize) << LOG1024;
-+
-+#else
-+
-+#define XXX_P_VMSPACE kp_proc.p_vmspace
-+
- if (kvm_read (server->machine.kd,
-@@ -156,2 +172,3 @@
- (vms->vm_rssize) << LOG1024;
-+#endif
-
-@@ -160,3 +177,3 @@
- if (kvm_read (server->machine.kd,
-- (unsigned long) pinfo [0].kp_proc.p_vmspace,
-+ (unsigned long) pinfo [0].XXX_P_VMSPACE,
- (char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace)) {
---- sysdeps/freebsd/procsignal.c.orig Sun Feb 13 15:31:39 2000
-+++ sysdeps/freebsd/procsignal.c Wed Dec 27 10:22:28 2000
-@@ -69,2 +69,18 @@
+ /* Set the flags for the data we're about to return*/
+ buf->flags = _glibtop_sysdeps_proc_uid;
+--- sysdeps/freebsd/procsignal.c.orig Mon Feb 14 06:31:39 2000
++++ sysdeps/freebsd/procsignal.c Sun Sep 7 20:37:30 2003
+@@ -67,11 +67,27 @@
+ return;
+ }
+#if __FreeBSD_version >= 500013
+
@@ -226,147 +206,38 @@
+#endif
+
/* signal: mask of pending signals.
-@@ -73,3 +89,3 @@
+ * pinfo [0].kp_proc.p_siglist
+ */
#if (defined(__NetBSD__) && (NSIG > 32)) || (__FreeBSD_version >= 400011)
- buf->signal [0] = pinfo [0].kp_proc.p_siglist.__bits[0];
+ buf->signal [0] = pinfo [0].XXX_P_SIGLIST.__bits[0];
#else
-@@ -82,3 +98,3 @@
+ buf->signal [0] = pinfo [0].kp_proc.p_siglist;
+ #endif
+@@ -80,7 +96,7 @@
+ * pinfo [0].kp_proc.p_sigmask
+ */
#if (defined(__NetBSD__) && (NSIG > 32)) || (__FreeBSD_version >= 400011)
- buf->blocked [0] = pinfo [0].kp_proc.p_sigmask.__bits[0];
+ buf->blocked [0] = pinfo [0].XXX_P_SIGMASK.__bits[0];
#else
-@@ -91,3 +107,3 @@
+ buf->blocked [0] = pinfo [0].kp_proc.p_sigmask;
+ #endif
+@@ -89,7 +105,7 @@
+ * pinfo [0].kp_proc.p_sigignore
+ */
#if (defined(__NetBSD__) && (NSIG > 32)) || (__FreeBSD_version >= 400011)
- buf->sigignore [0] = pinfo [0].kp_proc.p_sigignore.__bits[0];
+ buf->sigignore [0] = pinfo [0].XXX_P_SIGIGNORE.__bits[0];
#else
-@@ -100,3 +116,3 @@
+ buf->sigignore [0] = pinfo [0].kp_proc.p_sigignore;
+ #endif
+@@ -98,7 +114,7 @@
+ * pinfo [0].kp_proc.p_sigcatch
+ */
#if (defined(__NetBSD__) && (NSIG > 32)) || (__FreeBSD_version >= 400011)
- buf->sigcatch [0] = pinfo [0].kp_proc.p_sigcatch.__bits[0];
+ buf->sigcatch [0] = pinfo [0].XXX_P_SIGCATCH.__bits[0];
#else
---- sysdeps/freebsd/prockernel.c.orig Sat Oct 16 13:31:43 1999
-+++ sysdeps/freebsd/prockernel.c Wed Dec 27 10:50:19 2000
-@@ -36,8 +36,2 @@
+ buf->sigcatch [0] = pinfo [0].kp_proc.p_sigcatch;
#endif
--#if !defined(__bsdi__) && !(defined(__FreeBSD__) && defined(__alpha__))
--#include <machine/pcb.h>
--#endif
--#if defined(__FreeBSD__) && !defined(__alpha__)
--#include <machine/tss.h>
--#endif
-
-@@ -80,10 +74,4 @@
- struct kinfo_proc *pinfo;
-- struct user *u_addr = (struct user *)USRSTACK;
-- struct pstats pstats;
-- struct pcb pcb;
- int count;
-
-- char filename [BUFSIZ];
-- struct stat statb;
--
- glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_KERNEL), 0);
-@@ -103,7 +91,21 @@
-
-- buf->nwchan = (unsigned long) pinfo [0].kp_proc.p_wchan &~ KERNBASE;
-+#if __FreeBSD_version >= 500013
-+
-+#define XXX_P_WCHAN ki_wchan
-+#define XXX_P_WMESG ki_wmesg
-+#define XXX_E_WMESG ki_wmesg
-+
-+#else
-+
-+#define XXX_P_WCHAN kp_proc.p_wchan
-+#define XXX_P_WMESG kp_proc.p_wmesg
-+#define XXX_E_WMESG kp_eproc.e_wmesg
-+
-+#endif
-+
-+ buf->nwchan = (unsigned long) pinfo [0].XXX_P_WCHAN &~ KERNBASE;
- buf->flags |= (1L << GLIBTOP_PROC_KERNEL_NWCHAN);
-
-- if (pinfo [0].kp_proc.p_wchan && pinfo [0].kp_proc.p_wmesg) {
-- strncpy (buf->wchan, pinfo [0].kp_eproc.e_wmesg,
-+ if (pinfo [0].XXX_P_WCHAN && pinfo [0].XXX_P_WMESG) {
-+ strncpy (buf->wchan, pinfo [0].XXX_E_WMESG,
- sizeof (buf->wchan) - 1);
-@@ -115,70 +117,8 @@
-
-- /* Taken from `saveuser ()' in `/usr/src/bin/ps/ps.c'. */
--
-- /* [FIXME]: /usr/include/sys/user.h tells me that the user area
-- * may or may not be at the same kernel address in all
-- * processes, but I don't see any way to get that address.
-- * Since `ps' simply uses its own address, I think it's
-- * safe to do this here, too. */
--
-- /* NOTE: You need to mount the /proc filesystem to make
-- * `kvm_uread' work. */
--
-- sprintf (filename, "/proc/%d/mem", (int) pid);
-- if (stat (filename, &statb)) return;
--
-- glibtop_suid_enter (server);
--
-- if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
-- kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
-- (unsigned long) &u_addr->u_stats,
-- (char *) &pstats, sizeof (pstats)) == sizeof (pstats))
-- {
-- /*
-- * The u-area might be swapped out, and we can't get
-- * at it because we have a crashdump and no swap.
-- * If it's here fill in these fields, otherwise, just
-- * leave them 0.
-- */
--
-- buf->min_flt = (u_int64_t) pstats.p_ru.ru_minflt;
-- buf->maj_flt = (u_int64_t) pstats.p_ru.ru_majflt;
-- buf->cmin_flt = (u_int64_t) pstats.p_cru.ru_minflt;
-- buf->cmaj_flt = (u_int64_t) pstats.p_cru.ru_majflt;
--
-- buf->flags |= _glibtop_sysdeps_proc_kernel_pstats;
-- }
--
-- if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
-- kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
-- (unsigned long) &u_addr->u_pcb,
-- (char *) &pcb, sizeof (pcb)) == sizeof (pcb))
-- {
--#ifdef __FreeBSD__
--#ifndef __alpha__
--#if (__FreeBSD_version >= 300003)
-- buf->kstk_esp = (u_int64_t) pcb.pcb_esp;
-- buf->kstk_eip = (u_int64_t) pcb.pcb_eip;
--#else
-- buf->kstk_esp = (u_int64_t) pcb.pcb_ksp;
-- buf->kstk_eip = (u_int64_t) pcb.pcb_pc;
--#endif
--#else
-- /*xxx FreeBSD/Alpha? */
--#endif
--#else
-- buf->kstk_esp = (u_int64_t) pcb.pcb_tss.tss_esp0;
--#ifdef __bsdi__
-- buf->kstk_eip = (u_int64_t) pcb.pcb_tss.tss_eip;
--#else
-- buf->kstk_eip = (u_int64_t) pcb.pcb_tss.__tss_eip;
--#endif
--
-- buf->flags |= _glibtop_sysdeps_proc_kernel_pcb;
--#endif
-- }
--
-- /* Taken from `wchan ()' in `/usr/src/bin/ps/print.c'. */
--
-- glibtop_suid_leave (server);
-+ /* XXX: the code here was, quite frankly, junk, and almost
-+ * certainly wrong - remove it all, leave these fields
-+ * unpopulated, and give up until such time as the right
-+ * code is produced for both FreeBSD 4.x and 5.x
-+ */
-+ return;
- }