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