tstDeviceStructSizeRC.cpp revision 3e4bc3e32bc6ac59335fae7115d09f7a2ca9dc4b
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * tstDeviceStructSizeGC - Generate structure member and size checks from the RC perspective.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This is built using the VBoxRc template but linked into a host
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * ring-3 executable, rather hacky.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (C) 2006-2010 Oracle Corporation
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This file is part of VirtualBox Open Source Edition (OSE), as
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * available from http://www.virtualbox.org. This file is free software;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * you can redistribute it and/or modify it under the terms of the GNU
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * General Public License (GPL) as published by the Free Software
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Foundation, in version 2 as it comes in the "COPYING" file of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sanity checks.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/*******************************************************************************
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* Header Files *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster*******************************************************************************/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#include "../Bus/DevPCI.cpp" /* must be first! */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/* we don't use iprt here because we're pretending to be in GC! */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#define GEN_CHECK_SIZE(s) printf(" CHECK_SIZE(%s, %d);\n", #s, (int)sizeof(s))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#define GEN_CHECK_OFF(s, m) printf(" CHECK_OFF(%s, %d, %s);\n", #s, (int)RT_OFFSETOF(s, m), #m)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#define GEN_CHECK_PADDING(s, m, a) printf(" CHECK_PADDING(%s, %s, %u);\n", #s, #m, (a))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIDEVICE, Int.s.aIORegions[PCI_NUM_REGIONS - 1]);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIDEVICE, Int.s.aIORegions[0].addr);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIDEVICE, Int.s.aIORegions[0].size);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIDEVICE, Int.s.aIORegions[0].type);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIDEVICE, Int.s.aIORegions[0].padding);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIDEVICE, Int.s.pfnConfigWrite);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIDEVICE, Int.s.pfnBridgeConfigRead);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIDEVICE, Int.s.pfnBridgeConfigWrite);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIGLOBALS, pci_apic_irq_levels);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(PCIGLOBALS, pci_apic_irq_levels[1]);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(ICH9PCIGLOBALS, uaPciApicIrqLevels);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(ICH9PCIGLOBALS, uaPciApicIrqLevels[1]);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(ICH9PCIGLOBALS, u64PciConfigMMioAddress);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(ICH9PCIGLOBALS, u64PciConfigMMioLength);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(VGASTATE, vbe_regs[VBE_DISPI_INDEX_NB - 1]);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(VGASTATE, invalidated_y_table[1]);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(VGASTATE, invalidated_y_table[(VGA_MAX_HEIGHT / 32) - 1]);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(VGASTATE, last_ch_attr[CH_ATTR_SIZE - 1]);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(VGASTATE, cMilliesRefreshInterval);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster GEN_CHECK_OFF(VGASTATE, au32DirtyBitmap[(VGA_VRAM_MAX / PAGE_SIZE / 32) - 1]);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#if defined(VBOX_WITH_HGSMI) && defined(VBOX_WITH_VIDEOHWACCEL)
#ifdef VBE_BYTEWISE_IO
# ifdef VBE_NEW_DYN_LIST
#ifdef VBE_NEW_DYN_LIST
#ifdef VBOX_WITH_HGSMI
#ifdef VBOX_WITH_WDDM
/* Network/DevPCNet.cpp */
#ifndef PCNET_NO_POLLING
#ifdef PCNET_NO_POLLING
#ifdef VBOX_WITH_STATISTICS
# ifdef PCNET_NO_POLLING
/* PC/DevACPI.cpp */
/* PC/DevPIC.cpp */
#ifdef VBOX_WITH_STATISTICS
/* PC/DevPit-i8254.cpp */
/* PC/DevRTC.cpp */
#ifdef VBOX_WITH_STATISTICS
#ifdef VBOX_WITH_STATISTICS
#ifdef VBOX_WITH_STATISTICS
/* Storage/DevATA.cpp */
#ifdef VBOX_WITH_USB
/* USB/DevOHCI.cpp */
# ifdef VBOX_WITH_STATISTICS
# ifdef VBOX_WITH_EHCI
/* USB/DevEHCI.cpp */
# ifdef VBOX_WITH_STATISTICS
/* VMMDev/VBoxDev.cpp */
/* Parallel/DevParallel.cpp */
/* Serial/DevSerial.cpp */
#ifdef VBOX_WITH_AHCI
/* Storage/ATAController.h */
/* Storage/DevAHCI.cpp */
#ifdef VBOX_WITH_STATISTICS
GEN_CHECK_OFF(AHCIPort, szSerialNumber[AHCI_SERIAL_NUMBER_LENGTH]); /* One additional byte for the termination.*/
GEN_CHECK_OFF(AHCIPort, szFirmwareRevision[AHCI_FIRMWARE_REVISION_LENGTH]); /* One additional byte for the termination.*/
GEN_CHECK_OFF(AHCIPort, szModelNumber[AHCI_MODEL_NUMBER_LENGTH]); /* One additional byte for the termination.*/
#ifdef VBOX_WITH_E1000
# ifndef E1K_GLOBAL_MUTEX
#ifdef VBOX_WITH_VIRTIO
# ifdef VNET_TX_DELAY
#ifdef VBOX_WITH_SCSI
#ifdef VBOX_WITH_HGCM
#ifdef VBOX_WITH_HGCM
#ifdef TIMESYNC_BACKDOOR
#ifdef VBOX_WITH_HGCM
#ifdef VBOX_WITH_BUSLOGIC
#ifdef VBOX_WITH_LSILOGIC