text: /**
   * @file	hostdrvs.h
   * @brief	Interface of host-drive
   */
  
  #pragma once
  
  #if defined(SUPPORT_HOSTDRV)
  
  #include "hostdrv.h"
  #include "dosio.h"
  
  /**
   * dos error codes : see int2159-BX0000
   */
  enum
  {
  	ERR_NOERROR				= 0x00,
  	ERR_FILENOTFOUND		= 0x02,		/*!< File not found */
  	ERR_PATHNOTFOUND		= 0x03,		/*!< Path not found */
  	ERR_NOHANDLESLEFT		= 0x04,		/*!< No handles left */
  	ERR_ACCESSDENIED		= 0x05,
  	ERR_INVALDACCESSMODE	= 0x0c,		/*!< Invalid access mode */
  	ERR_ATTEMPTEDCURRDIR	= 0x10,
  	ERR_NOMOREFILES			= 0x12,
  	ERR_DISKWRITEPROTECTED	= 0x13,
  	ERR_WRITEFAULT			= 0x1d,
  	ERR_READFAULT			= 0x1e
  };
  
  /**
   * @brief DOS ファイル情報
   */
  struct tagHostDrvFile
  {
  	char	fcbname[11];	/*!< FCB 名 */
  	UINT	caps;			/*!< 情報フラグ */
  	UINT32	size;			/*!< サイズ */
  	UINT32	attr;			/*!< 属性 */
  	DOSDATE	date;			/*!< 日付 */
  	DOSTIME	time;			/*!< 時間 */
  };
  typedef struct tagHostDrvFile HDRVFILE;		/*!< 定義 */
  
  /**
   * @brief ファイル リスト情報
   */
  struct tagHostDrvList
  {
  	HDRVFILE file;					/*!< DOS ファイル情報 */
  	OEMCHAR szFilename[MAX_PATH];	/*!< ファイル名 */
  };
  typedef struct tagHostDrvList _HDRVLST;		/*!< 定義 */
  typedef struct tagHostDrvList *HDRVLST;		/*!< 定義 */
  
  /**
   * @brief パス情報
   */
  struct tagHostDrvPath
  {
  	HDRVFILE file;				/*!< DOS ファイル情報 */
  	OEMCHAR szPath[MAX_PATH];	/*!< パス */
  };
  typedef struct tagHostDrvPath HDRVPATH;		/*!< 定義 */
  
  LISTARRAY hostdrvs_getpathlist(const HDRVPATH *phdp, const char *lpMask, UINT nAttr);
  UINT hostdrvs_getrealdir(HDRVPATH *phdp, char *lpFcbname, const char *lpDosPath);
  UINT hostdrvs_appendname(HDRVPATH *phdp, const char *lpFcbname);
  UINT hostdrvs_getrealpath(HDRVPATH *phdp, const char *lpDosPath);
  void hostdrvs_fhdlallclose(LISTARRAY fileArray);
  HDRVHANDLE hostdrvs_fhdlsea(LISTARRAY fileArray);
  
  #endif	/* defined(SUPPORT_HOSTDRV) */
  