~ubuntu-branches/ubuntu/feisty/clamav/feisty

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/lib/System/TimeValue.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Kees Cook
  • Date: 2007-02-20 10:33:44 UTC
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: james.westby@ubuntu.com-20070220103344-zgcu2psnx9d98fpa
Tags: upstream-0.90
ImportĀ upstreamĀ versionĀ 0.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//===-- TimeValue.cpp - Implement OS TimeValue Concept ----------*- C++ -*-===//
2
 
//
3
 
//                     The LLVM Compiler Infrastructure
4
 
//
5
 
// This file is distributed under the University of Illinois Open Source
6
 
// License. See LICENSE.TXT for details.
7
 
//
8
 
//===----------------------------------------------------------------------===//
9
 
//
10
 
//  This file implements the operating system TimeValue concept.
11
 
//
12
 
//===----------------------------------------------------------------------===//
13
 
 
14
 
#include "llvm/System/TimeValue.h"
15
 
#include "llvm/Config/config.h"
16
 
 
17
 
namespace llvm {
18
 
using namespace sys;
19
 
 
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 );
25
 
 
26
 
void
27
 
TimeValue::normalize( void ) {
28
 
  if ( nanos_ >= NANOSECONDS_PER_SECOND ) {
29
 
    do {
30
 
      seconds_++;
31
 
      nanos_ -= NANOSECONDS_PER_SECOND;
32
 
    } while ( nanos_ >= NANOSECONDS_PER_SECOND );
33
 
  } else if (nanos_ <= -NANOSECONDS_PER_SECOND ) {
34
 
    do {
35
 
      seconds_--;
36
 
      nanos_ += NANOSECONDS_PER_SECOND;
37
 
    } while (nanos_ <= -NANOSECONDS_PER_SECOND);
38
 
  }
39
 
 
40
 
  if (seconds_ >= 1 && nanos_ < 0) {
41
 
    seconds_--;
42
 
    nanos_ += NANOSECONDS_PER_SECOND;
43
 
  } else if (seconds_ < 0 && nanos_ > 0) {
44
 
    seconds_++;
45
 
    nanos_ -= NANOSECONDS_PER_SECOND;
46
 
  }
47
 
}
48
 
 
49
 
}
50
 
 
51
 
/// Include the platform specific portion of TimeValue class
52
 
#ifdef LLVM_ON_UNIX
53
 
#include "Unix/TimeValue.inc"
54
 
#endif
55
 
#ifdef LLVM_ON_WIN32
56
 
#include "Win32/TimeValue.inc"
57
 
#endif
58