Date: Thu, 13 Sep 2012 12:47:22 GMT From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org Subject: [SVN-Commit] r1014 - in trunk: mail/thunderbird-esr/files mail/thunderbird/files www/firefox-esr/files www/firefox-nightly/files www/firefox/files www/libxul-esr/files www/libxul/files www/seamonkey/files Message-ID: <201209131247.q8DClMbK077674@trillian.chruetertee.ch>
next in thread | raw e-mail | index | archive | help
Author: jbeich Date: Thu Sep 13 12:47:21 2012 New Revision: 1014 Log: sync with bug 789693 Modified: trunk/mail/thunderbird-esr/files/patch-bug789693 trunk/mail/thunderbird/files/patch-bug789693 trunk/www/firefox-esr/files/patch-bug789693 trunk/www/firefox-nightly/files/patch-bug789693 trunk/www/firefox/files/patch-bug789693 trunk/www/libxul-esr/files/patch-bug789693 trunk/www/libxul/files/patch-bug789693 trunk/www/seamonkey/files/patch-bug789693 Modified: trunk/mail/thunderbird-esr/files/patch-bug789693 ============================================================================== --- trunk/mail/thunderbird-esr/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/mail/thunderbird-esr/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- mozilla/toolkit/components/startup/nsAppStartup.cpp +++ mozilla/toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,17 +50,40 @@ #include <sys/syscall.h> #endif @@ -19,7 +19,33 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + using namespace mozilla; +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +55,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +88,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/mail/thunderbird/files/patch-bug789693 ============================================================================== --- trunk/mail/thunderbird/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/mail/thunderbird/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- mozilla/toolkit/components/startup/nsAppStartup.cpp +++ mozilla/toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include <sys/syscall.h> #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/firefox-esr/files/patch-bug789693 ============================================================================== --- trunk/www/firefox-esr/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/firefox-esr/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,17 +50,40 @@ #include <sys/syscall.h> #endif @@ -19,7 +19,33 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + using namespace mozilla; +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +55,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +88,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/firefox-nightly/files/patch-bug789693 ============================================================================== --- trunk/www/firefox-nightly/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/firefox-nightly/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include <sys/syscall.h> #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/firefox/files/patch-bug789693 ============================================================================== --- trunk/www/firefox/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/firefox/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include <sys/syscall.h> #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/libxul-esr/files/patch-bug789693 ============================================================================== --- trunk/www/libxul-esr/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/libxul-esr/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,17 +50,40 @@ #include <sys/syscall.h> #endif @@ -19,7 +19,33 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + using namespace mozilla; +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +55,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +88,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/libxul/files/patch-bug789693 ============================================================================== --- trunk/www/libxul/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/libxul/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include <sys/syscall.h> #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/seamonkey/files/patch-bug789693 ============================================================================== --- trunk/www/seamonkey/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/seamonkey/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- mozilla/toolkit/components/startup/nsAppStartup.cpp +++ mozilla/toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include <sys/syscall.h> #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209131247.q8DClMbK077674>