VirtualBox

source: vbox/trunk/include/VBox/Graphics/VBoxVideoIPRT.h@ 66513

Last change on this file since 66513 was 66513, checked in by vboxsync, 8 years ago

​bugref:8524: Additions/linux: play nicely with distribution-installed Additions: try to fix the builds for OS/2.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1/** @file
2 * VirtualBox Video driver, common code - iprt and VirtualBox macros and
3 * definitions.
4 */
5
6/*
7 * Copyright (C) 2017 Oracle Corporation
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 */
17
18#ifndef ___VBox_VBoxVideoIPRT_h
19#define ___VBox_VBoxVideoIPRT_h
20
21#ifndef RT_OS_OS2
22# include <iprt/asm.h>
23#endif
24#include <iprt/assert.h>
25#include <iprt/cdefs.h>
26#include <iprt/err.h>
27#include <iprt/list.h>
28#include <iprt/stdarg.h>
29#include <iprt/stdint.h>
30#include <iprt/string.h>
31#include <iprt/types.h>
32
33#if !defined VBOX_XPDM_MINIPORT && !defined VBOX_GUESTR3XORGMOD
34# include <iprt/asm-amd64-x86.h>
35#endif
36
37#ifdef VBOX_XPDM_MINIPORT
38# include <iprt/nt/miniport.h>
39# include <ntddvdeo.h> /* sdk, clean */
40# include <iprt/nt/Video.h>
41#elif defined VBOX_GUESTR3XORGMOD
42# include <compiler.h>
43#endif
44
45/** @name Port I/O helpers
46 * @{ */
47
48#ifdef VBOX_XPDM_MINIPORT
49
50/** Write an 8-bit value to an I/O port. */
51# define VBVO_PORT_WRITE_U8(Port, Value) \
52 VideoPortWritePortUchar((PUCHAR)Port, Value)
53/** Write a 16-bit value to an I/O port. */
54# define VBVO_PORT_WRITE_U16(Port, Value) \
55 VideoPortWritePortUshort((PUSHORT)Port, Value)
56/** Write a 32-bit value to an I/O port. */
57# define VBVO_PORT_WRITE_U32(Port, Value) \
58 VideoPortWritePortUlong((PULONG)Port, Value)
59/** Read an 8-bit value from an I/O port. */
60# define VBVO_PORT_READ_U8(Port) \
61 VideoPortReadPortUchar((PUCHAR)Port)
62/** Read a 16-bit value from an I/O port. */
63# define VBVO_PORT_READ_U16(Port) \
64 VideoPortReadPortUshort((PUSHORT)Port)
65/** Read a 32-bit value from an I/O port. */
66# define VBVO_PORT_READ_U32(Port) \
67 VideoPortReadPortUlong((PULONG)Port)
68
69#elif defined(VBOX_GUESTR3XORGMOD)
70
71/** Write an 8-bit value to an I/O port. */
72# define VBVO_PORT_WRITE_U8(Port, Value) \
73 outb(Port, Value)
74/** Write a 16-bit value to an I/O port. */
75# define VBVO_PORT_WRITE_U16(Port, Value) \
76 outw(Port, Value)
77/** Write a 32-bit value to an I/O port. */
78# define VBVO_PORT_WRITE_U32(Port, Value) \
79 outl(Port, Value)
80/** Read an 8-bit value from an I/O port. */
81# define VBVO_PORT_READ_U8(Port) \
82 inb(Port)
83/** Read a 16-bit value from an I/O port. */
84# define VBVO_PORT_READ_U16(Port) \
85 inw(Port)
86/** Read a 32-bit value from an I/O port. */
87# define VBVO_PORT_READ_U32(Port) \
88 inl(Port)
89
90#else /** @todo make these explicit */
91
92/** Write an 8-bit value to an I/O port. */
93# define VBVO_PORT_WRITE_U8(Port, Value) \
94 ASMOutU8(Port, Value)
95/** Write a 16-bit value to an I/O port. */
96# define VBVO_PORT_WRITE_U16(Port, Value) \
97 ASMOutU16(Port, Value)
98/** Write a 32-bit value to an I/O port. */
99# define VBVO_PORT_WRITE_U32(Port, Value) \
100 ASMOutU32(Port, Value)
101/** Read an 8-bit value from an I/O port. */
102# define VBVO_PORT_READ_U8(Port) \
103 ASMInU8(Port)
104/** Read a 16-bit value from an I/O port. */
105# define VBVO_PORT_READ_U16(Port) \
106 ASMInU16(Port)
107/** Read a 32-bit value from an I/O port. */
108# define VBVO_PORT_READ_U32(Port) \
109 ASMInU32(Port)
110#endif
111
112/** @} */
113
114#endif /* ___VBox_VBoxVideoIPRT_h */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette