1 ////////////////////////////////////////////////////////////////////////////////////
2 // W32STAPE.H   --   Hercules Win32 SCSI Tape handling module
3 //
4 // (c) Copyright "Fish" (David B. Trout), 2005-2009. Released under
5 // the Q Public License (http://www.hercules-390.org/herclic.html)
6 // as modifications to Hercules.
7 ////////////////////////////////////////////////////////////////////////////////////
8 //
9 //  This module contains only MSVC support for SCSI tapes.
10 //  Primary SCSI Tape support is in module 'scsitape.c'...
11 //
12 ////////////////////////////////////////////////////////////////////////////////////
13 
14 #ifndef _W32STAPE_H_
15 #define _W32STAPE_H_
16 
17 #ifdef _MSVC_
18 
19 #include "w32mtio.h"        // Win32 version of 'mtio.h'
20 
21 #define  WIN32_TAPE_DEVICE_NAME    "\\\\.\\Tape0"
22 
23 #ifndef _W32STAPE_C_
24   #ifndef _HTAPE_DLL_
25     #define W32ST_DLL_IMPORT  DLL_IMPORT
26   #else
27     #define W32ST_DLL_IMPORT  extern
28   #endif
29 #else
30   #define   W32ST_DLL_IMPORT  DLL_EXPORT
31 #endif
32 
33 W32ST_DLL_IMPORT int     w32_open_tape  ( const char* path, int oflag,   ... );
34 W32ST_DLL_IMPORT int     w32_define_BOT ( int fd, U32 msk, U32 bot );
35 W32ST_DLL_IMPORT int     w32_ioctl_tape ( int fd,       int request, ... );
36 W32ST_DLL_IMPORT int     w32_close_tape ( int fd );
37 W32ST_DLL_IMPORT ssize_t w32_read_tape  ( int fd,       void* buf, size_t nbyte );
38 W32ST_DLL_IMPORT ssize_t w32_write_tape ( int fd, const void* buf, size_t nbyte );
39 
40 #endif // _MSVC_
41 
42 #endif // _W32STAPE_H_
43