/* $Id: DrvAcpiCpu.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */ /** @file * DrvAcpiCpu - ACPI CPU dummy driver for hotplugging. */ /* * Copyright (C) 2006-2010 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; * you can redistribute it and/or modify it under the terms of the GNU * General Public License (GPL) as published by the Free Software * Foundation, in version 2 as it comes in the "COPYING" file of the * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. */ /******************************************************************************* * Header Files * *******************************************************************************/ #define LOG_GROUP LOG_GROUP_DRV_ACPI #include #include #include #include #include #include "Builtins.h" /** * @interface_method_impl{PDMIBASE,pfnQueryInterface} */ static DECLCALLBACK(void *) drvACPICpuQueryInterface(PPDMIBASE pInterface, const char *pszIID) { PPDMDRVINS pDrvIns = PDMIBASE_2_PDMDRV(pInterface); PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase); return NULL; } /** * Destruct a driver instance. * * Most VM resources are freed by the VM. This callback is provided so that any non-VM * resources can be freed correctly. * * @param pDrvIns The driver instance data. */ static DECLCALLBACK(void) drvACPICpuDestruct(PPDMDRVINS pDrvIns) { LogFlow(("drvACPICpuDestruct\n")); PDMDRV_CHECK_VERSIONS_RETURN_VOID(pDrvIns); } /** * Construct an ACPI CPU driver instance. * * @copydoc FNPDMDRVCONSTRUCT */ static DECLCALLBACK(int) drvACPICpuConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags) { PDMDRV_CHECK_VERSIONS_RETURN(pDrvIns); /* * Init the static parts. */ /* IBase */ pDrvIns->IBase.pfnQueryInterface = drvACPICpuQueryInterface; /* * Validate the config. */ if (!CFGMR3AreValuesValid(pCfg, "\0")) return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES; /* * Check that no-one is attached to us. */ AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER, ("Configuration error: Not possible to attach anything to this driver!\n"), VERR_PDM_DRVINS_NO_ATTACH); return VINF_SUCCESS; } /** * ACPI CPU driver registration record. */ const PDMDRVREG g_DrvAcpiCpu = { /* u32Version */ PDM_DRVREG_VERSION, /* szName */ "ACPICpu", /* szRCMod */ "", /* szR0Mod */ "", /* pszDescription */ "ACPI CPU Driver", /* fFlags */ PDM_DRVREG_FLAGS_HOST_BITS_DEFAULT, /* fClass. */ PDM_DRVREG_CLASS_ACPI, /* cMaxInstances */ ~0, /* cbInstance */ sizeof(PDMDRVINS), /* pfnConstruct */ drvACPICpuConstruct, /* pfnDestruct */ drvACPICpuDestruct, /* pfnRelocate */ NULL, /* pfnIOCtl */ NULL, /* pfnPowerOn */ NULL, /* pfnReset */ NULL, /* pfnSuspend */ NULL, /* pfnResume */ NULL, /* pfnAttach */ NULL, /* pfnDetach */ NULL, /* pfnPowerOff */ NULL, /* pfnSoftReset */ NULL, /* u32EndVersion */ PDM_DRVREG_VERSION };