~ubuntu-branches/ubuntu/vivid/virtualbox-ose/vivid

« back to all changes in this revision

Viewing changes to src/VBox/Additions/x11/x11include/xorg-server-1.6.0/x86emu.h

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2009-09-14 18:25:07 UTC
  • mfrom: (0.4.1 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090914182507-c98g07mq16hjmn6d
Tags: 3.0.6-dfsg-1ubuntu1
* Merge from debian unstable (LP: #429697), remaining changes:
  - Enable DKMS support on virtualbox host and guest modules (LP: #267097)
    - Drop virtualbox-ose{-guest,}-modules-* package templates
    - Recommend *-source instead of *-modules packages
    - Replace error messages related to missing/mismatched
      kernel module accordingly
  - Autoload kernel module
    - LOAD_VBOXDRV_MODULE=1 in virtualbox-ose.default
  - Disable update action
    - patches/u01-disable-update-action.dpatch
  - Virtualbox should go in Accessories, not in System tools (LP: #288590)
    - virtualbox-ose-qt.files/virtualbox-ose.desktop
  - Add apport hook
    - virtualbox-ose.files/source_virtualbox-ose.py
    - virtualbox-ose.install
  - Add launchpad integration
    - control
    - lpi-bug.xpm
    - patches/u02-lp-integration.dpatch
  - virtualbox, virtualbox-* (names of the upstream proprietary packages)
    conflict with virtualbox-ose (LP: #379878)
* Make debug package depend on normal or guest utils package
* Drop patches/22-pulseaudio-stubs.dpatch (applied upstream)
* Rename Ubuntu specific patches to uXX-*.dpatch
* Fix lintian warnings in maintainer scripts

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/****************************************************************************
2
 
*
3
 
*                                               Realmode X86 Emulator Library
4
 
*
5
 
*               Copyright (C) 1996-1999 SciTech Software, Inc.
6
 
*                                    Copyright (C) David Mosberger-Tang
7
 
*                                          Copyright (C) 1999 Egbert Eich
8
 
*
9
 
*  ========================================================================
10
 
*
11
 
*  Permission to use, copy, modify, distribute, and sell this software and
12
 
*  its documentation for any purpose is hereby granted without fee,
13
 
*  provided that the above copyright notice appear in all copies and that
14
 
*  both that copyright notice and this permission notice appear in
15
 
*  supporting documentation, and that the name of the authors not be used
16
 
*  in advertising or publicity pertaining to distribution of the software
17
 
*  without specific, written prior permission.  The authors makes no
18
 
*  representations about the suitability of this software for any purpose.
19
 
*  It is provided "as is" without express or implied warranty.
20
 
*
21
 
*  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
22
 
*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
23
 
*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
24
 
*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
25
 
*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
26
 
*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
27
 
*  PERFORMANCE OF THIS SOFTWARE.
28
 
*
29
 
*  ========================================================================
30
 
*
31
 
* Language:             ANSI C
32
 
* Environment:  Any
33
 
* Developer:    Kendall Bennett
34
 
*
35
 
* Description:  Header file for public specific functions.
36
 
*               Any application linking against us should only
37
 
*               include this header
38
 
*
39
 
****************************************************************************/
40
 
 
41
 
#ifndef __X86EMU_X86EMU_H
42
 
#define __X86EMU_X86EMU_H
43
 
 
44
 
#ifdef SCITECH
45
 
#include "scitech.h"
46
 
#define X86API  _ASMAPI
47
 
#define X86APIP _ASMAPIP
48
 
typedef int X86EMU_pioAddr;
49
 
#else
50
 
#include "x86emu/types.h"
51
 
#define X86API
52
 
#define X86APIP *
53
 
#endif
54
 
#include "x86emu/regs.h"
55
 
 
56
 
/*---------------------- Macros and type definitions ----------------------*/
57
 
 
58
 
#ifdef PACK
59
 
# pragma        PACK   /* Don't pack structs with function pointers! */
60
 
#endif
61
 
 
62
 
/****************************************************************************
63
 
REMARKS:
64
 
Data structure containing ponters to programmed I/O functions used by the
65
 
emulator. This is used so that the user program can hook all programmed
66
 
I/O for the emulator to handled as necessary by the user program. By
67
 
default the emulator contains simple functions that do not do access the
68
 
hardware in any way. To allow the emualtor access the hardware, you will
69
 
need to override the programmed I/O functions using the X86EMU_setupPioFuncs
70
 
function.
71
 
 
72
 
HEADER:
73
 
x86emu.h
74
 
 
75
 
MEMBERS:
76
 
inb             - Function to read a byte from an I/O port
77
 
inw             - Function to read a word from an I/O port
78
 
inl     - Function to read a dword from an I/O port
79
 
outb    - Function to write a byte to an I/O port
80
 
outw    - Function to write a word to an I/O port
81
 
outl    - Function to write a dword to an I/O port
82
 
****************************************************************************/
83
 
typedef struct {
84
 
        u8      (X86APIP inb)(X86EMU_pioAddr addr);
85
 
        u16     (X86APIP inw)(X86EMU_pioAddr addr);
86
 
        u32     (X86APIP inl)(X86EMU_pioAddr addr);
87
 
        void    (X86APIP outb)(X86EMU_pioAddr addr, u8 val);
88
 
        void    (X86APIP outw)(X86EMU_pioAddr addr, u16 val);
89
 
        void    (X86APIP outl)(X86EMU_pioAddr addr, u32 val);
90
 
        } X86EMU_pioFuncs;
91
 
 
92
 
/****************************************************************************
93
 
REMARKS:
94
 
Data structure containing ponters to memory access functions used by the
95
 
emulator. This is used so that the user program can hook all memory
96
 
access functions as necessary for the emulator. By default the emulator
97
 
contains simple functions that only access the internal memory of the
98
 
emulator. If you need specialised functions to handle access to different
99
 
types of memory (ie: hardware framebuffer accesses and BIOS memory access
100
 
etc), you will need to override this using the X86EMU_setupMemFuncs
101
 
function.
102
 
 
103
 
HEADER:
104
 
x86emu.h
105
 
 
106
 
MEMBERS:
107
 
rdb             - Function to read a byte from an address
108
 
rdw             - Function to read a word from an address
109
 
rdl     - Function to read a dword from an address
110
 
wrb             - Function to write a byte to an address
111
 
wrw     - Function to write a word to an address
112
 
wrl     - Function to write a dword to an address
113
 
****************************************************************************/
114
 
typedef struct {
115
 
        u8      (X86APIP rdb)(u32 addr);
116
 
        u16     (X86APIP rdw)(u32 addr);
117
 
        u32     (X86APIP rdl)(u32 addr);
118
 
        void    (X86APIP wrb)(u32 addr, u8 val);
119
 
        void    (X86APIP wrw)(u32 addr, u16 val);
120
 
        void    (X86APIP wrl)(u32 addr, u32 val);
121
 
        } X86EMU_memFuncs;
122
 
 
123
 
/****************************************************************************
124
 
  Here are the default memory read and write
125
 
  function in case they are needed as fallbacks.
126
 
***************************************************************************/
127
 
extern u8 X86API rdb(u32 addr);
128
 
extern u16 X86API rdw(u32 addr);
129
 
extern u32 X86API rdl(u32 addr);
130
 
extern void X86API wrb(u32 addr, u8 val);
131
 
extern void X86API wrw(u32 addr, u16 val);
132
 
extern void X86API wrl(u32 addr, u32 val);
133
 
 
134
 
#ifdef END_PACK
135
 
# pragma        END_PACK
136
 
#endif
137
 
 
138
 
/*--------------------- type definitions -----------------------------------*/
139
 
 
140
 
typedef void (X86APIP X86EMU_intrFuncs)(int num);
141
 
extern X86EMU_intrFuncs _X86EMU_intrTab[256];
142
 
 
143
 
/*-------------------------- Function Prototypes --------------------------*/
144
 
 
145
 
#ifdef  __cplusplus
146
 
extern "C" {                                    /* Use "C" linkage when in C++ mode */
147
 
#endif
148
 
 
149
 
void    X86EMU_setupMemFuncs(X86EMU_memFuncs *funcs);
150
 
void    X86EMU_setupPioFuncs(X86EMU_pioFuncs *funcs);
151
 
void    X86EMU_setupIntrFuncs(X86EMU_intrFuncs funcs[]);
152
 
void    X86EMU_prepareForInt(int num);
153
 
 
154
 
/* decode.c */
155
 
 
156
 
void    X86EMU_exec(void);
157
 
void    X86EMU_halt_sys(void);
158
 
 
159
 
#ifdef  DEBUG
160
 
#define HALT_SYS()      \
161
 
        printk("halt_sys: file %s, line %d\n", __FILE__, __LINE__), \
162
 
        X86EMU_halt_sys()
163
 
#else
164
 
#define HALT_SYS()      X86EMU_halt_sys()
165
 
#endif
166
 
 
167
 
/* Debug options */
168
 
 
169
 
#define DEBUG_DECODE_F          0x000001 /* print decoded instruction  */
170
 
#define DEBUG_TRACE_F           0x000002 /* dump regs before/after execution */
171
 
#define DEBUG_STEP_F            0x000004
172
 
#define DEBUG_DISASSEMBLE_F     0x000008
173
 
#define DEBUG_BREAK_F           0x000010
174
 
#define DEBUG_SVC_F             0x000020
175
 
#define DEBUG_SAVE_IP_CS_F      0x000040
176
 
#define DEBUG_FS_F              0x000080
177
 
#define DEBUG_PROC_F            0x000100
178
 
#define DEBUG_SYSINT_F          0x000200 /* bios system interrupts. */
179
 
#define DEBUG_TRACECALL_F       0x000400
180
 
#define DEBUG_INSTRUMENT_F      0x000800
181
 
#define DEBUG_MEM_TRACE_F       0x001000 
182
 
#define DEBUG_IO_TRACE_F        0x002000 
183
 
#define DEBUG_TRACECALL_REGS_F  0x004000
184
 
#define DEBUG_DECODE_NOPRINT_F  0x008000 
185
 
#define DEBUG_EXIT              0x010000
186
 
#define DEBUG_SYS_F             (DEBUG_SVC_F|DEBUG_FS_F|DEBUG_PROC_F)
187
 
 
188
 
void    X86EMU_trace_regs(void);
189
 
void    X86EMU_trace_xregs(void);
190
 
void    X86EMU_dump_memory(u16 seg, u16 off, u32 amt);
191
 
int     X86EMU_trace_on(void);
192
 
int     X86EMU_trace_off(void);
193
 
 
194
 
#ifdef  __cplusplus
195
 
}                                               /* End of "C" linkage for C++           */
196
 
#endif
197
 
 
198
 
#endif /* __X86EMU_X86EMU_H */