|
|
| version 1.1, 2004/01/09 04:36:02 | version 1.6, 2004/06/20 03:40:31 |
|---|---|
| Line 1 | Line 1 |
| #if defined(SUPPORT_HOSTDRV) | |
| #define DIRMAX_DEPTH 8 | #define DIRMAX_DEPTH 8 |
| typedef struct { | enum { |
| char fcbname[12]; | HDFMODE_READ = 0x01, |
| UINT32 size; | HDFMODE_WRITE = 0x02, |
| UINT32 attr; | HDFMODE_DELETE = 0x04 |
| } HDRVDIR; | }; |
| typedef struct { | |
| HDRVDIR di; | |
| char realname[MAX_PATH]; | |
| } _HDRVLST, *HDRVLST; | |
| typedef struct { | |
| HDRVDIR di; | |
| char path[MAX_PATH]; | |
| } HDRVPATH; | |
| typedef struct { | typedef struct { |
| long hdl; | long hdl; |
| UINT32 mode; | UINT mode; |
| char path[MAX_PATH]; | OEMCHAR path[MAX_PATH]; |
| } _HDRVFILE, *HDRVFILE; | } _HDRVFILE, *HDRVFILE; |
| typedef struct { | typedef struct { |
| UINT8 is_mount; | struct { |
| UINT8 drive_no; | UINT8 is_mount; |
| UINT8 dosver_major; | UINT8 drive_no; |
| UINT8 dosver_minor; | UINT8 dosver_major; |
| UINT16 sda_off; | UINT8 dosver_minor; |
| UINT16 sda_seg; | UINT16 sda_off; |
| UINT flistpos; | UINT16 sda_seg; |
| UINT flistpos; | |
| } stat; | |
| // LISTARRAY cache[DIRMAX_DEPTH]; | // LISTARRAY cache[DIRMAX_DEPTH]; |
| LISTARRAY fhdl; | LISTARRAY fhdl; |
| LISTARRAY flist; | LISTARRAY flist; |
| } HOSTDRV; | } HOSTDRV; |
| #if 0 | |
| typedef struct { | |
| char filename[MAX_PATH]; | |
| UINT32 mode; | |
| } HOSTDRVFILE; | |
| #endif | |
| extern HOSTDRV hostdrv; | |
| // extern HOSTDRVFILE hostdrv_files[]; | |
| #if 0 | |
| #pragma pack(1) | |
| typedef union { | |
| LPVOID ptr; | |
| DWORD addr; | |
| struct { | |
| WORD offset; | |
| WORD seg; | |
| }; | |
| } PTR; | |
| typedef struct { | |
| BYTE drive_no; // 作成したドライブ番号(A:=0) | |
| struct { | |
| BYTE major; | |
| BYTE minor; | |
| } dos_ver; // DOSのバージョン | |
| PTR sda_ptr; // DOS上のSDAのアドレス | |
| } IF4DOS; | |
| typedef struct { | |
| IF4DOS if4dos; | |
| int find_drive_no; | |
| BOOL is_mount; | |
| } HOSTDRV; | |
| typedef struct { | |
| char filename[MAX_PATH]; | |
| DWORD mode; | |
| } HOSTDRVFILE; | |
| #pragma pack() | #ifdef __cplusplus |
| extern "C" { | |
| extern HOSTDRV hostdrv; | |
| extern HOSTDRVFILE hostdrv_files[]; | |
| #endif | #endif |
| extern HOSTDRV hostdrv; | |
| void hostdrv_initialize(void); | void hostdrv_initialize(void); |
| void hostdrv_deinitialize(void); | void hostdrv_deinitialize(void); |
| Line 96 void hostdrv_reset(void); | Line 44 void hostdrv_reset(void); |
| // void save_hostdrv(void); | // void save_hostdrv(void); |
| // void load_hostdrv(void); | // void load_hostdrv(void); |
| BOOL hostdrv_mount(void); | void hostdrv_mount(const void *arg1, long arg2); |
| void hostdrv_unmount(void); | void hostdrv_unmount(const void *arg1, long arg2); |
| void hostdrv_intr(void); | void hostdrv_intr(const void *arg1, long arg2); |
| int hostdrv_sfsave(STFLAGH sfh, const SFENTRY *tbl); | |
| int hostdrv_sfload(STFLAGH sfh, const SFENTRY *tbl); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif | |