mangling.h revision 40d4f06178494f9d0b7eb93819fd5b5d3548def4
65fea56f17cd614bc8908264df980a62e1931468vboxsync * IPRT - Symbol Mangling.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * This header is used to mangle public IPRT symbol to make it possible to have
65fea56f17cd614bc8908264df980a62e1931468vboxsync * several IPRT version loaded into one symbol space at the same time. To
65fea56f17cd614bc8908264df980a62e1931468vboxsync * enable symbol mangling you create a header which the compiler includes for
65fea56f17cd614bc8908264df980a62e1931468vboxsync * every compilation unit (check out the -include option of gcc). Your header
65fea56f17cd614bc8908264df980a62e1931468vboxsync * will define RT_MANGLER(name) and then include this header to set up the
65fea56f17cd614bc8908264df980a62e1931468vboxsync * actual mappings.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Copyright (C) 2011 Oracle Corporation
65fea56f17cd614bc8908264df980a62e1931468vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
65fea56f17cd614bc8908264df980a62e1931468vboxsync * available from http://www.virtualbox.org. This file is free software;
65fea56f17cd614bc8908264df980a62e1931468vboxsync * you can redistribute it and/or modify it under the terms of the GNU
65fea56f17cd614bc8908264df980a62e1931468vboxsync * General Public License (GPL) as published by the Free Software
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
65fea56f17cd614bc8908264df980a62e1931468vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
65fea56f17cd614bc8908264df980a62e1931468vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * The contents of this file may alternatively be used under the terms
65fea56f17cd614bc8908264df980a62e1931468vboxsync * of the Common Development and Distribution License Version 1.0
65fea56f17cd614bc8908264df980a62e1931468vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
65fea56f17cd614bc8908264df980a62e1931468vboxsync * VirtualBox OSE distribution, in which case the provisions of the
65fea56f17cd614bc8908264df980a62e1931468vboxsync * CDDL are applicable instead of those of the GPL.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * You may elect to license modified versions of this file under the
65fea56f17cd614bc8908264df980a62e1931468vboxsync * terms and conditions of either the GPL or the CDDL or both.
#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)