require '_h2ph_pre.ph';

unless(defined(&APO_IDECONF)) {
    sub APO_IDECONF () {	0x40;}
}
unless(defined(&APO_IDECONF_EN)) {
    sub APO_IDECONF_EN {
	local($channel) = @_;
	eval q((0x00000001 << (1- ($channel))));
    }
}
unless(defined(&APO_IDECONF_SERR_EN)) {
    sub APO_IDECONF_SERR_EN () {	0x00000100;}
}
unless(defined(&APO_IDECONF_DS_SOURCE)) {
    sub APO_IDECONF_DS_SOURCE () {	0x00000200;}
}
unless(defined(&APO_IDECONF_ALT_INTR_EN)) {
    sub APO_IDECONF_ALT_INTR_EN () {	0x00000400;}
}
unless(defined(&APO_IDECONF_PERR_EN)) {
    sub APO_IDECONF_PERR_EN () {	0x00000800;}
}
unless(defined(&APO_IDECONF_WR_BUFF_EN)) {
    sub APO_IDECONF_WR_BUFF_EN {
	local($channel) = @_;
	eval q((0x00001000 << ((1- ($channel)) << 1)));
    }
}
unless(defined(&APO_IDECONF_RD_PREF_EN)) {
    sub APO_IDECONF_RD_PREF_EN {
	local($channel) = @_;
	eval q((0x00002000 << ((1- ($channel)) << 1)));
    }
}
unless(defined(&APO_IDECONF_DEVSEL_TME)) {
    sub APO_IDECONF_DEVSEL_TME () {	0x00010000;}
}
unless(defined(&APO_IDECONF_MAS_CMD_MON)) {
    sub APO_IDECONF_MAS_CMD_MON () {	0x00020000;}
}
unless(defined(&APO_IDECONF_IO_NAT)) {
    sub APO_IDECONF_IO_NAT {
	local($channel) = @_;
	eval q((0x00400000 << (1- ($channel))));
    }
}
unless(defined(&APO_IDECONF_FIFO_TRSH)) {
    sub APO_IDECONF_FIFO_TRSH {
	local($channel, $x) = @_;
	eval q((($x) & 0x3) << ((1- ($channel)) << 1+ 24));
    }
}
unless(defined(&APO_IDECONF_FIFO_CONF_MASK)) {
    sub APO_IDECONF_FIFO_CONF_MASK () {	0x60000000;}
}
unless(defined(&APO_CTLMISC)) {
    sub APO_CTLMISC () {	0x44;}
}
unless(defined(&APO_CTLMISC_BM_STS_RTY)) {
    sub APO_CTLMISC_BM_STS_RTY () {	0x00000008;}
}
unless(defined(&APO_CTLMISC_FIFO_HWS)) {
    sub APO_CTLMISC_FIFO_HWS () {	0x00000010;}
}
unless(defined(&APO_CTLMISC_WR_IRDY_WS)) {
    sub APO_CTLMISC_WR_IRDY_WS () {	0x00000020;}
}
unless(defined(&APO_CTLMISC_RD_IRDY_WS)) {
    sub APO_CTLMISC_RD_IRDY_WS () {	0x00000040;}
}
unless(defined(&APO_CTLMISC_INTR_SWP)) {
    sub APO_CTLMISC_INTR_SWP () {	0x00004000;}
}
unless(defined(&APO_CTLMISC_DRDY_TIME_MASK)) {
    sub APO_CTLMISC_DRDY_TIME_MASK () {	0x00030000;}
}
unless(defined(&APO_CTLMISC_FIFO_FLSH_RD)) {
    sub APO_CTLMISC_FIFO_FLSH_RD {
	local($channel) = @_;
	eval q((0x00100000 << (1- ($channel))));
    }
}
unless(defined(&APO_CTLMISC_FIFO_FLSH_DMA)) {
    sub APO_CTLMISC_FIFO_FLSH_DMA {
	local($channel) = @_;
	eval q((0x00400000 << (1- ($channel))));
    }
}
unless(defined(&APO_DATATIM)) {
    sub APO_DATATIM () {	0x48;}
}
unless(defined(&APO_DATATIM_MASK)) {
    sub APO_DATATIM_MASK {
	local($channel) = @_;
	eval q((0xffff << ((1- ($channel)) << 4)));
    }
}
unless(defined(&APO_DATATIM_RECOV)) {
    sub APO_DATATIM_RECOV {
	local($channel, $drive, $x) = @_;
	eval q(((($x) & 0xf) << (((1- ($channel)) << 4) + ((1- ($drive)) << 3))));
    }
}
unless(defined(&APO_DATATIM_PULSE)) {
    sub APO_DATATIM_PULSE {
	local($channel, $drive, $x) = @_;
	eval q(((($x) & 0xf) << (((1- ($channel)) << 4) + ((1- ($drive)) << 3) + 4)));
    }
}
unless(defined(&APO_MISCTIM)) {
    sub APO_MISCTIM () {	0x4c;}
}
unless(defined(&APO_UDMA)) {
    sub APO_UDMA () {	0x50;}
}
unless(defined(&APO_UDMA_MASK)) {
    sub APO_UDMA_MASK {
	local($channel) = @_;
	eval q((0xffff << ((1- ($channel)) << 4)));
    }
}
unless(defined(&APO_UDMA_TIME)) {
    sub APO_UDMA_TIME {
	local($channel, $drive, $x) = @_;
	eval q(((($x) & 0xf) << (((1- ($channel)) << 4) + ((1- ($drive)) << 3))));
    }
}
unless(defined(&APO_UDMA_PIO_MODE)) {
    sub APO_UDMA_PIO_MODE {
	local($channel, $drive) = @_;
	eval q((0x20 << (((1- ($channel)) << 4) + ((1- ($drive)) << 3))));
    }
}
unless(defined(&APO_UDMA_EN)) {
    sub APO_UDMA_EN {
	local($channel, $drive) = @_;
	eval q((0x40 << (((1- ($channel)) << 4) + ((1- ($drive)) << 3))));
    }
}
unless(defined(&APO_UDMA_EN_MTH)) {
    sub APO_UDMA_EN_MTH {
	local($channel, $drive) = @_;
	eval q((0x80 << (((1- ($channel)) << 4) + ((1- ($drive)) << 3))));
    }
}
unless(defined(&APO_UDMA_CLK66)) {
    sub APO_UDMA_CLK66 {
	local($channel) = @_;
	eval q((0x08 << ((1- ($channel)) << 4)));
    }
}
1;
