require '_h2ph_pre.ph';

unless(defined(&_SCSI_SCSI_H)) {
    eval 'sub _SCSI_SCSI_H () {1;}' unless defined(&_SCSI_SCSI_H);
    require 'features.ph';
    eval 'sub TEST_UNIT_READY () {0x;}' unless defined(&TEST_UNIT_READY);
    eval 'sub REZERO_UNIT () {0x1;}' unless defined(&REZERO_UNIT);
    eval 'sub REQUEST_SENSE () {0x3;}' unless defined(&REQUEST_SENSE);
    eval 'sub FORMAT_UNIT () {0x4;}' unless defined(&FORMAT_UNIT);
    eval 'sub READ_BLOCK_LIMITS () {0x5;}' unless defined(&READ_BLOCK_LIMITS);
    eval 'sub REASSIGN_BLOCKS () {0x7;}' unless defined(&REASSIGN_BLOCKS);
    eval 'sub READ_6 () {0x8;}' unless defined(&READ_6);
    eval 'sub WRITE_6 () {0xa;}' unless defined(&WRITE_6);
    eval 'sub SEEK_6 () {0xb;}' unless defined(&SEEK_6);
    eval 'sub READ_REVERSE () {0xf;}' unless defined(&READ_REVERSE);
    eval 'sub WRITE_FILEMARKS () {0x10;}' unless defined(&WRITE_FILEMARKS);
    eval 'sub SPACE () {0x11;}' unless defined(&SPACE);
    eval 'sub INQUIRY () {0x12;}' unless defined(&INQUIRY);
    eval 'sub RECOVER_BUFFERED_DATA () {0x14;}' unless defined(&RECOVER_BUFFERED_DATA);
    eval 'sub MODE_SELECT () {0x15;}' unless defined(&MODE_SELECT);
    eval 'sub RESERVE () {0x16;}' unless defined(&RESERVE);
    eval 'sub RELEASE () {0x17;}' unless defined(&RELEASE);
    eval 'sub COPY () {0x18;}' unless defined(&COPY);
    eval 'sub ERASE () {0x19;}' unless defined(&ERASE);
    eval 'sub MODE_SENSE () {0x1a;}' unless defined(&MODE_SENSE);
    eval 'sub START_STOP () {0x1b;}' unless defined(&START_STOP);
    eval 'sub RECEIVE_DIAGNOSTIC () {0x1c;}' unless defined(&RECEIVE_DIAGNOSTIC);
    eval 'sub SEND_DIAGNOSTIC () {0x1d;}' unless defined(&SEND_DIAGNOSTIC);
    eval 'sub ALLOW_MEDIUM_REMOVAL () {0x1e;}' unless defined(&ALLOW_MEDIUM_REMOVAL);
    eval 'sub SET_WINDOW () {0x24;}' unless defined(&SET_WINDOW);
    eval 'sub READ_CAPACITY () {0x25;}' unless defined(&READ_CAPACITY);
    eval 'sub READ_10 () {0x28;}' unless defined(&READ_10);
    eval 'sub WRITE_10 () {0x2a;}' unless defined(&WRITE_10);
    eval 'sub SEEK_10 () {0x2b;}' unless defined(&SEEK_10);
    eval 'sub WRITE_VERIFY () {0x2e;}' unless defined(&WRITE_VERIFY);
    eval 'sub VERIFY () {0x2f;}' unless defined(&VERIFY);
    eval 'sub SEARCH_HIGH () {0x30;}' unless defined(&SEARCH_HIGH);
    eval 'sub SEARCH_EQUAL () {0x31;}' unless defined(&SEARCH_EQUAL);
    eval 'sub SEARCH_LOW () {0x32;}' unless defined(&SEARCH_LOW);
    eval 'sub SET_LIMITS () {0x33;}' unless defined(&SET_LIMITS);
    eval 'sub PRE_FETCH () {0x34;}' unless defined(&PRE_FETCH);
    eval 'sub READ_POSITION () {0x34;}' unless defined(&READ_POSITION);
    eval 'sub SYNCHRONIZE_CACHE () {0x35;}' unless defined(&SYNCHRONIZE_CACHE);
    eval 'sub LOCK_UNLOCK_CACHE () {0x36;}' unless defined(&LOCK_UNLOCK_CACHE);
    eval 'sub READ_DEFECT_DATA () {0x37;}' unless defined(&READ_DEFECT_DATA);
    eval 'sub MEDIUM_SCAN () {0x38;}' unless defined(&MEDIUM_SCAN);
    eval 'sub COMPARE () {0x39;}' unless defined(&COMPARE);
    eval 'sub COPY_VERIFY () {0x3a;}' unless defined(&COPY_VERIFY);
    eval 'sub WRITE_BUFFER () {0x3b;}' unless defined(&WRITE_BUFFER);
    eval 'sub READ_BUFFER () {0x3c;}' unless defined(&READ_BUFFER);
    eval 'sub UPDATE_BLOCK () {0x3d;}' unless defined(&UPDATE_BLOCK);
    eval 'sub READ_LONG () {0x3e;}' unless defined(&READ_LONG);
    eval 'sub WRITE_LONG () {0x3f;}' unless defined(&WRITE_LONG);
    eval 'sub CHANGE_DEFINITION () {0x40;}' unless defined(&CHANGE_DEFINITION);
    eval 'sub WRITE_SAME () {0x41;}' unless defined(&WRITE_SAME);
    eval 'sub READ_TOC () {0x43;}' unless defined(&READ_TOC);
    eval 'sub LOG_SELECT () {0x4c;}' unless defined(&LOG_SELECT);
    eval 'sub LOG_SENSE () {0x4d;}' unless defined(&LOG_SENSE);
    eval 'sub MODE_SELECT_10 () {0x55;}' unless defined(&MODE_SELECT_10);
    eval 'sub RESERVE_10 () {0x56;}' unless defined(&RESERVE_10);
    eval 'sub RELEASE_10 () {0x57;}' unless defined(&RELEASE_10);
    eval 'sub MODE_SENSE_10 () {0x5a;}' unless defined(&MODE_SENSE_10);
    eval 'sub PERSISTENT_RESERVE_IN () {0x5e;}' unless defined(&PERSISTENT_RESERVE_IN);
    eval 'sub PERSISTENT_RESERVE_OUT () {0x5f;}' unless defined(&PERSISTENT_RESERVE_OUT);
    eval 'sub MOVE_MEDIUM () {0xa5;}' unless defined(&MOVE_MEDIUM);
    eval 'sub READ_12 () {0xa8;}' unless defined(&READ_12);
    eval 'sub WRITE_12 () {0xaa;}' unless defined(&WRITE_12);
    eval 'sub WRITE_VERIFY_12 () {0xae;}' unless defined(&WRITE_VERIFY_12);
    eval 'sub SEARCH_HIGH_12 () {0xb0;}' unless defined(&SEARCH_HIGH_12);
    eval 'sub SEARCH_EQUAL_12 () {0xb1;}' unless defined(&SEARCH_EQUAL_12);
    eval 'sub SEARCH_LOW_12 () {0xb2;}' unless defined(&SEARCH_LOW_12);
    eval 'sub READ_ELEMENT_STATUS () {0xb8;}' unless defined(&READ_ELEMENT_STATUS);
    eval 'sub SEND_VOLUME_TAG () {0xb6;}' unless defined(&SEND_VOLUME_TAG);
    eval 'sub WRITE_LONG_2 () {0xea;}' unless defined(&WRITE_LONG_2);
    eval 'sub GOOD () {0x;}' unless defined(&GOOD);
    eval 'sub CHECK_CONDITION () {0x1;}' unless defined(&CHECK_CONDITION);
    eval 'sub CONDITION_GOOD () {0x2;}' unless defined(&CONDITION_GOOD);
    eval 'sub BUSY () {0x4;}' unless defined(&BUSY);
    eval 'sub INTERMEDIATE_GOOD () {0x8;}' unless defined(&INTERMEDIATE_GOOD);
    eval 'sub INTERMEDIATE_C_GOOD () {0xa;}' unless defined(&INTERMEDIATE_C_GOOD);
    eval 'sub RESERVATION_CONFLICT () {0xc;}' unless defined(&RESERVATION_CONFLICT);
    eval 'sub COMMAND_TERMINATED () {0x11;}' unless defined(&COMMAND_TERMINATED);
    eval 'sub QUEUE_FULL () {0x14;}' unless defined(&QUEUE_FULL);
    eval 'sub STATUS_MASK () {0x3e;}' unless defined(&STATUS_MASK);
    eval 'sub NO_SENSE () {0x;}' unless defined(&NO_SENSE);
    eval 'sub RECOVERED_ERROR () {0x1;}' unless defined(&RECOVERED_ERROR);
    eval 'sub NOT_READY () {0x2;}' unless defined(&NOT_READY);
    eval 'sub MEDIUM_ERROR () {0x3;}' unless defined(&MEDIUM_ERROR);
    eval 'sub HARDWARE_ERROR () {0x4;}' unless defined(&HARDWARE_ERROR);
    eval 'sub ILLEGAL_REQUEST () {0x5;}' unless defined(&ILLEGAL_REQUEST);
    eval 'sub UNIT_ATTENTION () {0x6;}' unless defined(&UNIT_ATTENTION);
    eval 'sub DATA_PROTECT () {0x7;}' unless defined(&DATA_PROTECT);
    eval 'sub BLANK_CHECK () {0x8;}' unless defined(&BLANK_CHECK);
    eval 'sub COPY_ABORTED () {0xa;}' unless defined(&COPY_ABORTED);
    eval 'sub ABORTED_COMMAND () {0xb;}' unless defined(&ABORTED_COMMAND);
    eval 'sub VOLUME_OVERFLOW () {0xd;}' unless defined(&VOLUME_OVERFLOW);
    eval 'sub MISCOMPARE () {0xe;}' unless defined(&MISCOMPARE);
    eval 'sub TYPE_DISK () {0x;}' unless defined(&TYPE_DISK);
    eval 'sub TYPE_TAPE () {0x1;}' unless defined(&TYPE_TAPE);
    eval 'sub TYPE_PROCESSOR () {0x3;}' unless defined(&TYPE_PROCESSOR);
    eval 'sub TYPE_WORM () {0x4;}' unless defined(&TYPE_WORM);
    eval 'sub TYPE_ROM () {0x5;}' unless defined(&TYPE_ROM);
    eval 'sub TYPE_SCANNER () {0x6;}' unless defined(&TYPE_SCANNER);
    eval 'sub TYPE_MOD () {0x7;}' unless defined(&TYPE_MOD);
    eval 'sub TYPE_MEDIUM_CHANGER () {0x8;}' unless defined(&TYPE_MEDIUM_CHANGER);
    eval 'sub TYPE_ENCLOSURE () {0xd;}' unless defined(&TYPE_ENCLOSURE);
    eval 'sub TYPE_NO_LUN () {0x7f;}' unless defined(&TYPE_NO_LUN);
    eval 'sub COMMAND_COMPLETE () {0x;}' unless defined(&COMMAND_COMPLETE);
    eval 'sub EXTENDED_MESSAGE () {0x1;}' unless defined(&EXTENDED_MESSAGE);
    eval 'sub EXTENDED_MODIFY_DATA_POINTER () {0x;}' unless defined(&EXTENDED_MODIFY_DATA_POINTER);
    eval 'sub EXTENDED_SDTR () {0x1;}' unless defined(&EXTENDED_SDTR);
    eval 'sub EXTENDED_EXTENDED_IDENTIFY () {0x2;}' unless defined(&EXTENDED_EXTENDED_IDENTIFY);
    eval 'sub EXTENDED_WDTR () {0x3;}' unless defined(&EXTENDED_WDTR);
    eval 'sub SAVE_POINTERS () {0x2;}' unless defined(&SAVE_POINTERS);
    eval 'sub RESTORE_POINTERS () {0x3;}' unless defined(&RESTORE_POINTERS);
    eval 'sub DISCONNECT () {0x4;}' unless defined(&DISCONNECT);
    eval 'sub INITIATOR_ERROR () {0x5;}' unless defined(&INITIATOR_ERROR);
    eval 'sub ABORT () {0x6;}' unless defined(&ABORT);
    eval 'sub MESSAGE_REJECT () {0x7;}' unless defined(&MESSAGE_REJECT);
    eval 'sub NOP () {0x8;}' unless defined(&NOP);
    eval 'sub MSG_PARITY_ERROR () {0x9;}' unless defined(&MSG_PARITY_ERROR);
    eval 'sub LINKED_CMD_COMPLETE () {0xa;}' unless defined(&LINKED_CMD_COMPLETE);
    eval 'sub LINKED_FLG_CMD_COMPLETE () {0xb;}' unless defined(&LINKED_FLG_CMD_COMPLETE);
    eval 'sub BUS_DEVICE_RESET () {0xc;}' unless defined(&BUS_DEVICE_RESET);
    eval 'sub INITIATE_RECOVERY () {0xf;}' unless defined(&INITIATE_RECOVERY);
    eval 'sub RELEASE_RECOVERY () {0x10;}' unless defined(&RELEASE_RECOVERY);
    eval 'sub SIMPLE_QUEUE_TAG () {0x20;}' unless defined(&SIMPLE_QUEUE_TAG);
    eval 'sub HEAD_OF_QUEUE_TAG () {0x21;}' unless defined(&HEAD_OF_QUEUE_TAG);
    eval 'sub ORDERED_QUEUE_TAG () {0x22;}' unless defined(&ORDERED_QUEUE_TAG);
    eval 'sub SCSI_IOCTL_GET_IDLUN () {0x5382;}' unless defined(&SCSI_IOCTL_GET_IDLUN);
    eval 'sub SCSI_IOCTL_TAGGED_ENABLE () {0x5383;}' unless defined(&SCSI_IOCTL_TAGGED_ENABLE);
    eval 'sub SCSI_IOCTL_TAGGED_DISABLE () {0x5384;}' unless defined(&SCSI_IOCTL_TAGGED_DISABLE);
    eval 'sub SCSI_IOCTL_PROBE_HOST () {0x5385;}' unless defined(&SCSI_IOCTL_PROBE_HOST);
    eval 'sub SCSI_IOCTL_GET_BUS_NUMBER () {0x5386;}' unless defined(&SCSI_IOCTL_GET_BUS_NUMBER);
}
1;
