1// Copyright 2013 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.
4
5#include "base/process/process_info.h"
6
7#include "base/basictypes.h"
8#include "base/logging.h"
9#include "base/process/internal_linux.h"
10#include "base/process/process_handle.h"
11#include "base/time/time.h"
12
13namespace base {
14
15//static
16const Time CurrentProcessInfo::CreationTime() {
17  ProcessHandle pid = GetCurrentProcessHandle();
18  int64 start_ticks =
19      internal::ReadProcStatsAndGetFieldAsInt64(pid, internal::VM_STARTTIME);
20  DCHECK(start_ticks);
21  TimeDelta start_offset = internal::ClockTicksToTimeDelta(start_ticks);
22  Time boot_time = internal::GetBootTime();
23  DCHECK(!boot_time.is_null());
24  return Time(boot_time + start_offset);
25}
26
27}  // namespace base
28