mangling.h revision 8502773207230763deba3e622495f2099398dcb0
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding * IPRT - Symbol Mangling.
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding * This header is used to mangle public IPRT symbol to make it possible to have
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding * several IPRT version loaded into one symbol space at the same time. To
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding * enable symbol mangling you create a header which the compiler includes for
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * every compilation unit (check out the -include option of gcc). Your header
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * will define RT_MANGLER(name) and then include this header to set up the
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * actual mappings.
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * Copyright (C) 2011-2012 Oracle Corporation
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * This file is part of VirtualBox Open Source Edition (OSE), as
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * available from http://www.virtualbox.org. This file is free software;
d472f67198d6b15dd1270136f180cca9c9263243trawick * you can redistribute it and/or modify it under the terms of the GNU
d472f67198d6b15dd1270136f180cca9c9263243trawick * General Public License (GPL) as published by the Free Software
d472f67198d6b15dd1270136f180cca9c9263243trawick * Foundation, in version 2 as it comes in the "COPYING" file of the
d472f67198d6b15dd1270136f180cca9c9263243trawick * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
90619ceb9727e0df966d3d759da87a108848c234trawick * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
d472f67198d6b15dd1270136f180cca9c9263243trawick * The contents of this file may alternatively be used under the terms
d472f67198d6b15dd1270136f180cca9c9263243trawick * of the Common Development and Distribution License Version 1.0
#ifndef ___iprt_mangling_h
#define ___iprt_mangling_h
#ifndef RT_MANGLER
#ifndef DOXYGEN_RUNNING
# define RT_WITH_MANGLING
# define RTLockValidatorClassEnforceStrictReleaseOrder RT_MANGLER(RTLockValidatorClassEnforceStrictReleaseOrder)
# define RTLockValidatorIsBlockedThreadInValidator RT_MANGLER(RTLockValidatorIsBlockedThreadInValidator)
# define RTLockValidatorRecExclCheckOrderAndBlocking RT_MANGLER(RTLockValidatorRecExclCheckOrderAndBlocking)
# define RTLockValidatorRecExclReleaseOwnerUnchecked RT_MANGLER(RTLockValidatorRecExclReleaseOwnerUnchecked)
# define RTLockValidatorRecSharedCheckAndRelease RT_MANGLER(RTLockValidatorRecSharedCheckAndRelease)