require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&FTDI_SIO_RESET)) {
    sub FTDI_SIO_RESET () {	0;}
}
unless(defined(&FTDI_SIO_MODEM_CTRL)) {
    sub FTDI_SIO_MODEM_CTRL () {	1;}
}
unless(defined(&FTDI_SIO_SET_FLOW_CTRL)) {
    sub FTDI_SIO_SET_FLOW_CTRL () {	2;}
}
unless(defined(&FTDI_SIO_SET_BAUD_RATE)) {
    sub FTDI_SIO_SET_BAUD_RATE () {	3;}
}
unless(defined(&FTDI_SIO_SET_DATA)) {
    sub FTDI_SIO_SET_DATA () {	4;}
}
unless(defined(&FTDI_SIO_GET_STATUS)) {
    sub FTDI_SIO_GET_STATUS () {	5;}
}
unless(defined(&FTDI_SIO_SET_EVENT_CHAR)) {
    sub FTDI_SIO_SET_EVENT_CHAR () {	6;}
}
unless(defined(&FTDI_SIO_SET_ERROR_CHAR)) {
    sub FTDI_SIO_SET_ERROR_CHAR () {	7;}
}
unless(defined(&FTDI_PIT_DEFAULT)) {
    sub FTDI_PIT_DEFAULT () {	0;}
}
unless(defined(&FTDI_PIT_SIOA)) {
    sub FTDI_PIT_SIOA () {	1;}
}
unless(defined(&FTDI_PIT_SIOB)) {
    sub FTDI_PIT_SIOB () {	2;}
}
unless(defined(&FTDI_PIT_PARALLEL)) {
    sub FTDI_PIT_PARALLEL () {	3;}
}
eval("sub UFTDI_TYPE_SIO () { 0; }") unless defined(&UFTDI_TYPE_SIO);
eval("sub UFTDI_TYPE_8U232AM () { 1; }") unless defined(&UFTDI_TYPE_8U232AM);
unless(defined(&FTDI_SIO_RESET_SIO)) {
    sub FTDI_SIO_RESET_SIO () {	0;}
}
unless(defined(&FTDI_SIO_RESET_PURGE_RX)) {
    sub FTDI_SIO_RESET_PURGE_RX () {	1;}
}
unless(defined(&FTDI_SIO_RESET_PURGE_TX)) {
    sub FTDI_SIO_RESET_PURGE_TX () {	2;}
}
eval("sub ftdi_sio_b300 () { 0; }") unless defined(&ftdi_sio_b300);
eval("sub ftdi_sio_b600 () { 1; }") unless defined(&ftdi_sio_b600);
eval("sub ftdi_sio_b1200 () { 2; }") unless defined(&ftdi_sio_b1200);
eval("sub ftdi_sio_b2400 () { 3; }") unless defined(&ftdi_sio_b2400);
eval("sub ftdi_sio_b4800 () { 4; }") unless defined(&ftdi_sio_b4800);
eval("sub ftdi_sio_b9600 () { 5; }") unless defined(&ftdi_sio_b9600);
eval("sub ftdi_sio_b19200 () { 6; }") unless defined(&ftdi_sio_b19200);
eval("sub ftdi_sio_b38400 () { 7; }") unless defined(&ftdi_sio_b38400);
eval("sub ftdi_sio_b57600 () { 8; }") unless defined(&ftdi_sio_b57600);
eval("sub ftdi_sio_b115200 () { 9; }") unless defined(&ftdi_sio_b115200);
unless(defined(&FTDI_8U232AM_FREQ)) {
    sub FTDI_8U232AM_FREQ () {	3000000;}
}
unless(defined(&FTDI_8U232AM_MIN_DIV)) {
    sub FTDI_8U232AM_MIN_DIV () {	0x20;}
}
unless(defined(&FTDI_8U232AM_MAX_DIV)) {
    sub FTDI_8U232AM_MAX_DIV () {	0x3fff8;}
}
unless(defined(&FTDI_SIO_SET_DATA_BITS)) {
    sub FTDI_SIO_SET_DATA_BITS {
	my($n) = @_;
	eval q(($n));
    }
}
unless(defined(&FTDI_SIO_SET_DATA_PARITY_NONE)) {
    sub FTDI_SIO_SET_DATA_PARITY_NONE () {	(0x << 8);}
}
unless(defined(&FTDI_SIO_SET_DATA_PARITY_ODD)) {
    sub FTDI_SIO_SET_DATA_PARITY_ODD () {	(0x1 << 8);}
}
unless(defined(&FTDI_SIO_SET_DATA_PARITY_EVEN)) {
    sub FTDI_SIO_SET_DATA_PARITY_EVEN () {	(0x2 << 8);}
}
unless(defined(&FTDI_SIO_SET_DATA_PARITY_MARK)) {
    sub FTDI_SIO_SET_DATA_PARITY_MARK () {	(0x3 << 8);}
}
unless(defined(&FTDI_SIO_SET_DATA_PARITY_SPACE)) {
    sub FTDI_SIO_SET_DATA_PARITY_SPACE () {	(0x4 << 8);}
}
unless(defined(&FTDI_SIO_SET_DATA_STOP_BITS_1)) {
    sub FTDI_SIO_SET_DATA_STOP_BITS_1 () {	(0x << 11);}
}
unless(defined(&FTDI_SIO_SET_DATA_STOP_BITS_15)) {
    sub FTDI_SIO_SET_DATA_STOP_BITS_15 () {	(0x1 << 11);}
}
unless(defined(&FTDI_SIO_SET_DATA_STOP_BITS_2)) {
    sub FTDI_SIO_SET_DATA_STOP_BITS_2 () {	(0x2 << 11);}
}
unless(defined(&FTDI_SIO_SET_BREAK)) {
    sub FTDI_SIO_SET_BREAK () {	(0x1 << 14);}
}
unless(defined(&FTDI_SIO_SET_DTR_MASK)) {
    sub FTDI_SIO_SET_DTR_MASK () {	0x1;}
}
unless(defined(&FTDI_SIO_SET_DTR_HIGH)) {
    sub FTDI_SIO_SET_DTR_HIGH () {	(1| (  &FTDI_SIO_SET_DTR_MASK << 8));}
}
unless(defined(&FTDI_SIO_SET_DTR_LOW)) {
    sub FTDI_SIO_SET_DTR_LOW () {	(0| (  &FTDI_SIO_SET_DTR_MASK << 8));}
}
unless(defined(&FTDI_SIO_SET_RTS_MASK)) {
    sub FTDI_SIO_SET_RTS_MASK () {	0x2;}
}
unless(defined(&FTDI_SIO_SET_RTS_HIGH)) {
    sub FTDI_SIO_SET_RTS_HIGH () {	(2| (  &FTDI_SIO_SET_RTS_MASK << 8));}
}
unless(defined(&FTDI_SIO_SET_RTS_LOW)) {
    sub FTDI_SIO_SET_RTS_LOW () {	(0| (  &FTDI_SIO_SET_RTS_MASK << 8));}
}
unless(defined(&FTDI_SIO_DISABLE_FLOW_CTRL)) {
    sub FTDI_SIO_DISABLE_FLOW_CTRL () {	0x;}
}
unless(defined(&FTDI_SIO_RTS_CTS_HS)) {
    sub FTDI_SIO_RTS_CTS_HS () {	0x1;}
}
unless(defined(&FTDI_SIO_DTR_DSR_HS)) {
    sub FTDI_SIO_DTR_DSR_HS () {	0x2;}
}
unless(defined(&FTDI_SIO_XON_XOFF_HS)) {
    sub FTDI_SIO_XON_XOFF_HS () {	0x4;}
}
unless(defined(&FTDI_SIO_CTS_MASK)) {
    sub FTDI_SIO_CTS_MASK () {	0x10;}
}
unless(defined(&FTDI_SIO_DSR_MASK)) {
    sub FTDI_SIO_DSR_MASK () {	0x20;}
}
unless(defined(&FTDI_SIO_RI_MASK)) {
    sub FTDI_SIO_RI_MASK () {	0x40;}
}
unless(defined(&FTDI_SIO_RLSD_MASK)) {
    sub FTDI_SIO_RLSD_MASK () {	0x80;}
}
unless(defined(&FTDI_PORT_MASK)) {
    sub FTDI_PORT_MASK () {	0xf;}
}
unless(defined(&FTDI_MSR_MASK)) {
    sub FTDI_MSR_MASK () {	0xf0;}
}
unless(defined(&FTDI_GET_MSR)) {
    sub FTDI_GET_MSR {
	my($p) = @_;
	eval q(((($p)[0]) &  &FTDI_MSR_MASK));
    }
}
unless(defined(&FTDI_GET_LSR)) {
    sub FTDI_GET_LSR {
	my($p) = @_;
	eval q((($p)[1]));
    }
}
unless(defined(&FTDI_LSR_MASK)) {
    sub FTDI_LSR_MASK () {	(~0x60);}
}
unless(defined(&FTDI_OUT_TAG)) {
    sub FTDI_OUT_TAG {
	my($len, $port) = @_;
	eval q(((($len) << 2) | ($port)));
    }
}
1;
