RTTimerCreate-generic.cpp revision c98fb3e16fcd571a790eab772c0c66173d225205
5c73d69670892b2d7d6a369da2629fd15512011avboxsync/** $Id$ */
5c73d69670892b2d7d6a369da2629fd15512011avboxsync/** @file
c97989161fbe75bc14cea477a5443bbf474dd3advboxsync * innotek Portable Runtime - Timers, Generic RTTimerCreate() Implementation.
5c73d69670892b2d7d6a369da2629fd15512011avboxsync */
5c73d69670892b2d7d6a369da2629fd15512011avboxsync
5c73d69670892b2d7d6a369da2629fd15512011avboxsync/*
c98fb3e16fcd571a790eab772c0c66173d225205vboxsync * Copyright (C) 2006-2007 innotek GmbH
c98fb3e16fcd571a790eab772c0c66173d225205vboxsync *
c98fb3e16fcd571a790eab772c0c66173d225205vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
c98fb3e16fcd571a790eab772c0c66173d225205vboxsync * available from http://www.virtualbox.org. This file is free software;
c98fb3e16fcd571a790eab772c0c66173d225205vboxsync * you can redistribute it and/or modify it under the terms of the GNU
c98fb3e16fcd571a790eab772c0c66173d225205vboxsync * General Public License as published by the Free Software Foundation,
c98fb3e16fcd571a790eab772c0c66173d225205vboxsync * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
c98fb3e16fcd571a790eab772c0c66173d225205vboxsync * distribution. VirtualBox OSE is distributed in the hope that it will
c98fb3e16fcd571a790eab772c0c66173d225205vboxsync * be useful, but WITHOUT ANY WARRANTY of any kind.
5c73d69670892b2d7d6a369da2629fd15512011avboxsync */
5c73d69670892b2d7d6a369da2629fd15512011avboxsync
5c73d69670892b2d7d6a369da2629fd15512011avboxsync
5c73d69670892b2d7d6a369da2629fd15512011avboxsync/*******************************************************************************
5c73d69670892b2d7d6a369da2629fd15512011avboxsync* Header Files *
5c73d69670892b2d7d6a369da2629fd15512011avboxsync*******************************************************************************/
5c73d69670892b2d7d6a369da2629fd15512011avboxsync#include <iprt/timer.h>
5c73d69670892b2d7d6a369da2629fd15512011avboxsync#include <iprt/err.h>
5c73d69670892b2d7d6a369da2629fd15512011avboxsync#include <iprt/assert.h>
5c73d69670892b2d7d6a369da2629fd15512011avboxsync
5c73d69670892b2d7d6a369da2629fd15512011avboxsync
5c73d69670892b2d7d6a369da2629fd15512011avboxsyncRTDECL(int) RTTimerCreate(PRTTIMER *ppTimer, unsigned uMilliesInterval, PFNRTTIMER pfnTimer, void *pvUser)
5c73d69670892b2d7d6a369da2629fd15512011avboxsync{
5c73d69670892b2d7d6a369da2629fd15512011avboxsync int rc = RTTimerCreateEx(ppTimer, uMilliesInterval * UINT64_C(1000000), 0, pfnTimer, pvUser);
5c73d69670892b2d7d6a369da2629fd15512011avboxsync if (RT_SUCCESS(rc))
5c73d69670892b2d7d6a369da2629fd15512011avboxsync {
5c73d69670892b2d7d6a369da2629fd15512011avboxsync rc = RTTimerStart(*ppTimer, 0);
5c73d69670892b2d7d6a369da2629fd15512011avboxsync if (RT_SUCCESS(rc))
5c73d69670892b2d7d6a369da2629fd15512011avboxsync return rc;
5c73d69670892b2d7d6a369da2629fd15512011avboxsync int rc2 = RTTimerDestroy(*ppTimer); AssertRC(rc2);
5c73d69670892b2d7d6a369da2629fd15512011avboxsync *ppTimer = NULL;
5c73d69670892b2d7d6a369da2629fd15512011avboxsync }
5c73d69670892b2d7d6a369da2629fd15512011avboxsync return rc;
5c73d69670892b2d7d6a369da2629fd15512011avboxsync}
5c73d69670892b2d7d6a369da2629fd15512011avboxsync