1
//===-- TimeValue.cpp - Implement OS TimeValue Concept ----------*- C++ -*-===//
3
// The LLVM Compiler Infrastructure
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
8
//===----------------------------------------------------------------------===//
10
// This file implements the operating system TimeValue concept.
12
//===----------------------------------------------------------------------===//
14
#include "llvm/System/TimeValue.h"
15
#include "llvm/Config/config.h"
20
const TimeValue TimeValue::MinTime = TimeValue ( INT64_MIN,0 );
21
const TimeValue TimeValue::MaxTime = TimeValue ( INT64_MAX,0 );
22
const TimeValue TimeValue::ZeroTime = TimeValue ( 0,0 );
23
const TimeValue TimeValue::PosixZeroTime = TimeValue ( -946684800,0 );
24
const TimeValue TimeValue::Win32ZeroTime = TimeValue ( -12591158400ULL,0 );
27
TimeValue::normalize( void ) {
28
if ( nanos_ >= NANOSECONDS_PER_SECOND ) {
31
nanos_ -= NANOSECONDS_PER_SECOND;
32
} while ( nanos_ >= NANOSECONDS_PER_SECOND );
33
} else if (nanos_ <= -NANOSECONDS_PER_SECOND ) {
36
nanos_ += NANOSECONDS_PER_SECOND;
37
} while (nanos_ <= -NANOSECONDS_PER_SECOND);
40
if (seconds_ >= 1 && nanos_ < 0) {
42
nanos_ += NANOSECONDS_PER_SECOND;
43
} else if (seconds_ < 0 && nanos_ > 0) {
45
nanos_ -= NANOSECONDS_PER_SECOND;
51
/// Include the platform specific portion of TimeValue class
53
#include "Unix/TimeValue.inc"
56
#include "Win32/TimeValue.inc"