19bb1a5cdSimker /** 29bb1a5cdSimker * 39bb1a5cdSimker * TODO: description 49bb1a5cdSimker * 5*06437987SMatt Madia * This file is a part of USB SCSI CAM for Haiku. 69bb1a5cdSimker * May be used under terms of the MIT License 79bb1a5cdSimker * 89bb1a5cdSimker * Author(s): 99bb1a5cdSimker * Siarzhuk Zharski <imker@gmx.li> 109bb1a5cdSimker * 11b3d94504SStephan Aßmus * 12b3d94504SStephan Aßmus */ 13b3d94504SStephan Aßmus #ifndef _USB_SCSI_H_ 14b3d94504SStephan Aßmus #define _USB_SCSI_H_ 15b3d94504SStephan Aßmus 16b3d94504SStephan Aßmus #ifndef _OS_H 17b3d94504SStephan Aßmus #include <OS.h> 18b3d94504SStephan Aßmus #endif //_OS_H 19b3d94504SStephan Aßmus 209bb1a5cdSimker #ifndef _USB_V3_H_ 219bb1a5cdSimker #include <USB3.h> 229bb1a5cdSimker #endif /* _USB_V3_H_ */ 23b3d94504SStephan Aßmus 24b3d94504SStephan Aßmus #ifndef _CAM_H 25b3d94504SStephan Aßmus #include <CAM.h> 26b3d94504SStephan Aßmus #endif /*_CAM_H*/ 27b3d94504SStephan Aßmus 28b3d94504SStephan Aßmus #define MODULE_NAME "usb_scsi" 29b3d94504SStephan Aßmus 30b3d94504SStephan Aßmus #define CONTROLLER_SCSI_BUS 0x00 /* Narrow SCSI bus. Use PI_* to alter this*/ 31b3d94504SStephan Aßmus #define MAX_DEVICES_COUNT 0x07 /* simulate Narrow SCSI bus - 8 devices*/ 32b3d94504SStephan Aßmus #define CONTROLLER_SCSI_ID 0x07 /* "controller" SCSI ID */ 33b3d94504SStephan Aßmus #define MAX_LUNS_COUNT 0x08 34b3d94504SStephan Aßmus 35b3d94504SStephan Aßmus /* transport protocol definitions - are not bitmasks */ 36b3d94504SStephan Aßmus #define PROTO_NONE 0x00000000 37b3d94504SStephan Aßmus #define PROTO_BULK_ONLY 0x00000001 38b3d94504SStephan Aßmus #define PROTO_CB 0x00000002 39b3d94504SStephan Aßmus #define PROTO_CBI 0x00000003 40b3d94504SStephan Aßmus 41b3d94504SStephan Aßmus #define PROTO_VENDOR 0x0000000e 42b3d94504SStephan Aßmus #define PROTO_MASK 0x0000000f 43b3d94504SStephan Aßmus 44b3d94504SStephan Aßmus #define PROTO(__value) ((__value) & PROTO_MASK) 45b3d94504SStephan Aßmus 46b3d94504SStephan Aßmus /* command set definitions - are not bitmasks */ 47b3d94504SStephan Aßmus #define CMDSET_NONE 0x00000000 48b3d94504SStephan Aßmus #define CMDSET_SCSI 0x00000010 49b3d94504SStephan Aßmus #define CMDSET_UFI 0x00000020 50b3d94504SStephan Aßmus #define CMDSET_ATAPI 0x00000030 51b3d94504SStephan Aßmus #define CMDSET_RBC 0x00000040 52b3d94504SStephan Aßmus #define CMDSET_QIC157 0x00000050 53b3d94504SStephan Aßmus 54b3d94504SStephan Aßmus #define CMDSET_VENDOR 0x000000e0 55b3d94504SStephan Aßmus #define CMDSET_MASK 0x000000f0 56b3d94504SStephan Aßmus 57b3d94504SStephan Aßmus #define CMDSET(__value)((__value) & CMDSET_MASK) 58b3d94504SStephan Aßmus 59b3d94504SStephan Aßmus #define HAS_SET(__mask, __flag) \ 60b3d94504SStephan Aßmus (((__mask) & __flag) == (__flag)) 61b3d94504SStephan Aßmus 62b3d94504SStephan Aßmus /* fixes - bitmasked */ 63b3d94504SStephan Aßmus #define FIX_NO_GETMAXLUN 0x00000100 64b3d94504SStephan Aßmus #define FIX_FORCE_RW_TO_6 0x00000200 65b3d94504SStephan Aßmus #define FIX_NO_TEST_UNIT 0x00000400 66b3d94504SStephan Aßmus #define FIX_NO_INQUIRY 0x00000800 67b3d94504SStephan Aßmus #define FIX_TRANS_TEST_UNIT 0x00001000 68b3d94504SStephan Aßmus #define FIX_NO_PREVENT_MEDIA 0x00002000 69b3d94504SStephan Aßmus #define FIX_FORCE_MS_TO_10 0x00004000 70b3d94504SStephan Aßmus #define FIX_FORCE_READ_ONLY 0x00008000 71b3d94504SStephan Aßmus 72b3d94504SStephan Aßmus #define FIX_NONE 0x00000000 73b3d94504SStephan Aßmus #define FIX_MASK 0x000fff00 74b3d94504SStephan Aßmus 75b3d94504SStephan Aßmus #define HAS_FIXES(__value, __fix) \ 76b3d94504SStephan Aßmus HAS_SET((__value), (__fix)) 77b3d94504SStephan Aßmus 78b3d94504SStephan Aßmus #endif /*_USB_SCSI_H_*/ 799bb1a5cdSimker 80