summaryrefslogtreecommitdiff
path: root/psutil/_psutil_bsd.c
diff options
context:
space:
mode:
authorPo-Chuan Hsieh <sunpoet@sunpoet.net>2019-12-21 20:54:54 +0800
committerGiampaolo Rodola <g.rodola@gmail.com>2019-12-21 13:54:54 +0100
commita7019f06e1accf6b96ba994dab264b8743f20edd (patch)
tree638eca6525e2d0bdd5672c9fffa3a72a3d403f2e /psutil/_psutil_bsd.c
parent04bcd8d9a16f0c053da916d8d57788f8851600a8 (diff)
downloadpsutil-a7019f06e1accf6b96ba994dab264b8743f20edd.tar.gz
Fix Process on FreeBSD 12.0+ i386 (#1646)
FreeBSD 12.0+ change ki_tdev from 32 bits to 64 bits. Reference: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242543
Diffstat (limited to 'psutil/_psutil_bsd.c')
-rw-r--r--psutil/_psutil_bsd.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/psutil/_psutil_bsd.c b/psutil/_psutil_bsd.c
index 723d6198..94088d73 100644
--- a/psutil/_psutil_bsd.c
+++ b/psutil/_psutil_bsd.c
@@ -271,7 +271,11 @@ psutil_proc_oneshot_info(PyObject *self, PyObject *args) {
// Return a single big tuple with all process info.
py_retlist = Py_BuildValue(
+#if defined(__FreeBSD_version) && __FreeBSD_version >= 1200031
+ "(lillllllLdllllddddlllllbO)",
+#else
"(lillllllidllllddddlllllbO)",
+#endif
#ifdef PSUTIL_FREEBSD
//
(long)kp.ki_ppid, // (long) ppid
@@ -285,7 +289,7 @@ psutil_proc_oneshot_info(PyObject *self, PyObject *args) {
(long)kp.ki_groups[0], // (long) effective gid
(long)kp.ki_svuid, // (long) saved gid
//
- kp.ki_tdev, // (int) tty nr
+ kp.ki_tdev, // (int or long long) tty nr
PSUTIL_TV2DOUBLE(kp.ki_start), // (double) create time
// ctx switches
kp.ki_rusage.ru_nvcsw, // (long) ctx switches (voluntary)