Fix NetBSD build in proclib.c (#3378)
[mono.git] / mono / utils / mono-proclib.c
index efd732d6d56b7592b9de709a4d34c352e42baf8f..7a589314f1f43b5032ec78182bd4a377e00ba22e 100644 (file)
 #    define kinfo_starttime_member kp_proc.p_starttime
 #    define kinfo_pid_member kp_proc.p_pid
 #    define kinfo_name_member kp_proc.p_comm
+#elif defined(__NetBSD__)
+#    define kinfo_starttime_member p_ustart_sec
+#    define kinfo_pid_member p_pid
+#    define kinfo_name_member p_comm
 #elif defined(__OpenBSD__)
 // Can not figure out how to get the proc's start time on OpenBSD
 #    undef kinfo_starttime_member 
@@ -317,8 +321,16 @@ mono_process_get_times (gpointer pid, gint64 *start_time, gint64 *user_time, gin
                {
                        KINFO_PROC processi;
 
-                       if (sysctl_kinfo_proc (pid, &processi))
+                       if (sysctl_kinfo_proc (pid, &processi)) {
+#if defined(__NetBSD__)
+                               struct timeval tv;
+                               tv.tv_sec = processi.kinfo_starttime_member;
+                               tv.tv_usec = processi.p_ustart_usec;
+                               *start_time = mono_100ns_datetime_from_timeval(tv);
+#else
                                *start_time = mono_100ns_datetime_from_timeval (processi.kinfo_starttime_member);
+#endif
+                       }
                }
 #endif