internal-r0drv-nt.h revision 41c15aa44c4acfe6760552150eb931319835cfaf
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync/* $Id$ */
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync/** @file
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * IPRT - Internal Header for the NT Ring-0 Driver Code.
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync */
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync/*
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync * Copyright (C) 2008 Sun Microsystems, Inc.
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync *
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync * available from http://www.virtualbox.org. This file is free software;
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync * you can redistribute it and/or modify it under the terms of the GNU
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync * General Public License (GPL) as published by the Free Software
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
82bcaaf8077ba892f39afb721dca149353c63d2cvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync *
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * The contents of this file may alternatively be used under the terms
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * of the Common Development and Distribution License Version 1.0
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * VirtualBox OSE distribution, in which case the provisions of the
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * CDDL are applicable instead of those of the GPL.
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync *
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * You may elect to license modified versions of this file under the
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * terms and conditions of either the GPL or the CDDL or both.
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync *
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync * additional information or have any questions.
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync */
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync#ifndef ___internal_r0drv_h
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync#define ___internal_r0drv_h
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync#include <iprt/cpuset.h>
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncRT_C_DECLS_BEGIN
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync/*******************************************************************************
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync* Structures and Typedefs *
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync*******************************************************************************/
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsynctypedef ULONG (__stdcall *PFNMYEXSETTIMERRESOLUTION)(ULONG, BOOLEAN);
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsynctypedef VOID (__stdcall *PFNMYKEFLUSHQUEUEDDPCS)(VOID);
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsynctypedef VOID (__stdcall *PFNHALREQUESTIPI)(KAFFINITY TargetSet);
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsynctypedef VOID (__stdcall *PFNHALSENDSOFTWAREINTERRUPT)(ULONG ProcessorNumber, KIRQL Irql);
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsynctypedef int (__stdcall *PFNRTSENDIPI)(RTCPUID idCpu);
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsynctypedef ULONG_PTR (__stdcall *PFNRTKEIPIGENERICCALL)(PKIPI_BROADCAST_WORKER BroadcastFunction, ULONG_PTR Context);
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync/*******************************************************************************
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync* Global Variables *
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync*******************************************************************************/
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern RTCPUSET g_rtMpNtCpuSet;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern PFNMYEXSETTIMERRESOLUTION g_pfnrtNtExSetTimerResolution;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern PFNMYKEFLUSHQUEUEDDPCS g_pfnrtNtKeFlushQueuedDpcs;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern PFNHALREQUESTIPI g_pfnrtNtHalRequestIpi;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern PFNHALSENDSOFTWAREINTERRUPT g_pfnrtNtHalSendSoftwareInterrupt;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern PFNRTSENDIPI g_pfnrtSendIpi;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern PFNRTKEIPIGENERICCALL g_pfnrtKeIpiGenericCall;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern uint32_t g_offrtNtPbQuantumEnd;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern uint32_t g_cbrtNtPbQuantumEnd;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncextern uint32_t g_offrtNtPbDpcQueueDepth;
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncint rtMpSendIpiVista(RTCPUID idCpu);
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncint rtMpSendIpiWin7(RTCPUID idCpu);
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncint rtMpSendIpiDummy(RTCPUID idCpu);
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsyncRT_C_DECLS_END
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync#endif
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync
d9a56535f83f926b52a6c3bc55da1cb37bf23b96vboxsync