~ubuntu-branches/ubuntu/trusty/virtualbox-ose/trusty

« back to all changes in this revision

Viewing changes to src/VBox/VMM/IOMInternal.h

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2009-12-18 16:44:29 UTC
  • mfrom: (0.3.3 upstream) (0.4.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091218164429-jd34ccexpv5na11a
Tags: 3.1.2-dfsg-1ubuntu1
* Merge from Debian unstable (LP: #498219), remaining changes:
  - Disable update action
    - debian/patches/u01-disable-update-action.dpatch
  - VirtualBox should go in Accessories, not in System tools (LP: #288590)
    - debian/virtualbox-ose-qt.files/virtualbox-ose.desktop
  - Add Apport hook
    - debian/virtualbox-ose.files/source_virtualbox-ose.py
    - debian/virtualbox-ose.install
  - Add Launchpad integration
    - debian/control
    - debian/lpi-bug.xpm
    - debian/patches/u02-lp-integration.dpatch
* Fixes the following bugs:
  - Kernel module fails to build with Linux >= 2.6.32 (LP: #474625)
  - X.Org drivers need to be rebuilt against X-Server 1.7 (LP: #495935)
  - The *-source packages try to build the kernel modules even though the
    kernel headers aren't available (LP: #473334)
* Replace *-source packages with transitional packages for *-dkms.
* Adapt u01-disable-update-action.dpatch and u02-lp-integration.dpatch for
  new upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
#include <VBox/pgm.h>
30
30
#include <VBox/pdmcritsect.h>
31
31
#include <VBox/param.h>
 
32
#include <iprt/assert.h>
32
33
#include <iprt/avl.h>
33
34
 
34
35
 
129
130
    /** Number of writes to this address from R0/RC which was serviced in R3. */
130
131
    STAMCOUNTER                 WriteRZToR3;
131
132
} IOMMMIOSTATS;
 
133
AssertCompileMemberAlignment(IOMMMIOSTATS, ReadR3, 8);
132
134
/** Pointer to I/O port statistics. */
133
135
typedef IOMMMIOSTATS *PIOMMMIOSTATS;
134
136
 
240
242
{
241
243
    /** Avl node core with the port as Key. */
242
244
    AVLOIOPORTNODECORE          Core;
243
 
#if HC_ARCH_BITS == 64 && !defined(RT_OS_WINDOWS)
 
245
#if HC_ARCH_BITS != 64 || !defined(RT_OS_WINDOWS)
244
246
    uint32_t                    u32Alignment; /**< The sizeof(Core) differs. */
245
247
#endif
246
248
    /** Number of INs to this port from R3. */
266
268
    /** Number of OUTs to this port from R0/RC which was serviced in R3. */
267
269
    STAMCOUNTER                 OutRZToR3;
268
270
} IOMIOPORTSTATS;
 
271
AssertCompileMemberAlignment(IOMIOPORTSTATS, InR3, 8);
269
272
/** Pointer to I/O port statistics. */
270
273
typedef IOMIOPORTSTATS *PIOMIOPORTSTATS;
271
274
 
429
432
PIOMMMIOSTATS   iomR3MMIOStatsCreate(PVM pVM, RTGCPHYS GCPhys, const char *pszDesc);
430
433
#endif /* IN_RING3 */
431
434
 
432
 
/**
433
 
 * \#PF Handler callback for MMIO ranges.
434
 
 *
435
 
 * @returns VBox status code (appropriate for GC return).
436
 
 *
437
 
 * @param   pVM         VM Handle.
438
 
 * @param   uErrorCode  CPU Error code.
439
 
 * @param   pRegFrame   Trap register frame.
440
 
 * @param   pvFault     The fault address (cr2).
441
 
 * @param   GCPhysFault The GC physical address corresponding to pvFault.
442
 
 * @param   pvUser      Pointer to the MMIO range entry.
443
 
 */
444
 
VMMDECL(int) IOMMMIOHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, RTGCPHYS GCPhysFault, void *pvUser);
445
 
 
 
435
VMMDECL(int)        IOMMMIOHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, RTGCPHYS GCPhysFault, void *pvUser);
446
436
#ifdef IN_RING3
447
 
/**
448
 
 * \#PF Handler callback for MMIO ranges.
449
 
 *
450
 
 * @returns VINF_SUCCESS if the handler have carried out the operation.
451
 
 * @returns VINF_PGM_HANDLER_DO_DEFAULT if the caller should carry out the access operation.
452
 
 * @param   pVM             VM Handle.
453
 
 * @param   GCPhys          The physical address the guest is writing to.
454
 
 * @param   pvPhys          The HC mapping of that address.
455
 
 * @param   pvBuf           What the guest is reading/writing.
456
 
 * @param   cbBuf           How much it's reading/writing.
457
 
 * @param   enmAccessType   The access type.
458
 
 * @param   pvUser      Pointer to the MMIO range entry.
459
 
 */
460
 
DECLCALLBACK(int) IOMR3MMIOHandler(PVM pVM, RTGCPHYS GCPhys, void *pvPhys, void *pvBuf, size_t cbBuf, PGMACCESSTYPE enmAccessType, void *pvUser);
 
437
DECLCALLBACK(int)   IOMR3MMIOHandler(PVM pVM, RTGCPHYS GCPhys, void *pvPhys, void *pvBuf, size_t cbBuf, PGMACCESSTYPE enmAccessType, void *pvUser);
461
438
#endif
462
439
 
463
440