1 #ifndef _SCSI_IOCTL_H 2 #define _SCSI_IOCTL_H 3 4 #define SCSI_IOCTL_SEND_COMMAND 1 5 #define SCSI_IOCTL_TEST_UNIT_READY 2 6 #define SCSI_IOCTL_BENCHMARK_COMMAND 3 7 #define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters */ 8 #define SCSI_IOCTL_START_UNIT 5 9 #define SCSI_IOCTL_STOP_UNIT 6 10 /* The door lock/unlock constants are compatible with Sun constants for 11 the cdrom */ 12 #define SCSI_IOCTL_DOORLOCK 0x5380 /* lock the eject mechanism */ 13 #define SCSI_IOCTL_DOORUNLOCK 0x5381 /* unlock the mechanism */ 14 15 #define SCSI_REMOVAL_PREVENT 1 16 #define SCSI_REMOVAL_ALLOW 0 17 18 #ifdef __KERNEL__ 19 20 /* 21 * Structures used for scsi_ioctl et al. 22 */ 23 24 typedef struct scsi_ioctl_command { 25 unsigned int inlen; 26 unsigned int outlen; 27 unsigned char data[0]; 28 } Scsi_Ioctl_Command; 29 30 typedef struct scsi_idlun { 31 __u32 dev_id; 32 __u32 host_unique_id; 33 } Scsi_Idlun; 34 35 /* Fibre Channel WWN, port_id struct */ 36 typedef struct scsi_fctargaddress 37 { 38 __u32 host_port_id; 39 unsigned char host_wwn[8]; // include NULL term. 40 } Scsi_FCTargAddress; 41 42 extern int scsi_ioctl (Scsi_Device *dev, int cmd, void *arg); 43 extern int kernel_scsi_ioctl (Scsi_Device *dev, int cmd, void *arg); 44 extern int scsi_ioctl_send_command(Scsi_Device *dev, 45 Scsi_Ioctl_Command *arg); 46 47 #endif 48 49 #endif 50 51 52