diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2016-01-26 17:44:52 +0100 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2016-01-26 17:44:52 +0100 |
commit | 4ceb5ecbf3f086ebe629ca567bafaff7e18ce4ec (patch) | |
tree | a982726c5afff68ddff080f03ffd7e1a1836ca17 | |
parent | caf49c3271a7570e772c5df974728e1c91a56a23 (diff) | |
parent | 6abfa220499b37222d712997e38bad792410b0a9 (diff) | |
download | psutil-4ceb5ecbf3f086ebe629ca567bafaff7e18ce4ec.tar.gz |
Merge pull request #741 from landryb/visa
Get system page size via sysconf()
-rw-r--r-- | CREDITS | 4 | ||||
-rw-r--r-- | HISTORY.rst | 1 | ||||
-rw-r--r-- | psutil/_psutil_bsd.c | 30 |
3 files changed, 17 insertions, 18 deletions
@@ -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 ); } |