1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/process/process_info.h"
7 #include <sys/sysctl.h>
11 #include "base/basictypes.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "base/time/time.h"
18 const Time
CurrentProcessInfo::CreationTime() {
19 int mib
[] = { CTL_KERN
, KERN_PROC
, KERN_PROC_PID
, getpid() };
21 if (sysctl(mib
, arraysize(mib
), NULL
, &len
, NULL
, 0) < 0)
24 scoped_ptr
<struct kinfo_proc
, base::FreeDeleter
>
25 proc(static_cast<struct kinfo_proc
*>(malloc(len
)));
26 if (sysctl(mib
, arraysize(mib
), proc
.get(), &len
, NULL
, 0) < 0)
28 return Time::FromTimeVal(proc
->kp_proc
.p_un
.__p_starttime
);