a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/* $Id$ */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/** @file
0120c35c41a827e23a6e04fbd59299a187e0b22cvboxsync * IPRT - Init Raw-mode Context.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/*
c58f1213e628a545081c70e26c6b67a841cff880vboxsync * Copyright (C) 2006-2010 Oracle Corporation
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync *
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * available from http://www.virtualbox.org. This file is free software;
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * you can redistribute it and/or modify it under the terms of the GNU
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * General Public License (GPL) as published by the Free Software
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync *
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * The contents of this file may alternatively be used under the terms
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * of the Common Development and Distribution License Version 1.0
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * VirtualBox OSE distribution, in which case the provisions of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * CDDL are applicable instead of those of the GPL.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync *
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * You may elect to license modified versions of this file under the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * terms and conditions of either the GPL or the CDDL or both.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/*******************************************************************************
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync* Header Files *
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync*******************************************************************************/
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync#define LOG_GROUP RTLOGGROUP_DEFAULT
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync#include <iprt/initterm.h>
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync#include <iprt/time.h>
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync#include <iprt/log.h>
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync#include <iprt/err.h>
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync#include <iprt/string.h>
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync#include "internal/time.h"
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/*******************************************************************************
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync* Global Variables *
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync*******************************************************************************/
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/**
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * Program start nanosecond TS.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsyncuint64_t g_u64ProgramStartNanoTS;
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/**
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * Program start microsecond TS.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsyncuint64_t g_u64ProgramStartMicroTS;
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/**
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * Program start millisecond TS.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsyncuint64_t g_u64ProgramStartMilliTS;
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/**
0120c35c41a827e23a6e04fbd59299a187e0b22cvboxsync * Initializes the raw-mode context runtime library.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync *
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * @returns iprt status code.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync *
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * @param u64ProgramStartNanoTS The startup timestamp.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
d7b4fec135679488c2e31643e5b3319e33d8c132vboxsyncRTRCDECL(int) RTRCInit(uint64_t u64ProgramStartNanoTS)
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync{
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync /*
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * Init the program start TSes.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync g_u64ProgramStartNanoTS = u64ProgramStartNanoTS;
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync g_u64ProgramStartMicroTS = u64ProgramStartNanoTS / 1000;
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync g_u64ProgramStartMilliTS = u64ProgramStartNanoTS / 1000000;
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync LogFlow(("RTGCInit: returns VINF_SUCCESS\n"));
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync return VINF_SUCCESS;
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync}
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/**
0120c35c41a827e23a6e04fbd59299a187e0b22cvboxsync * Terminates the raw-mode context runtime library.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
d7b4fec135679488c2e31643e5b3319e33d8c132vboxsyncRTRCDECL(void) RTRCTerm(void)
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync{
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync /* do nothing */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync}