// Copyright (c) 2012 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.#include "base/process/process_info.h"#include <sys/sysctl.h>#include <sys/time.h>#include <unistd.h>#include "base/basictypes.h"#include "base/memory/scoped_ptr.h"#include "base/time/time.h"namespacebase{//staticconstTimeCurrentProcessInfo::CreationTime(){intmib[]={CTL_KERN,KERN_PROC,KERN_PROC_PID,getpid()};size_tlen=0;if(sysctl(mib,arraysize(mib),NULL,&len,NULL,0)<0)returnTime();scoped_ptr<structkinfo_proc,base::FreeDeleter>proc(static_cast<structkinfo_proc*>(malloc(len)));if(sysctl(mib,arraysize(mib),proc.get(),&len,NULL,0)<0)returnTime();returnTime::FromTimeVal(proc->kp_proc.p_un.__p_starttime);}}// namespace base