text: /* $Id: DrvHostFloppy.cpp 69500 2017-10-28 15:14:05Z vboxsync $ */
  /** @file
   *
   * VBox storage devices:
   * Host floppy block driver
   */
  
  /*
   * Copyright (C) 2006-2017 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_HOST_FLOPPY
  
  #include <VBox/vmm/pdmdrv.h>
  #include <VBox/vmm/pdmstorageifs.h>
  #include <iprt/assert.h>
  #include <iprt/file.h>
  #include <iprt/string.h>
  #include <iprt/thread.h>
  #include <iprt/semaphore.h>
  #include <iprt/uuid.h>
  #include <iprt/asm.h>
  #include <iprt/critsect.h>
  
  #include "VBoxDD.h"
  #include "DrvHostBase.h"
  
  
  
  /**
   * @copydoc FNPDMDRVCONSTRUCT
   */
  static DECLCALLBACK(int) drvHostFloppyConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
  {
      RT_NOREF(fFlags);
      LogFlow(("drvHostFloppyConstruct: iInstance=%d\n", pDrvIns->iInstance));
  
      /*
       * Init instance data.
       */
      int rc = DRVHostBaseInit(pDrvIns, pCfg, "Path\0ReadOnly\0Interval\0Locked\0BIOSVisible\0",
                               PDMMEDIATYPE_FLOPPY_1_44);
      LogFlow(("drvHostFloppyConstruct: returns %Rrc\n", rc));
      return rc;
  }
  
  
  /**
   * Block driver registration record.
   */
  const PDMDRVREG g_DrvHostFloppy =
  {
      /* u32Version */
      PDM_DRVREG_VERSION,
      /* szName */
      "HostFloppy",
      /* szRCMod */
      "",
      /* szR0Mod */
      "",
      /* pszDescription */
      "Host Floppy Block Driver.",
      /* fFlags */
      PDM_DRVREG_FLAGS_HOST_BITS_DEFAULT,
      /* fClass. */
      PDM_DRVREG_CLASS_BLOCK,
      /* cMaxInstances */
      ~0U,
      /* cbInstance */
      sizeof(DRVHOSTBASE),
      /* pfnConstruct */
      drvHostFloppyConstruct,
      /* pfnDestruct */
      DRVHostBaseDestruct,
      /* pfnRelocate */
      NULL,
      /* pfnIOCtl */
      NULL,
      /* pfnPowerOn */
      NULL,
      /* pfnReset */
      NULL,
      /* pfnSuspend */
      NULL,
      /* pfnResume */
      NULL,
      /* pfnAttach */
      NULL,
      /* pfnDetach */
      NULL,
      /* pfnPowerOff */
      NULL,
      /* pfnSoftReset */
      NULL,
      /* u32EndVersion */
      PDM_DRVREG_VERSION
  };
  
  