9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * VBox Miniport common utils header
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsync * Copyright (C) 2011-2012 Oracle Corporation
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * available from http://www.virtualbox.org. This file is free software;
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * you can redistribute it and/or modify it under the terms of the GNU
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * General Public License (GPL) as published by the Free Software
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/*Sanity check*/
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#if defined(VBOX_XPDM_MINIPORT)==defined(VBOX_WDDM_MINIPORT)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#error One of the VBOX_XPDM_MINIPORT or VBOX_WDDM_MINIPORT should be defined!
b82914bc22e128708efefbaf9c93540dbc1711davboxsync# define VBOX_VIDEO_LOGFLOW_LOGGER(_m) do {} while (0)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# if (_MSC_VER >= 1400) && !defined(VBOX_WITH_PATCHED_DDK)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# define _InterlockedExchange _InterlockedExchange_StupidDDKVsCompilerCrap
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# define _InterlockedExchangeAdd _InterlockedExchangeAdd_StupidDDKVsCompilerCrap
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# define _InterlockedCompareExchange _InterlockedCompareExchange_StupidDDKVsCompilerCrap
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# define _InterlockedAddLargeStatistic _InterlockedAddLargeStatistic_StupidDDKVsCompilerCrap
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# define _interlockedbittestandset _interlockedbittestandset_StupidDDKVsCompilerCrap
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# define _interlockedbittestandreset _interlockedbittestandreset_StupidDDKVsCompilerCrap
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# define _interlockedbittestandset64 _interlockedbittestandset64_StupidDDKVsCompilerCrap
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# define _interlockedbittestandreset64 _interlockedbittestandreset64_StupidDDKVsCompilerCrap
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/*Windows version identifier*/
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsynctypedef enum
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncbool VBoxLikesVideoMode(uint32_t display, uint32_t width, uint32_t height, uint32_t bpp);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncbool VBoxQueryDisplayRequest(uint32_t *xres, uint32_t *yres, uint32_t *bpp, uint32_t *pDisplayId);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncbool VBoxQueryPointerPos(uint16_t *pPosX, uint16_t *pPosY);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/* specifies whether the vboxVDbgBreakF should break in the debugger
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * windbg seems to have some issues when there is a lot ( >~50) of sw breakpoints defined
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * to simplify things we just insert breaks for the case of intensive debugging WDDM driver*/
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define vboxVDbgBreakF() do { if (g_bVBoxVDbgBreakF) AssertBreakpoint(); } while (0)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define vboxVDbgBreakFv() do { if (g_bVBoxVDbgBreakFv) AssertBreakpoint(); } while (0)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define vboxVDbgBreakF() do { } while (0)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define vboxVDbgBreakFv() do { } while (0)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#endif /*VBOXMPUTILS_H*/