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