1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/*
2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2011 Google Inc.
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com *
4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file.
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */
79ac68ee2594f28dfc1bd16a4bf004b1a4f6f228dmtklein#ifndef SysTimer_DEFINED
89ac68ee2594f28dfc1bd16a4bf004b1a4f6f228dmtklein#define SysTimer_DEFINED
9be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com
10be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com#include <mach/mach.h>
11be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com#include <mach/mach_time.h>
12be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com
139ac68ee2594f28dfc1bd16a4bf004b1a4f6f228dmtkleinclass SysTimer {
14be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.compublic:
15be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com    void startWall();
16be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com    void startCpu();
17be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com    double endCpu();
18be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com    double endWall();
19be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.comprivate:
20be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com    time_value_t fStartCpu;
21be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com    uint64_t fStartWall;
22be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com};
23be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com
24be9ad4e5fc6126a1273a7dccf1a85db72e763df3bungeman@google.com#endif
25