1d2154cff09d431181caed9114304c11bb7374c9vboxsync/* $Id$ */
1d2154cff09d431181caed9114304c11bb7374c9vboxsync
1d2154cff09d431181caed9114304c11bb7374c9vboxsync/** @file
1d2154cff09d431181caed9114304c11bb7374c9vboxsync * VirtualBox COM class implementation
1d2154cff09d431181caed9114304c11bb7374c9vboxsync */
1d2154cff09d431181caed9114304c11bb7374c9vboxsync
1d2154cff09d431181caed9114304c11bb7374c9vboxsync/*
1d2154cff09d431181caed9114304c11bb7374c9vboxsync * Copyright (C) 2012 Oracle Corporation
1d2154cff09d431181caed9114304c11bb7374c9vboxsync *
1d2154cff09d431181caed9114304c11bb7374c9vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
1d2154cff09d431181caed9114304c11bb7374c9vboxsync * available from http://www.virtualbox.org. This file is free software;
1d2154cff09d431181caed9114304c11bb7374c9vboxsync * you can redistribute it and/or modify it under the terms of the GNU
1d2154cff09d431181caed9114304c11bb7374c9vboxsync * General Public License (GPL) as published by the Free Software
1d2154cff09d431181caed9114304c11bb7374c9vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
1d2154cff09d431181caed9114304c11bb7374c9vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1d2154cff09d431181caed9114304c11bb7374c9vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1d2154cff09d431181caed9114304c11bb7374c9vboxsync */
1d2154cff09d431181caed9114304c11bb7374c9vboxsync
1d2154cff09d431181caed9114304c11bb7374c9vboxsync#ifndef ____H_NVRAM
1d2154cff09d431181caed9114304c11bb7374c9vboxsync#define ____H_NVRAM
1d2154cff09d431181caed9114304c11bb7374c9vboxsync
1d2154cff09d431181caed9114304c11bb7374c9vboxsync#include <VBox/com/ptr.h>
1d2154cff09d431181caed9114304c11bb7374c9vboxsync#include <VBox/vmm/pdmdrv.h>
1d2154cff09d431181caed9114304c11bb7374c9vboxsync
1d2154cff09d431181caed9114304c11bb7374c9vboxsyncclass Console;
1d2154cff09d431181caed9114304c11bb7374c9vboxsyncstruct NVRAM;
1d2154cff09d431181caed9114304c11bb7374c9vboxsync
1d2154cff09d431181caed9114304c11bb7374c9vboxsyncclass Nvram
1d2154cff09d431181caed9114304c11bb7374c9vboxsync{
1d2154cff09d431181caed9114304c11bb7374c9vboxsyncpublic:
1d2154cff09d431181caed9114304c11bb7374c9vboxsync Nvram(Console *console);
1d2154cff09d431181caed9114304c11bb7374c9vboxsync virtual ~Nvram();
c4ccc0915f8ac8c1d8eb0565a17043dda0a666ddvboxsync
1d2154cff09d431181caed9114304c11bb7374c9vboxsync Console *getParent(void) { return mParent; }
c4ccc0915f8ac8c1d8eb0565a17043dda0a666ddvboxsync
c4ccc0915f8ac8c1d8eb0565a17043dda0a666ddvboxsync static const PDMDRVREG DrvReg;
1d2154cff09d431181caed9114304c11bb7374c9vboxsync
1d2154cff09d431181caed9114304c11bb7374c9vboxsyncprivate:
1d2154cff09d431181caed9114304c11bb7374c9vboxsync static DECLCALLBACK(void *) drvNvram_QueryInterface(PPDMIBASE pInterface, const char *pszIID);
1d2154cff09d431181caed9114304c11bb7374c9vboxsync static DECLCALLBACK(int) drvNvram_Construct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
1d2154cff09d431181caed9114304c11bb7374c9vboxsync static DECLCALLBACK(void) drvNvram_Destruct(PPDMDRVINS pDrvIns);
1d2154cff09d431181caed9114304c11bb7374c9vboxsync
c4ccc0915f8ac8c1d8eb0565a17043dda0a666ddvboxsync /** Pointer to the parent object. */
1d2154cff09d431181caed9114304c11bb7374c9vboxsync Console * const mParent;
c4ccc0915f8ac8c1d8eb0565a17043dda0a666ddvboxsync /** Pointer to the driver instance data.
c4ccc0915f8ac8c1d8eb0565a17043dda0a666ddvboxsync * Can be NULL during init and termination. */
c4ccc0915f8ac8c1d8eb0565a17043dda0a666ddvboxsync struct NVRAM *mpDrv;
1d2154cff09d431181caed9114304c11bb7374c9vboxsync};
1d2154cff09d431181caed9114304c11bb7374c9vboxsync
1d2154cff09d431181caed9114304c11bb7374c9vboxsync#endif /* !____H_NVRAM */
1d2154cff09d431181caed9114304c11bb7374c9vboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */