1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * PDM - Pluggable Device Manager, VM Services.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * @todo This has not been implemented, consider dropping the concept.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * Copyright (C) 2006-2010 Oracle Corporation
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * available from http://www.virtualbox.org. This file is free software;
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * you can redistribute it and/or modify it under the terms of the GNU
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * General Public License (GPL) as published by the Free Software
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * The contents of this file may alternatively be used under the terms
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * of the Common Development and Distribution License Version 1.0
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * VirtualBox OSE distribution, in which case the provisions of the
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * CDDL are applicable instead of those of the GPL.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * You may elect to license modified versions of this file under the
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * terms and conditions of either the GPL or the CDDL or both.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync/** @defgroup grp_pdm_services The PDM Services API
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * @ingroup grp_pdm
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * Construct a service instance for a VM.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * @returns VBox status.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * @param pSrvIns The service instance data.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * If the registration structure is needed, pSrvIns->pReg points to it.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * @param pCfg Configuration node handle for the service. Use this to obtain the configuration
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * of the driver instance. It's also found in pSrvIns->pCfg, but since it's primary
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * usage is expected in this function it is passed as a parameter.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsynctypedef DECLCALLBACK(int) FNPDMSRVCONSTRUCT(PPDMSRVINS pSrvIns, PCFGMNODE pCfg);
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync/** Pointer to a FNPDMSRVCONSTRUCT() function. */
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * Destruct a driver instance.
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * Most VM resources are freed by the VM. This callback is provided so that any non-VM
1b33c96954667ba382fa595baf7b31290bfdd517vboxsync * resources can be freed correctly.
typedef DECLCALLBACK(void) FNPDMSRVDETACH(PPDMSRVINS pSrvIns, PPDMDEVINS pDevIns, PPDMDRVINS pDrvIns);
DECLR3CALLBACKMEMBER(bool, pfnAssertEMT,(PPDMSRVINS pSrvIns, const char *pszFile, unsigned iLine, const char *pszFunction));
DECLR3CALLBACKMEMBER(bool, pfnAssertOther,(PPDMSRVINS pSrvIns, const char *pszFile, unsigned iLine, const char *pszFunction));
DECLR3CALLBACKMEMBER(int, pfnTMTimerCreate,(PPDMSRVINS pSrvIns, TMCLOCK enmClock, PFNTMTIMERDEV pfnCallback, const char *pszDesc, PPTMTIMERR3 ppTimer));
#ifdef PDMSRVINSINT_DECLARED
PDMSRVINSINT s;
#define PDMIBASE_2_PDMSRV(pInterface) ( (PPDMSRVINS)((char *)(pInterface) - RT_OFFSETOF(PDMSRVINS, IBase)) )