summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2016-01-26 17:44:52 +0100
committerGiampaolo Rodola <g.rodola@gmail.com>2016-01-26 17:44:52 +0100
commit4ceb5ecbf3f086ebe629ca567bafaff7e18ce4ec (patch)
treea982726c5afff68ddff080f03ffd7e1a1836ca17
parentcaf49c3271a7570e772c5df974728e1c91a56a23 (diff)
parent6abfa220499b37222d712997e38bad792410b0a9 (diff)
downloadpsutil-4ceb5ecbf3f086ebe629ca567bafaff7e18ce4ec.tar.gz
Merge pull request #741 from landryb/visa
Get system page size via sysconf()
-rw-r--r--CREDITS4
-rw-r--r--HISTORY.rst1
-rw-r--r--psutil/_psutil_bsd.c30
3 files changed, 17 insertions, 18 deletions
diff --git a/CREDITS b/CREDITS
index b600dea8..691bb1aa 100644
--- a/CREDITS
+++ b/CREDITS
@@ -358,3 +358,7 @@ I: 730
N: Frank Benkstein
W: https://github.com/fbenkstein
I: 732, 733
+
+N: Visa Hankala
+E: visa@openbsd.org
+I: 741
diff --git a/HISTORY.rst b/HISTORY.rst
index 0af06815..29c6b80c 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -13,6 +13,7 @@ Bug tracker at https://github.com/giampaolo/psutil/issues
name(), cwd(), exe(), cmdline() and open_files() methods resulting in
UnicodeDecodeError exceptions. 'surrogateescape' error handler is now
used as a workaround for replacing the corrupted data.
+- #741: [OpenBSD] fix compilation on mips64.
3.4.2 - 2016-01-20
diff --git a/psutil/_psutil_bsd.c b/psutil/_psutil_bsd.c
index b0314818..fbd4f0ef 100644
--- a/psutil/_psutil_bsd.c
+++ b/psutil/_psutil_bsd.c
@@ -96,10 +96,6 @@
#include <utmpx.h>
#include <sys/vnode.h> // for VREG
#include <sys/sched.h> // for CPUSTATES & CP_*
- #include <machine/vmparam.h> // for PAGE_SHIFT
-#define _KERNEL
- #include <uvm/uvm_extern.h>
-#undef _KERNEL
#endif
@@ -454,15 +450,12 @@ psutil_proc_io_counters(PyObject *self, PyObject *args) {
}
-#if defined(__OpenBSD__) || defined(__NetBSD__)
- #define ptoa(x) ((paddr_t)(x) << PAGE_SHIFT)
-#endif
-
/*
* Return extended memory info for a process as a Python tuple.
*/
static PyObject *
psutil_proc_memory_info(PyObject *self, PyObject *args) {
+ long pagesize = sysconf(_SC_PAGESIZE);
long pid;
kinfo_proc kp;
if (! PyArg_ParseTuple(args, "l", &pid))
@@ -473,26 +466,27 @@ psutil_proc_memory_info(PyObject *self, PyObject *args) {
return Py_BuildValue(
"(lllll)",
#ifdef __FreeBSD__
- (long) ptoa(kp.ki_rssize), // rss
+ (long) kp.ki_rssize * pagesize, // rss
(long) kp.ki_size, // vms
- (long) ptoa(kp.ki_tsize), // text
- (long) ptoa(kp.ki_dsize), // data
- (long) ptoa(kp.ki_ssize) // stack
+ (long) kp.ki_tsize * pagesize, // text
+ (long) kp.ki_dsize * pagesize, // data
+ (long) kp.ki_ssize * pagesize // stack
#else
- (long) ptoa(kp.p_vm_rssize), // rss
+ (long) kp.p_vm_rssize * pagesize, // rss
#ifdef __OpenBSD__
// VMS, this is how ps determines it on OpenBSD:
// http://anoncvs.spacehopper.org/openbsd-src/tree/bin/ps/print.c#n461
- (long) ptoa(kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize), // vms
+ // vms
+ (long) (kp.p_vm_dsize + kp.p_vm_ssize + kp.p_vm_tsize) * pagesize,
#elif __NetBSD__
// VMS, this is how top determines it on NetBSD:
// ftp://ftp.iij.ad.jp/pub/NetBSD/NetBSD-release-6/src/external/bsd/
// top/dist/machine/m_netbsd.c
- (long) ptoa(kp.p_vm_msize), // vms
+ (long) kp.p_vm_msize * pagesize, // vms
#endif
- (long) ptoa(kp.p_vm_tsize), // text
- (long) ptoa(kp.p_vm_dsize), // data
- (long) ptoa(kp.p_vm_ssize) // stack
+ (long) kp.p_vm_tsize * pagesize, // text
+ (long) kp.p_vm_dsize * pagesize, // data
+ (long) kp.p_vm_ssize * pagesize // stack
#endif
);
}