diff options
author | Joe Marcus Clarke <marcus@FreeBSD.org> | 2004-04-05 03:11:39 +0000 |
---|---|---|
committer | Joe Marcus Clarke <marcus@FreeBSD.org> | 2004-04-05 03:11:39 +0000 |
commit | c4851e78e4f63338fe9a4883e5b7a0370dce27f7 (patch) | |
tree | 3910aa2e83f782cec94f15b4547dadb741cd29ce /devel/libgtop2/files/patch-sysdeps::freebsd::prockernel.c | |
parent | Add gnomekeyring, an API and daemon for managing lists of credentials. This (diff) |
Presenting GNOME 2.6.0. The FreeBSD GNOME Team feels this our best release
ever. It fixes many bugs, and adds some features missing in previous
FreeBSD ports. To help users upgrade from GNOME 2.4, we have constructed an
upgrade FAQ at:
http://www.freebsd.org/gnome/docs/faq26.html
Please read it carefully. GNOME 2.6 packages are also available for all
supported i386 versions of FreeBSD at:
http://www.marcuscom.com/tinderbox/
The FreeBSD GNOME Team would like the thank the following users for their
wonderful testing and patching efforts. We would especially like to thank
Franz Klammer <klammer@webonaut.com> for his wonderful new splash screen.
Without these people, our team, and our team alumni, GNOME on FreeBSD would
not be possible.
Jeremy Messenger <mezz7@cox.net>
Khairil Yusof <kaeru@pd.jaring.my>
Koop Mast <kwm@rainbow-runner.nl>
Simon Barner <barner@in.tum.de>
Tom McLaughlin <tmclaugh@sdf.lonestar.org>
Scott Dodson <sdodson@sdodson.com>
Vladimir Grebenschikov <vova@sw.ru>
Notes
Notes:
svn path=/head/; revision=106172
Diffstat (limited to 'devel/libgtop2/files/patch-sysdeps::freebsd::prockernel.c')
-rw-r--r-- | devel/libgtop2/files/patch-sysdeps::freebsd::prockernel.c | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/devel/libgtop2/files/patch-sysdeps::freebsd::prockernel.c b/devel/libgtop2/files/patch-sysdeps::freebsd::prockernel.c deleted file mode 100644 index 396ae9c8d7b6..000000000000 --- a/devel/libgtop2/files/patch-sysdeps::freebsd::prockernel.c +++ /dev/null @@ -1,145 +0,0 @@ ---- sysdeps/freebsd/prockernel.c.orig Sun Oct 17 03:31:43 1999 -+++ sysdeps/freebsd/prockernel.c Tue Sep 9 11:36:35 2003 -@@ -34,12 +34,6 @@ - #if (!defined __OpenBSD__) && (!defined __bsdi__) - #include <sys/user.h> - #endif --#if !defined(__bsdi__) && !(defined(__FreeBSD__) && defined(__alpha__)) --#include <machine/pcb.h> --#endif --#if defined(__FreeBSD__) && !defined(__alpha__) --#include <machine/tss.h> --#endif - - #include <unistd.h> - #include <fcntl.h> -@@ -78,14 +72,8 @@ - pid_t pid) - { - 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); - - memset (buf, 0, sizeof (glibtop_proc_kernel)); -@@ -98,14 +86,30 @@ - - /* Get the process information */ - pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count); -- if ((pinfo == NULL) || (count != 1)) -- glibtop_error_io_r (server, "kvm_getprocs (%d)", pid); -+ if ((pinfo == NULL) || (count != 1)) { -+ glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid); -+ return; -+ } -+ -+#if __FreeBSD_version >= 500013 -+ -+#define XXX_P_WCHAN ki_wchan -+#define XXX_P_WMESG ki_wmesg -+#define XXX_E_WMESG ki_wmesg - -- buf->nwchan = (unsigned long) pinfo [0].kp_proc.p_wchan &~ KERNBASE; -+#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); - buf->wchan [sizeof (buf->wchan) - 1] = 0; - buf->flags |= (1L << GLIBTOP_PROC_KERNEL_WCHAN); -@@ -113,72 +117,10 @@ - buf->wchan [0] = 0; - } - -- /* 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; - } |