#ifndef __LINUX_PASS_IOCTL_H__ #define __LINUX_PASS_IOCTL_H__ #include #include #include #include #include #include #include #include #include /* File control definitions */ #include /* Error number definitions */ #include /* fork() */ #include #include #include #ifdef __linux__ #include #include #include #include #include #endif #include #include #include "commdef.h" #include "interface.h" #include "arclib.h" #define SCSI_INQUIRY 0x12 #define SCSI_WRITE_BUF 0x3B #define SCSI_READ_BUF 0x3C #define SENSE_LEN 14 #define CDB_SIZE 10 #define BUF_SIZE 2048 class LinuxPassIoctlInterface : public ArcInterface { public: LinuxPassIoctlInterface(); ~LinuxPassIoctlInterface(); bool init(const int nScsiPort); int send(sIF_CMD_BLOCK *ifData); int recv(sIF_CMD_BLOCK *ifData); int syncSend(sIF_CMD_BLOCK *ifData); void requirelock(); void releaselock(); BOOL ClearReadBuffer(); BOOL ClearWriteBuffer(); BOOL ClearReadWriteBuffer(); int getMTU(); void *getDeviceHandle(); public: HANDLE m_hScsi; int fd; pthread_mutex_t mut; }; #endif