initterm-gc.cpp revision a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0e
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/* $Id$ */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/** @file
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * innotek Portable Runtime - Init Guest Context.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync/*
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * Copyright (C) 2006-2007 innotek GmbH
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
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * General Public License as published by the Free Software Foundation,
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * distribution. VirtualBox OSE is distributed in the hope that it will
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * be useful, but WITHOUT ANY WARRANTY of any kind.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync *
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * If you received this file as part of a commercial VirtualBox
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * distribution, then only the terms of your commercial VirtualBox
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * license agreement apply instead of the previous paragraph.
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/**
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * Initalizes the guest context runtime library.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync *
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * @returns iprt status code.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync *
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * @param u64ProgramStartNanoTS The startup timestamp.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsyncRTGCDECL(int) RTGCInit(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/**
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync * Terminates the guest context runtime library.
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsyncRTGCDECL(void) RTGCTerm(void)
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync{
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync /* do nothing */
a119cf803cc51463dc3d1d6c3fb4cd0ca3d34f0evboxsync}