VBoxGuestR3LibRuntimeXF86.cpp revision 04dd0d86ab8a6f8644d28349454e534b5da43ae4
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync/* $Id$ */
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync/** @file
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * VBoxGuestR3Lib - Ring-3 Support Library for VirtualBox guest additions,
5405d56d85e288757606022f6a22700721732a8cvboxsync * implements the minimum of runtime functions needed for
5405d56d85e288757606022f6a22700721732a8cvboxsync * XFree86 driver code.
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync */
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync/*
e64031e20c39650a7bc902a3e1aba613b9415deevboxsync * Copyright (C) 2007-2010 Oracle Corporation
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync *
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * available from http://www.virtualbox.org. This file is free software;
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * you can redistribute it and/or modify it under the terms of the GNU
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * General Public License (GPL) as published by the Free Software
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync *
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * The contents of this file may alternatively be used under the terms
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * of the Common Development and Distribution License Version 1.0
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * VirtualBox OSE distribution, in which case the provisions of the
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * CDDL are applicable instead of those of the GPL.
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync *
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * You may elect to license modified versions of this file under the
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync * terms and conditions of either the GPL or the CDDL or both.
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync */
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync/****************************************************************************
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync* Header Files *
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync****************************************************************************/
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync#include <iprt/assert.h>
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync#include <iprt/log.h>
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync#include <iprt/mem.h>
95f49f3cab4060d4c9b53703d32f51a7f1a3ece6vboxsync#if defined(VBOX_VBGLR3_XFREE86)
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsyncextern "C" {
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync# define XFree86LOADER
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync# include <xf86_ansic.h>
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync# undef size_t
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync}
95f49f3cab4060d4c9b53703d32f51a7f1a3ece6vboxsync#else
95f49f3cab4060d4c9b53703d32f51a7f1a3ece6vboxsync# include <stdarg.h>
95f49f3cab4060d4c9b53703d32f51a7f1a3ece6vboxsync# include <stdlib.h>
95f49f3cab4060d4c9b53703d32f51a7f1a3ece6vboxsync# define xalloc malloc
95f49f3cab4060d4c9b53703d32f51a7f1a3ece6vboxsync# define xfree free
95f49f3cab4060d4c9b53703d32f51a7f1a3ece6vboxsyncextern "C" void ErrorF(const char *f, ...);
95f49f3cab4060d4c9b53703d32f51a7f1a3ece6vboxsync#endif
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsyncRTDECL(void) RTAssertMsg1Weak(const char *pszExpr, unsigned uLine, const char *pszFile, const char *pszFunction)
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync{
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync ErrorF("Assertion failed! Expression: %s at %s in\n", pszExpr,
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync pszFunction);
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync ErrorF("%s:%u\n", pszFile, uLine);
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync}
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsyncRTDECL(void) RTAssertMsg2Weak(const char *pszFormat, ...)
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync{
04dd0d86ab8a6f8644d28349454e534b5da43ae4vboxsync NOREF(pszFormat);
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync}
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsyncRTDECL(bool) RTAssertShouldPanic(void)
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync{
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync return false;
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync}
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsyncRTDECL(PRTLOGGER) RTLogRelDefaultInstance(void)
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync{
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync return NULL;
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync}
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsyncRTDECL(void) RTLogLoggerEx(PRTLOGGER, unsigned, unsigned, const char *pszFormat, ...)
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync{
04dd0d86ab8a6f8644d28349454e534b5da43ae4vboxsync NOREF(pszFormat);
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync}
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
1fad1baa61b4b4694cb367f080d89e68f7c98390vboxsyncRTDECL(void *) RTMemTmpAllocTag(size_t cb, const char *pszTag)
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync{
1fad1baa61b4b4694cb367f080d89e68f7c98390vboxsync NOREF(pszTag);
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync return xalloc(cb);
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync}
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsyncRTDECL(void) RTMemTmpFree(void *pv)
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync{
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync xfree(pv);
208aaecb51db539a2f7f3d25f38dd2efd0f014a3vboxsync}