require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_DEV_SCSIPI_SCSI_SPC_H_)) {
    eval 'sub _DEV_SCSIPI_SCSI_SPC_H_ () {1;}' unless defined(&_DEV_SCSIPI_SCSI_SPC_H_);
    eval 'sub SCSI_MODE_SELECT_6 () {0x15;}' unless defined(&SCSI_MODE_SELECT_6);
    eval 'sub SMS_SP () {0x1;}' unless defined(&SMS_SP);
    eval 'sub SMS_PF () {0x10;}' unless defined(&SMS_PF);
    eval 'sub SCSI_MODE_SELECT_10 () {0x55;}' unless defined(&SCSI_MODE_SELECT_10);
    eval 'sub SCSI_MODE_SENSE_6 () {0x1a;}' unless defined(&SCSI_MODE_SENSE_6);
    eval 'sub SMS_DBD () {0x8;}' unless defined(&SMS_DBD);
    eval 'sub SMS_PAGE_MASK () {0x3f;}' unless defined(&SMS_PAGE_MASK);
    eval 'sub SMS_PCTRL_MASK () {0xc0;}' unless defined(&SMS_PCTRL_MASK);
    eval 'sub SMS_PCTRL_CURRENT () {0x;}' unless defined(&SMS_PCTRL_CURRENT);
    eval 'sub SMS_PCTRL_CHANGEABLE () {0x40;}' unless defined(&SMS_PCTRL_CHANGEABLE);
    eval 'sub SMS_PCTRL_DEFAULT () {0x80;}' unless defined(&SMS_PCTRL_DEFAULT);
    eval 'sub SMS_PCTRL_SAVED () {0xc0;}' unless defined(&SMS_PCTRL_SAVED);
    eval 'sub SCSI_MODE_SENSE_10 () {0x5a;}' unless defined(&SCSI_MODE_SENSE_10);
    eval 'sub SMS_LLBAA () {0x10;}' unless defined(&SMS_LLBAA);
    eval 'sub SMS_PAGE_ALL_PAGES () {0x3f;}' unless defined(&SMS_PAGE_ALL_PAGES);
    eval 'sub SMPH_LONGLBA () {0x1;}' unless defined(&SMPH_LONGLBA);
    eval 'sub PGCODE_MASK () {0x3f;}' unless defined(&PGCODE_MASK);
    eval 'sub PGCODE_PS () {0x80;}' unless defined(&PGCODE_PS);
    eval 'sub SCSI_CONTROL_MODE_PAGE () {0xa;}' unless defined(&SCSI_CONTROL_MODE_PAGE);
    eval 'sub SCMP_RLEC () {0x1;}' unless defined(&SCMP_RLEC);
    eval 'sub SCMP_GLTSD () {0x2;}' unless defined(&SCMP_GLTSD);
    eval 'sub SCMP_TST_mask () {0x7;}' unless defined(&SCMP_TST_mask);
    eval 'sub SCMP_TST_shift () {5;}' unless defined(&SCMP_TST_shift);
    eval 'sub SCMP_TST_ALL_INIT () {0;}' unless defined(&SCMP_TST_ALL_INIT);
    eval 'sub SCMP_TST_PER_INIT () {1;}' unless defined(&SCMP_TST_PER_INIT);
    eval 'sub SCMP_DQue () {0x1;}' unless defined(&SCMP_DQue);
    eval 'sub SCMP_QErr_mask () {0x3;}' unless defined(&SCMP_QErr_mask);
    eval 'sub SCMP_QErr_shift () {1;}' unless defined(&SCMP_QErr_shift);
    eval 'sub SCMP_QAM_mask () {0xf;}' unless defined(&SCMP_QAM_mask);
    eval 'sub SCMP_QAM_shift () {4;}' unless defined(&SCMP_QAM_shift);
    eval 'sub SCMP_QAM_RESTRICTED () {0x;}' unless defined(&SCMP_QAM_RESTRICTED);
    eval 'sub SCMP_QAM_UNRESTRICTED () {0x1;}' unless defined(&SCMP_QAM_UNRESTRICTED);
    eval 'sub SCMP_EAERP () {0x1;}' unless defined(&SCMP_EAERP);
    eval 'sub SCMP_UAAERP () {0x2;}' unless defined(&SCMP_UAAERP);
    eval 'sub SCMP_RAERP () {0x4;}' unless defined(&SCMP_RAERP);
    eval 'sub SCMP_SWP () {0x8;}' unless defined(&SCMP_SWP);
    eval 'sub SCMP_RAC () {0x40;}' unless defined(&SCMP_RAC);
    eval 'sub SCMP_TAS () {0x80;}' unless defined(&SCMP_TAS);
    eval 'sub SCMP_AM_mask () {0x7;}' unless defined(&SCMP_AM_mask);
    eval 'sub SCMP_AM_FULL () {0;}' unless defined(&SCMP_AM_FULL);
    eval 'sub SCMP_AM_AUXMEM () {1;}' unless defined(&SCMP_AM_AUXMEM);
    eval 'sub SCMP_AM_NOLOAD () {2;}' unless defined(&SCMP_AM_NOLOAD);
    eval 'sub SCSI_DISCONNECT_RECONNECT_PAGE () {0x2;}' unless defined(&SCSI_DISCONNECT_RECONNECT_PAGE);
    eval 'sub SDRP_DTDC_mask () {0x7;}' unless defined(&SDRP_DTDC_mask);
    eval 'sub SDRP_DImm () {0x8;}' unless defined(&SDRP_DImm);
    eval 'sub SDRP_FA_mask () {0x7;}' unless defined(&SDRP_FA_mask);
    eval 'sub SDRP_FA_shift () {4;}' unless defined(&SDRP_FA_shift);
    eval 'sub SDRP_EMDP () {0x80;}' unless defined(&SDRP_EMDP);
    eval 'sub SCSI_INFORMATIONAL_EXCEPTIONS_CONTROL_PAGE () {0x1c;}' unless defined(&SCSI_INFORMATIONAL_EXCEPTIONS_CONTROL_PAGE);
    eval 'sub SIECP_LogErr () {0x1;}' unless defined(&SIECP_LogErr);
    eval 'sub SIECP_TEST () {0x4;}' unless defined(&SIECP_TEST);
    eval 'sub SIECP_DExcpt () {0x8;}' unless defined(&SIECP_DExcpt);
    eval 'sub SIECP_EWasc () {0x10;}' unless defined(&SIECP_EWasc);
    eval 'sub SIECP_EBF () {0x20;}' unless defined(&SIECP_EBF);
    eval 'sub SIECP_PERF () {0x80;}' unless defined(&SIECP_PERF);
    eval 'sub SIECP_MRIE_mask () {0xf;}' unless defined(&SIECP_MRIE_mask);
    eval 'sub SIECP_MRIE_NO_REPORTING () {0x;}' unless defined(&SIECP_MRIE_NO_REPORTING);
    eval 'sub SIECP_MRIE_ASYNC_EVENT () {0x1;}' unless defined(&SIECP_MRIE_ASYNC_EVENT);
    eval 'sub SIECP_MRIE_UNIT_ATN () {0x2;}' unless defined(&SIECP_MRIE_UNIT_ATN);
    eval 'sub SIECP_MRIE_COND_RECOV_ERR () {0x3;}' unless defined(&SIECP_MRIE_COND_RECOV_ERR);
    eval 'sub SIECP_MRIE_UNCOND_RECOV_ERR () {0x4;}' unless defined(&SIECP_MRIE_UNCOND_RECOV_ERR);
    eval 'sub SIECP_MRIE_NO_SENSE () {0x5;}' unless defined(&SIECP_MRIE_NO_SENSE);
    eval 'sub SIECP_MRIE_ON_REQUEST () {0x6;}' unless defined(&SIECP_MRIE_ON_REQUEST);
    eval 'sub SCSI_POWER_CONDITION_PAGE () {0x1a;}' unless defined(&SCSI_POWER_CONDITION_PAGE);
    eval 'sub SPCP_STANDBY () {0x1;}' unless defined(&SPCP_STANDBY);
    eval 'sub SPCP_IDLE () {0x2;}' unless defined(&SPCP_IDLE);
    eval 'sub SCSI_PROTOCOL_SPECIFIC_LUN_PAGE () {0x18;}' unless defined(&SCSI_PROTOCOL_SPECIFIC_LUN_PAGE);
    eval 'sub SPSLP_PROTOCOL_mask () {0xf;}' unless defined(&SPSLP_PROTOCOL_mask);
    eval 'sub SPSLP_PROTOCOL_FCP () {0x;}' unless defined(&SPSLP_PROTOCOL_FCP);
    eval 'sub SPSLP_PROTOCOL_SPI () {0x1;}' unless defined(&SPSLP_PROTOCOL_SPI);
    eval 'sub SPSLP_PROTOCOL_SSA () {0x2;}' unless defined(&SPSLP_PROTOCOL_SSA);
    eval 'sub SPSLP_PROTOCOL_SBP2 () {0x3;}' unless defined(&SPSLP_PROTOCOL_SBP2);
    eval 'sub SPSLP_PROTOCOL_SRP () {0x4;}' unless defined(&SPSLP_PROTOCOL_SRP);
    eval 'sub SPSLP_PROTOCOL_ISCSI () {0x5;}' unless defined(&SPSLP_PROTOCOL_ISCSI);
    eval 'sub SCSI_PROTOCOL_SPECIFIC_PORT_PAGE () {0x19;}' unless defined(&SCSI_PROTOCOL_SPECIFIC_PORT_PAGE);
    eval 'sub SCSI_PREVENT_ALLOW_MEDIUM_REMOVAL () {0x1e;}' unless defined(&SCSI_PREVENT_ALLOW_MEDIUM_REMOVAL);
    eval 'sub SPAMR_ALLOW () {0x;}' unless defined(&SPAMR_ALLOW);
    eval 'sub SPAMR_PREVENT_DT () {0x1;}' unless defined(&SPAMR_PREVENT_DT);
    eval 'sub SPAMR_PREVENT_MC () {0x2;}' unless defined(&SPAMR_PREVENT_MC);
    eval 'sub SPAMR_PREVENT_ALL () {0x3;}' unless defined(&SPAMR_PREVENT_ALL);
    eval 'sub SCSI_RESERVE_6 () {0x16;}' unless defined(&SCSI_RESERVE_6);
    eval 'sub SCSI_RELEASE_6 () {0x17;}' unless defined(&SCSI_RELEASE_6);
    eval 'sub SCSI_RESERVE_10 () {0x56;}' unless defined(&SCSI_RESERVE_10);
    eval 'sub SCSI_RELEASE_10 () {0x57;}' unless defined(&SCSI_RELEASE_10);
    eval 'sub SR_LongID () {0x2;}' unless defined(&SR_LongID);
    eval 'sub SR_3rdPty () {0x10;}' unless defined(&SR_3rdPty);
    eval 'sub SCSI_REPORT_LUNS () {0xa0;}' unless defined(&SCSI_REPORT_LUNS);
    eval 'sub SELECTREPORT_NORMAL () {0x;}' unless defined(&SELECTREPORT_NORMAL);
    eval 'sub SELECTREPORT_WELLKNOWN () {0x1;}' unless defined(&SELECTREPORT_WELLKNOWN);
    eval 'sub SELECTREPORT_ALL () {0x2;}' unless defined(&SELECTREPORT_ALL);
    eval 'sub SCSI_MAINTENANCE_IN () {0xa3;}' unless defined(&SCSI_MAINTENANCE_IN);
    eval 'sub RSOC_REPORT_SUPPORTED_OPCODES () {0xc;}' unless defined(&RSOC_REPORT_SUPPORTED_OPCODES);
    eval 'sub RSOC_ALL () {0x;}' unless defined(&RSOC_ALL);
    eval 'sub RSOC_ONE () {0x1;}' unless defined(&RSOC_ONE);
    eval 'sub RSOC_ONESACD () {0x2;}' unless defined(&RSOC_ONESACD);
    eval 'sub RSOC_ONESA () {0x3;}' unless defined(&RSOC_ONESA);
    eval 'sub RSOC_RCTD () {0x80;}' unless defined(&RSOC_RCTD);
    eval 'sub RSOC_ACD_CTDP () {0x2;}' unless defined(&RSOC_ACD_CTDP);
    eval 'sub RSOC_ACD_SERVACTV () {0x1;}' unless defined(&RSOC_ACD_SERVACTV);
    eval 'sub RSOC_OCD_CTDP () {0x80;}' unless defined(&RSOC_OCD_CTDP);
    eval 'sub RSOC_OCD_SUP_NOT_AVAIL () {0x;}' unless defined(&RSOC_OCD_SUP_NOT_AVAIL);
    eval 'sub RSOC_OCD_SUP_NOT_SUPP () {0x1;}' unless defined(&RSOC_OCD_SUP_NOT_SUPP);
    eval 'sub RSOC_OCD_SUP_SUPP_STD () {0x3;}' unless defined(&RSOC_OCD_SUP_SUPP_STD);
    eval 'sub RSOC_OCD_SUP_SUPP_VENDOR () {0x5;}' unless defined(&RSOC_OCD_SUP_SUPP_VENDOR);
    eval 'sub RSOC_OCD_SUP () {0x7;}' unless defined(&RSOC_OCD_SUP);
    eval 'sub SCSI_REQUEST_SENSE () {0x3;}' unless defined(&SCSI_REQUEST_SENSE);
    eval 'sub SSD_RCODE {
        my($x) = @_;
	    eval q((($x) & 0x7f));
    }' unless defined(&SSD_RCODE);
    eval 'sub SSD_RCODE_CURRENT () {0x70;}' unless defined(&SSD_RCODE_CURRENT);
    eval 'sub SSD_RCODE_DEFERRED () {0x71;}' unless defined(&SSD_RCODE_DEFERRED);
    eval 'sub SSD_RCODE_VALID () {0x80;}' unless defined(&SSD_RCODE_VALID);
    eval 'sub SSD_SENSE_KEY {
        my($x) = @_;
	    eval q((($x) & 0xf));
    }' unless defined(&SSD_SENSE_KEY);
    eval 'sub SSD_ILI () {0x20;}' unless defined(&SSD_ILI);
    eval 'sub SSD_EOM () {0x40;}' unless defined(&SSD_EOM);
    eval 'sub SSD_FILEMARK () {0x80;}' unless defined(&SSD_FILEMARK);
    eval 'sub SSD_SKS_FP_BIT {
        my($x) = @_;
	    eval q((($x) & 0x7));
    }' unless defined(&SSD_SKS_FP_BIT);
    eval 'sub SSD_SKS_FP_BPV () {0x8;}' unless defined(&SSD_SKS_FP_BPV);
    eval 'sub SSK_SKS_FP_CD () {0x40;}' unless defined(&SSK_SKS_FP_CD);
    eval 'sub SSD_SKS_SP_BIT {
        my($x) = @_;
	    eval q((($x) & 0x7));
    }' unless defined(&SSD_SKS_SP_BIT);
    eval 'sub SSD_SKS_SP_BPV () {0x8;}' unless defined(&SSD_SKS_SP_BPV);
    eval 'sub SSD_SKS_SP_SD () {0x20;}' unless defined(&SSD_SKS_SP_SD);
    eval 'sub SSD_SKSV () {0x80;}' unless defined(&SSD_SKSV);
    eval 'sub SSD_ADD_BYTES_LIM {
        my($sp) = @_;
	    eval q((((-> &extra_len) < $sizeof{\'struct scsi_sense_data\'} - 8) ? ($sp)-> &extra_len : $sizeof{\'struct scsi_sense_data\'} - 8));
    }' unless defined(&SSD_ADD_BYTES_LIM);
    eval 'sub SKEY_NO_SENSE () {0x;}' unless defined(&SKEY_NO_SENSE);
    eval 'sub SKEY_RECOVERED_ERROR () {0x1;}' unless defined(&SKEY_RECOVERED_ERROR);
    eval 'sub SKEY_NOT_READY () {0x2;}' unless defined(&SKEY_NOT_READY);
    eval 'sub SKEY_MEDIUM_ERROR () {0x3;}' unless defined(&SKEY_MEDIUM_ERROR);
    eval 'sub SKEY_HARDWARE_ERROR () {0x4;}' unless defined(&SKEY_HARDWARE_ERROR);
    eval 'sub SKEY_ILLEGAL_REQUEST () {0x5;}' unless defined(&SKEY_ILLEGAL_REQUEST);
    eval 'sub SKEY_UNIT_ATTENTION () {0x6;}' unless defined(&SKEY_UNIT_ATTENTION);
    eval 'sub SKEY_DATA_PROTECT () {0x7;}' unless defined(&SKEY_DATA_PROTECT);
    eval 'sub SKEY_BLANK_CHECK () {0x8;}' unless defined(&SKEY_BLANK_CHECK);
    eval 'sub SKEY_VENDOR_SPECIFIC () {0x9;}' unless defined(&SKEY_VENDOR_SPECIFIC);
    eval 'sub SKEY_COPY_ABORTED () {0xa;}' unless defined(&SKEY_COPY_ABORTED);
    eval 'sub SKEY_ABORTED_COMMAND () {0xb;}' unless defined(&SKEY_ABORTED_COMMAND);
    eval 'sub SKEY_EQUAL () {0xc;}' unless defined(&SKEY_EQUAL);
    eval 'sub SKEY_VOLUME_OVERFLOW () {0xd;}' unless defined(&SKEY_VOLUME_OVERFLOW);
    eval 'sub SKEY_MISCOMPARE () {0xe;}' unless defined(&SKEY_MISCOMPARE);
    eval 'sub SCSI_SEND_DIAGNOSTIC () {0x1d;}' unless defined(&SCSI_SEND_DIAGNOSTIC);
    eval 'sub SSD_UnitOffL () {0x1;}' unless defined(&SSD_UnitOffL);
    eval 'sub SSD_DevOffL () {0x2;}' unless defined(&SSD_DevOffL);
    eval 'sub SSD_SelfTest () {0x4;}' unless defined(&SSD_SelfTest);
    eval 'sub SSD_PF () {0x10;}' unless defined(&SSD_PF);
    eval 'sub SSD_CODE {
        my($x) = @_;
	    eval q((($x) << 5));
    }' unless defined(&SSD_CODE);
    eval 'sub SCSI_TEST_UNIT_READY () {0x;}' unless defined(&SCSI_TEST_UNIT_READY);
}
1;
