require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_SYS_SCSI_ISCSI_H)) {
    eval 'sub _SYS_SCSI_ISCSI_H () {1;}' unless defined(&_SYS_SCSI_ISCSI_H);
    eval 'sub ISCSI_OP_I_NOP () {0x;}' unless defined(&ISCSI_OP_I_NOP);
    eval 'sub ISCSI_OP_SCSI_REQUEST () {0x1;}' unless defined(&ISCSI_OP_SCSI_REQUEST);
    eval 'sub ISCSI_OP_TASK_REQUEST () {0x2;}' unless defined(&ISCSI_OP_TASK_REQUEST);
    eval 'sub ISCSI_OP_LOGIN_REQUEST () {0x3;}' unless defined(&ISCSI_OP_LOGIN_REQUEST);
    eval 'sub ISCSI_OP_TEXT_REQUEST () {0x4;}' unless defined(&ISCSI_OP_TEXT_REQUEST);
    eval 'sub ISCSI_OP_DATA_OUT () {0x5;}' unless defined(&ISCSI_OP_DATA_OUT);
    eval 'sub ISCSI_OP_LOGOUT_REQUEST () {0x6;}' unless defined(&ISCSI_OP_LOGOUT_REQUEST);
    eval 'sub ISCSI_OP_SNACK_REQUEST () {0x10;}' unless defined(&ISCSI_OP_SNACK_REQUEST);
    eval 'sub ISCSI_OP_T_NOP () {0x20;}' unless defined(&ISCSI_OP_T_NOP);
    eval 'sub ISCSI_OP_SCSI_RESPONSE () {0x21;}' unless defined(&ISCSI_OP_SCSI_RESPONSE);
    eval 'sub ISCSI_OP_TASK_RESPONSE () {0x22;}' unless defined(&ISCSI_OP_TASK_RESPONSE);
    eval 'sub ISCSI_OP_LOGIN_RESPONSE () {0x23;}' unless defined(&ISCSI_OP_LOGIN_RESPONSE);
    eval 'sub ISCSI_OP_TEXT_RESPONSE () {0x24;}' unless defined(&ISCSI_OP_TEXT_RESPONSE);
    eval 'sub ISCSI_OP_DATA_IN () {0x25;}' unless defined(&ISCSI_OP_DATA_IN);
    eval 'sub ISCSI_OP_LOGOUT_RESPONSE () {0x26;}' unless defined(&ISCSI_OP_LOGOUT_RESPONSE);
    eval 'sub ISCSI_OP_R2T () {0x31;}' unless defined(&ISCSI_OP_R2T);
    eval 'sub ISCSI_OP_ASYNC () {0x32;}' unless defined(&ISCSI_OP_ASYNC);
    eval 'sub ISCSI_OP_REJECT () {0x3f;}' unless defined(&ISCSI_OP_REJECT);
    eval 'sub ISCSI_PDU_OPCODE {
        my($_o) = @_;
	    eval q((($_o) & 0x3f));
    }' unless defined(&ISCSI_PDU_OPCODE);
    eval 'sub ISCSI_PDU_I {
        my($_h) = @_;
	    eval q((($_h)-> &opcode & 0x40));
    }' unless defined(&ISCSI_PDU_I);
    eval 'sub ISCSI_PDU_F {
        my($_h) = @_;
	    eval q((($_h)-> &flags & 0x80));
    }' unless defined(&ISCSI_PDU_F);
    eval 'sub ISCSI_OP_F_IMMEDIATE () {0x40;}' unless defined(&ISCSI_OP_F_IMMEDIATE);
    eval 'sub ISCSI_ISID_OUI () {0x;}' unless defined(&ISCSI_ISID_OUI);
    eval 'sub ISCSI_ISID_EN () {0x40000000;}' unless defined(&ISCSI_ISID_EN);
    eval 'sub ISCSI_ISID_RAND () {0x80000000;}' unless defined(&ISCSI_ISID_RAND);
    eval 'sub ISCSI_SCSI_F_F () {0x80;}' unless defined(&ISCSI_SCSI_F_F);
    eval 'sub ISCSI_SCSI_F_R () {0x40;}' unless defined(&ISCSI_SCSI_F_R);
    eval 'sub ISCSI_SCSI_F_W () {0x20;}' unless defined(&ISCSI_SCSI_F_W);
    eval 'sub ISCSI_SCSI_ATTR_UNTAGGED () {0;}' unless defined(&ISCSI_SCSI_ATTR_UNTAGGED);
    eval 'sub ISCSI_SCSI_ATTR_SIMPLE () {1;}' unless defined(&ISCSI_SCSI_ATTR_SIMPLE);
    eval 'sub ISCSI_SCSI_ATTR_ORDERED () {2;}' unless defined(&ISCSI_SCSI_ATTR_ORDERED);
    eval 'sub ISCSI_SCSI_ATTR_HEAD_OF_Q () {3;}' unless defined(&ISCSI_SCSI_ATTR_HEAD_OF_Q);
    eval 'sub ISCSI_SCSI_ATTR_ACA () {4;}' unless defined(&ISCSI_SCSI_ATTR_ACA);
    eval 'sub ISCSI_SCSI_STAT_GOOD () {0x;}' unless defined(&ISCSI_SCSI_STAT_GOOD);
    eval 'sub ISCSI_SCSI_STAT_CHCK_COND () {0x2;}' unless defined(&ISCSI_SCSI_STAT_CHCK_COND);
    eval 'sub ISCSI_TEXT_F_F () {0x80;}' unless defined(&ISCSI_TEXT_F_F);
    eval 'sub ISCSI_TEXT_F_C () {0x40;}' unless defined(&ISCSI_TEXT_F_C);
    eval 'sub ISCSI_LOGIN_F_T () {0x80;}' unless defined(&ISCSI_LOGIN_F_T);
    eval 'sub ISCSI_LOGIN_F_C () {0x40;}' unless defined(&ISCSI_LOGIN_F_C);
    eval 'sub ISCSI_LOGIN_F_CSG {
        my($x) = @_;
	    eval q(((($x) & 0x3) << 2));
    }' unless defined(&ISCSI_LOGIN_F_CSG);
    eval 'sub ISCSI_LOGIN_F_NSG {
        my($x) = @_;
	    eval q((($x) & 0x3));
    }' unless defined(&ISCSI_LOGIN_F_NSG);
    eval 'sub ISCSI_LOGIN_STG_SECNEG () {0;}' unless defined(&ISCSI_LOGIN_STG_SECNEG);
    eval 'sub ISCSI_LOGIN_STG_OPNEG () {1;}' unless defined(&ISCSI_LOGIN_STG_OPNEG);
    eval 'sub ISCSI_LOGIN_STG_FULL () {3;}' unless defined(&ISCSI_LOGIN_STG_FULL);
}
1;
