1*d5c9a868SElliott Hughes #ifndef __mtools_scsi_h 2*d5c9a868SElliott Hughes #define __mtools_scsi_h 3*d5c9a868SElliott Hughes /* Copyright 1997-1999,2001,2002,2009 Alain Knaff. 4*d5c9a868SElliott Hughes * This file is part of mtools. 5*d5c9a868SElliott Hughes * 6*d5c9a868SElliott Hughes * Mtools is free software: you can redistribute it and/or modify 7*d5c9a868SElliott Hughes * it under the terms of the GNU General Public License as published by 8*d5c9a868SElliott Hughes * the Free Software Foundation, either version 3 of the License, or 9*d5c9a868SElliott Hughes * (at your option) any later version. 10*d5c9a868SElliott Hughes * 11*d5c9a868SElliott Hughes * Mtools is distributed in the hope that it will be useful, 12*d5c9a868SElliott Hughes * but WITHOUT ANY WARRANTY; without even the implied warranty of 13*d5c9a868SElliott Hughes * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*d5c9a868SElliott Hughes * GNU General Public License for more details. 15*d5c9a868SElliott Hughes * 16*d5c9a868SElliott Hughes * You should have received a copy of the GNU General Public License 17*d5c9a868SElliott Hughes * along with Mtools. If not, see <http://www.gnu.org/licenses/>. 18*d5c9a868SElliott Hughes */ 19*d5c9a868SElliott Hughes 20*d5c9a868SElliott Hughes #define SCSI_READ 0x8 21*d5c9a868SElliott Hughes #define SCSI_WRITE 0xA 22*d5c9a868SElliott Hughes #define SCSI_IOMEGA 0xC 23*d5c9a868SElliott Hughes #define SCSI_INQUIRY 0x12 24*d5c9a868SElliott Hughes #define SCSI_MODE_SENSE 0x1a 25*d5c9a868SElliott Hughes #define SCSI_START_STOP 0x1b 26*d5c9a868SElliott Hughes #define SCSI_ALLOW_MEDIUM_REMOVAL 0x1e 27*d5c9a868SElliott Hughes #define SCSI_GROUP1 0x20 28*d5c9a868SElliott Hughes #define SCSI_READ_CAPACITY 0x25 29*d5c9a868SElliott Hughes 30*d5c9a868SElliott Hughes 31*d5c9a868SElliott Hughes typedef enum { SCSI_IO_READ, SCSI_IO_WRITE } scsi_io_mode_t; 32*d5c9a868SElliott Hughes unsigned int scsi_max_length(void); 33*d5c9a868SElliott Hughes int scsi_cmd(int fd, unsigned char cdb[6], uint8_t clen, scsi_io_mode_t mode, 34*d5c9a868SElliott Hughes void *data, uint32_t len, void *extra_data); 35*d5c9a868SElliott Hughes int scsi_open(const char *name, int flags, int mode, void **extra_data); 36*d5c9a868SElliott Hughes 37*d5c9a868SElliott Hughes #endif /* __mtools_scsi_h */ 38