d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * VBox Sample Device.
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * Copyright (C) 2009-2010 Oracle Corporation
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * available from http://www.virtualbox.org. This file is free software;
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * you can redistribute it and/or modify it under the terms of the GNU
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * General Public License (GPL) as published by the Free Software
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync/*******************************************************************************
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync* Header Files *
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync*******************************************************************************/
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync/*******************************************************************************
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync* Structures and Typedefs *
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync*******************************************************************************/
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * Device Instance Data.
a7aa94e0115a73841f34ebbfa00f63fa1904e51fvboxsync /** Destruct instance - optional. */
6fffd38c4ef918b4aaa702d0768422e0be119ba7vboxsyncstatic DECLCALLBACK(int) devSampleDestruct(PPDMDEVINS pDevIns)
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * Check the versions here as well since the destructor is *always* called.
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync AssertMsgReturn(pDevIns->u32Version == PDM_DEVINS_VERSION, ("%#x, expected %#x\n", pDevIns->u32Version, PDM_DEVINS_VERSION), VERR_VERSION_MISMATCH);
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync AssertMsgReturn(pDevIns->pHlpR3->u32Version == PDM_DEVHLPR3_VERSION, ("%#x, expected %#x\n", pDevIns->pHlpR3->u32Version, PDM_DEVHLPR3_VERSION), VERR_VERSION_MISMATCH);
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsyncstatic DECLCALLBACK(int) devSampleConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
0e5731ab59b4ecead38375f26eeea698f00b19fdvboxsync * Check that the device instance and device helper structures are compatible.
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync AssertLogRelMsgReturn(pDevIns->u32Version == PDM_DEVINS_VERSION, ("%#x, expected %#x\n", pDevIns->u32Version, PDM_DEVINS_VERSION), VERR_VERSION_MISMATCH);
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync AssertLogRelMsgReturn(pDevIns->pHlpR3->u32Version == PDM_DEVHLPR3_VERSION, ("%#x, expected %#x\n", pDevIns->pHlpR3->u32Version, PDM_DEVHLPR3_VERSION), VERR_VERSION_MISMATCH);
d606b96aa8a4be8f7d2da410f982889804c27b92vboxsync * Initialize the instance data so that the destructure won't mess up.
aa4bcf0a4b2db3ac352b56a291d49cb8d4b66d32vboxsync PVBOXSAMPLEDEVICE pThis = PDMINS_2_DATA(pDevIns, PVBOXSAMPLEDEVICE);
return VINF_SUCCESS;
sizeof(VBOXSAMPLEDEVICE),
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
LogFlow(("VBoxSampleDevice::VBoxDevicesRegister: u32Version=%#x pCallbacks->u32Version=%#x\n", u32Version, pCallbacks->u32Version));