require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&__DEV_EISA_EISAREG_H__)) {
    eval 'sub __DEV_EISA_EISAREG_H__ () {1;}' unless defined(&__DEV_EISA_EISAREG_H__);
    eval 'sub EISA_SLOT_SIZE () {0x1000;}' unless defined(&EISA_SLOT_SIZE);
    eval 'sub EISA_SLOT_ADDR {
        my($s) = @_;
	    eval q((($s) *  &EISA_SLOT_SIZE));
    }' unless defined(&EISA_SLOT_ADDR);
    eval 'sub EISA_SLOTOFF_VID () {0xc80;}' unless defined(&EISA_SLOTOFF_VID);
    eval 'sub EISA_NVIDREGS () {2;}' unless defined(&EISA_NVIDREGS);
    eval 'sub EISA_SLOTOFF_PID () {0xc82;}' unless defined(&EISA_SLOTOFF_PID);
    eval 'sub EISA_NPIDREGS () {2;}' unless defined(&EISA_NPIDREGS);
    if(defined(&AHA284X_HACK)) {
	eval 'sub EISA_SLOTOFF_PRIMING () { &EISA_SLOTOFF_VID;}' unless defined(&EISA_SLOTOFF_PRIMING);
	eval 'sub EISA_PRIMING_VID {
	    my($index) = @_;
    	    eval q((0x80 + ($index)));
	}' unless defined(&EISA_PRIMING_VID);
	eval 'sub EISA_PRIMING_PID {
	    my($index) = @_;
    	    eval q((0x82 + ($index)));
	}' unless defined(&EISA_PRIMING_PID);
    }
    eval 'sub EISA_IDSTRINGLEN () {8;}' unless defined(&EISA_IDSTRINGLEN);
    eval 'sub EISA_VENDID_NODEV {
        my($vid) = @_;
	    eval q(((($vid)[0] & 0x80) != 0));
    }' unless defined(&EISA_VENDID_NODEV);
    eval 'sub EISA_VENDID_IDDELAY {
        my($vid) = @_;
	    eval q(((($vid)[0] & 0xf0) == 0x70));
    }' unless defined(&EISA_VENDID_IDDELAY);
    eval 'sub EISA_VENDID_0 {
        my($vid) = @_;
	    eval q((((($vid)[0] & 0x7c) >> 2) + ord(\'@\')));
    }' unless defined(&EISA_VENDID_0);
    eval 'sub EISA_VENDID_1 {
        my($vid) = @_;
	    eval q(((((($vid)[0] & 0x3) << 3) | ((($vid)[1] & 0xe0) >> 5)) + ord(\'@\')));
    }' unless defined(&EISA_VENDID_1);
    eval 'sub EISA_VENDID_2 {
        my($vid) = @_;
	    eval q(((($vid)[1] & 0x1f) + ord(\'@\')));
    }' unless defined(&EISA_VENDID_2);
    eval 'sub __EISA_HEX_MAP () {"0123456789ABCDEF";}' unless defined(&__EISA_HEX_MAP);
    eval 'sub EISA_PRODID_0 {
        my($pid) = @_;
	    eval q(( $__EISA_HEX_MAP[((($pid)[0] >> 4) & 0xf)]));
    }' unless defined(&EISA_PRODID_0);
    eval 'sub EISA_PRODID_1 {
        my($pid) = @_;
	    eval q(( $__EISA_HEX_MAP[((($pid)[0] >> 0) & 0xf)]));
    }' unless defined(&EISA_PRODID_1);
    eval 'sub EISA_PRODID_2 {
        my($pid) = @_;
	    eval q(( $__EISA_HEX_MAP[((($pid)[1] >> 4) & 0xf)]));
    }' unless defined(&EISA_PRODID_2);
    eval 'sub EISA_PRODID_3 {
        my($pid) = @_;
	    eval q(( $__EISA_HEX_MAP[((($pid)[1] >> 0) & 0xf)]));
    }' unless defined(&EISA_PRODID_3);
}
1;
