tstMicroGC.cpp revision c97989161fbe75bc14cea477a5443bbf474dd3ad
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Micro Testcase, profiling special CPU operations - GC Code (hacks).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Copyright (C) 2006-2007 innotek GmbH
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * available from http://www.virtualbox.org. This file is free software;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * you can redistribute it and/or modify it under the terms of the GNU
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * General Public License as published by the Free Software Foundation,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * distribution. VirtualBox OSE is distributed in the hope that it will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * be useful, but WITHOUT ANY WARRANTY of any kind.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * If you received this file as part of a commercial VirtualBox
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * distribution, then only the terms of your commercial VirtualBox
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * license agreement apply instead of the previous paragraph.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/*******************************************************************************
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync* Header Files *
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync*******************************************************************************/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/*******************************************************************************
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync* Internal Functions *
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync*******************************************************************************/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncDECLEXPORT(int) tstMicroGC(PTSTMICRO pTst, unsigned uTestcase);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Save and load our IDT.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * @param pTst Pointer to the instance data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * @param iIDT The index of the IDT entry which should be hooked.
if (iIDT >= 0)
return VERR_INVALID_PARAMETER;
switch (uTestcase)
case TSTMICROTEST_OVERHEAD:
case TSTMICROTEST_INVLPG_0:
case TSTMICROTEST_INVLPG_EIP:
case TSTMICROTEST_INVLPG_ESP:
case TSTMICROTEST_CR3_RELOAD:
case TSTMICROTEST_WP_DISABLE:
case TSTMICROTEST_WP_ENABLE:
case TSTMICROTEST_PF_R0:
case TSTMICROTEST_PF_R1:
case TSTMICROTEST_PF_R2:
case TSTMICROTEST_PF_R3:
return rc;