1218893Sdim/** 2193323Sed * 3193323Sed * TODO: description 4193323Sed * 5193323Sed * This file is a part of USB SCSI CAM for Haiku. 6193323Sed * May be used under terms of the MIT License 7193323Sed * 8193323Sed * Author(s): 9193323Sed * Siarzhuk Zharski <imker@gmx.li> 10193323Sed * 11193323Sed * 12193323Sed */ 13193323Sed#ifndef _DEVICE_INFO_H_ 14193323Sed #define _DEVICE_INFO_H_ 15193323Sed 16193323Sed#ifndef _SCSI_COMMANDS_H_ 17193323Sed #include "scsi_commands.h" 18193323Sed#endif /*_SCSI_COMMANDS_H_*/ 19249423Sdim 20212904Sdim#ifndef _PROTO_MODULE_H_ 21249423Sdim #include "proto_module.h" 22249423Sdim#endif /* _PROTO_MODULE_H_ */ 23249423Sdim 24249423Sdimtypedef struct _usb_device_info{ 25193323Sed uint8 dev_num; /**/ 26193323Sed const usb_device device; /**/ 27198090Srdivacky uint16 interface; /**/ 28234353Sdim uint8 max_lun; /**/ 29249423Sdim 30249423Sdim uint32 properties; 31193323Sed 32198090Srdivacky usb_pipe pipe_in; /**/ 33234353Sdim usb_pipe pipe_out; /**/ 34198090Srdivacky usb_pipe pipe_intr; /**/ 35249423Sdim 36198396Srdivacky sem_id lock_sem; /**/ 37193323Sed sem_id trans_sem; /**/ 38193323Sed uint32 tag; /**/ 39198090Srdivacky status_t status; /**/ 40198090Srdivacky 41198090Srdivacky bigtime_t trans_timeout; 42198090Srdivacky usb_module_info *usb_m; 43198090Srdivacky 44198090Srdivacky void *data; /**/ 45198090Srdivacky int actual_len; /**/ 46198892Srdivacky 47199481Srdivacky protocol_module_info *protocol_m; 48199481Srdivacky char *protocol_m_path; 49193323Sed 50199481Srdivacky transform_module_info *transform_m; 51199481Srdivacky char *transform_m_path; 52199481Srdivacky 53199481Srdivacky bool b_trace; 54199481Srdivacky void (*trace)(bool b_force, const char *fmt, ...); 55234353Sdim void (*trace_bytes)(const char *prefix, const uint8 *bytes, size_t bytes_len); 56234353Sdim 57234353Sdim uint8 scsi_command_buf[IOCDBLEN]; 58234353Sdim /* auto sense buffer. Some commands doesn't have it. emulate */ 59234353Sdim scsi_sense_data autosense_data; 60234353Sdim /* iovec autosense_sg; DO NOT RESTORE IT !!!*/ 61234353Sdim uint8 not_ready_luns; 62234353Sdim} usb_device_info; 63234353Sdim 64234353Sdim#endif /* _DEVICE_INFO_H_ */ 65234353Sdim 66234353Sdim