require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_ASM_GENERIC_IOCTL_H)) {
    eval 'sub _ASM_GENERIC_IOCTL_H () {1;}' unless defined(&_ASM_GENERIC_IOCTL_H);
    eval 'sub _IOC_NRBITS () {8;}' unless defined(&_IOC_NRBITS);
    eval 'sub _IOC_TYPEBITS () {8;}' unless defined(&_IOC_TYPEBITS);
    unless(defined(&_IOC_SIZEBITS)) {
	eval 'sub _IOC_SIZEBITS () {14;}' unless defined(&_IOC_SIZEBITS);
    }
    unless(defined(&_IOC_DIRBITS)) {
	eval 'sub _IOC_DIRBITS () {2;}' unless defined(&_IOC_DIRBITS);
    }
    eval 'sub _IOC_NRMASK () {((1<<  &_IOC_NRBITS)-1);}' unless defined(&_IOC_NRMASK);
    eval 'sub _IOC_TYPEMASK () {((1<<  &_IOC_TYPEBITS)-1);}' unless defined(&_IOC_TYPEMASK);
    eval 'sub _IOC_SIZEMASK () {((1<<  &_IOC_SIZEBITS)-1);}' unless defined(&_IOC_SIZEMASK);
    eval 'sub _IOC_DIRMASK () {((1<<  &_IOC_DIRBITS)-1);}' unless defined(&_IOC_DIRMASK);
    eval 'sub _IOC_NRSHIFT () {0;}' unless defined(&_IOC_NRSHIFT);
    eval 'sub _IOC_TYPESHIFT () {( &_IOC_NRSHIFT+ &_IOC_NRBITS);}' unless defined(&_IOC_TYPESHIFT);
    eval 'sub _IOC_SIZESHIFT () {( &_IOC_TYPESHIFT+ &_IOC_TYPEBITS);}' unless defined(&_IOC_SIZESHIFT);
    eval 'sub _IOC_DIRSHIFT () {( &_IOC_SIZESHIFT+ &_IOC_SIZEBITS);}' unless defined(&_IOC_DIRSHIFT);
    unless(defined(&_IOC_NONE)) {
	eval 'sub _IOC_NONE () {0;}' unless defined(&_IOC_NONE);
    }
    unless(defined(&_IOC_WRITE)) {
	eval 'sub _IOC_WRITE () {1;}' unless defined(&_IOC_WRITE);
    }
    unless(defined(&_IOC_READ)) {
	eval 'sub _IOC_READ () {2;}' unless defined(&_IOC_READ);
    }
    eval 'sub _IOC {
        my($dir,$type,$nr,$size) = @_;
	    eval q(((($dir) <<  &_IOC_DIRSHIFT) | (($type) <<  &_IOC_TYPESHIFT) | (($nr) <<  &_IOC_NRSHIFT) | (($size) <<  &_IOC_SIZESHIFT)));
    }' unless defined(&_IOC);
    eval 'sub _IOC_TYPECHECK {
        my($t) = @_;
	    eval q(($sizeof{$t}));
    }' unless defined(&_IOC_TYPECHECK);
    eval 'sub _IO {
        my($type,$nr) = @_;
	    eval q( &_IOC( &_IOC_NONE,($type),($nr),0));
    }' unless defined(&_IO);
    eval 'sub _IOR {
        my($type,$nr,$argtype) = @_;
	    eval q( &_IOC( &_IOC_READ,($type),($nr),( &_IOC_TYPECHECK($argtype))));
    }' unless defined(&_IOR);
    eval 'sub _IOW {
        my($type,$nr,$argtype) = @_;
	    eval q( &_IOC( &_IOC_WRITE,($type),($nr),( &_IOC_TYPECHECK($argtype))));
    }' unless defined(&_IOW);
    eval 'sub _IOWR {
        my($type,$nr,$argtype) = @_;
	    eval q( &_IOC( &_IOC_READ| &_IOC_WRITE,($type),($nr),( &_IOC_TYPECHECK($argtype))));
    }' unless defined(&_IOWR);
    eval 'sub _IOR_BAD {
        my($type,$nr,$argtype) = @_;
	    eval q( &_IOC( &_IOC_READ,($type),($nr),$sizeof{$argtype}));
    }' unless defined(&_IOR_BAD);
    eval 'sub _IOW_BAD {
        my($type,$nr,$argtype) = @_;
	    eval q( &_IOC( &_IOC_WRITE,($type),($nr),$sizeof{$argtype}));
    }' unless defined(&_IOW_BAD);
    eval 'sub _IOWR_BAD {
        my($type,$nr,$argtype) = @_;
	    eval q( &_IOC( &_IOC_READ| &_IOC_WRITE,($type),($nr),$sizeof{$argtype}));
    }' unless defined(&_IOWR_BAD);
    eval 'sub _IOC_DIR {
        my($nr) = @_;
	    eval q(((($nr) >>  &_IOC_DIRSHIFT) &  &_IOC_DIRMASK));
    }' unless defined(&_IOC_DIR);
    eval 'sub _IOC_TYPE {
        my($nr) = @_;
	    eval q(((($nr) >>  &_IOC_TYPESHIFT) &  &_IOC_TYPEMASK));
    }' unless defined(&_IOC_TYPE);
    eval 'sub _IOC_NR {
        my($nr) = @_;
	    eval q(((($nr) >>  &_IOC_NRSHIFT) &  &_IOC_NRMASK));
    }' unless defined(&_IOC_NR);
    eval 'sub _IOC_SIZE {
        my($nr) = @_;
	    eval q(((($nr) >>  &_IOC_SIZESHIFT) &  &_IOC_SIZEMASK));
    }' unless defined(&_IOC_SIZE);
    eval 'sub IOC_IN () {( &_IOC_WRITE <<  &_IOC_DIRSHIFT);}' unless defined(&IOC_IN);
    eval 'sub IOC_OUT () {( &_IOC_READ <<  &_IOC_DIRSHIFT);}' unless defined(&IOC_OUT);
    eval 'sub IOC_INOUT () {(( &_IOC_WRITE| &_IOC_READ) <<  &_IOC_DIRSHIFT);}' unless defined(&IOC_INOUT);
    eval 'sub IOCSIZE_MASK () {( &_IOC_SIZEMASK <<  &_IOC_SIZESHIFT);}' unless defined(&IOCSIZE_MASK);
    eval 'sub IOCSIZE_SHIFT () {( &_IOC_SIZESHIFT);}' unless defined(&IOCSIZE_SHIFT);
}
1;
require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&__ASM_GENERIC_IOCTLS_H)) {
    eval 'sub __ASM_GENERIC_IOCTLS_H () {1;}' unless defined(&__ASM_GENERIC_IOCTLS_H);
    require 'linux/ioctl.ph';
    eval 'sub TCGETS () {0x5401;}' unless defined(&TCGETS);
    eval 'sub TCSETS () {0x5402;}' unless defined(&TCSETS);
    eval 'sub TCSETSW () {0x5403;}' unless defined(&TCSETSW);
    eval 'sub TCSETSF () {0x5404;}' unless defined(&TCSETSF);
    eval 'sub TCGETA () {0x5405;}' unless defined(&TCGETA);
    eval 'sub TCSETA () {0x5406;}' unless defined(&TCSETA);
    eval 'sub TCSETAW () {0x5407;}' unless defined(&TCSETAW);
    eval 'sub TCSETAF () {0x5408;}' unless defined(&TCSETAF);
    eval 'sub TCSBRK () {0x5409;}' unless defined(&TCSBRK);
    eval 'sub TCXONC () {0x540a;}' unless defined(&TCXONC);
    eval 'sub TCFLSH () {0x540b;}' unless defined(&TCFLSH);
    eval 'sub TIOCEXCL () {0x540c;}' unless defined(&TIOCEXCL);
    eval 'sub TIOCNXCL () {0x540d;}' unless defined(&TIOCNXCL);
    eval 'sub TIOCSCTTY () {0x540e;}' unless defined(&TIOCSCTTY);
    eval 'sub TIOCGPGRP () {0x540f;}' unless defined(&TIOCGPGRP);
    eval 'sub TIOCSPGRP () {0x5410;}' unless defined(&TIOCSPGRP);
    eval 'sub TIOCOUTQ () {0x5411;}' unless defined(&TIOCOUTQ);
    eval 'sub TIOCSTI () {0x5412;}' unless defined(&TIOCSTI);
    eval 'sub TIOCGWINSZ () {0x5413;}' unless defined(&TIOCGWINSZ);
    eval 'sub TIOCSWINSZ () {0x5414;}' unless defined(&TIOCSWINSZ);
    eval 'sub TIOCMGET () {0x5415;}' unless defined(&TIOCMGET);
    eval 'sub TIOCMBIS () {0x5416;}' unless defined(&TIOCMBIS);
    eval 'sub TIOCMBIC () {0x5417;}' unless defined(&TIOCMBIC);
    eval 'sub TIOCMSET () {0x5418;}' unless defined(&TIOCMSET);
    eval 'sub TIOCGSOFTCAR () {0x5419;}' unless defined(&TIOCGSOFTCAR);
    eval 'sub TIOCSSOFTCAR () {0x541a;}' unless defined(&TIOCSSOFTCAR);
    eval 'sub FIONREAD () {0x541b;}' unless defined(&FIONREAD);
    eval 'sub TIOCINQ () { &FIONREAD;}' unless defined(&TIOCINQ);
    eval 'sub TIOCLINUX () {0x541c;}' unless defined(&TIOCLINUX);
    eval 'sub TIOCCONS () {0x541d;}' unless defined(&TIOCCONS);
    eval 'sub TIOCGSERIAL () {0x541e;}' unless defined(&TIOCGSERIAL);
    eval 'sub TIOCSSERIAL () {0x541f;}' unless defined(&TIOCSSERIAL);
    eval 'sub TIOCPKT () {0x5420;}' unless defined(&TIOCPKT);
    eval 'sub FIONBIO () {0x5421;}' unless defined(&FIONBIO);
    eval 'sub TIOCNOTTY () {0x5422;}' unless defined(&TIOCNOTTY);
    eval 'sub TIOCSETD () {0x5423;}' unless defined(&TIOCSETD);
    eval 'sub TIOCGETD () {0x5424;}' unless defined(&TIOCGETD);
    eval 'sub TCSBRKP () {0x5425;}' unless defined(&TCSBRKP);
    eval 'sub TIOCSBRK () {0x5427;}' unless defined(&TIOCSBRK);
    eval 'sub TIOCCBRK () {0x5428;}' unless defined(&TIOCCBRK);
    eval 'sub TIOCGSID () {0x5429;}' unless defined(&TIOCGSID);
    eval 'sub TCGETS2 () { &_IOR(ord(\'T\'), 0x2a, \'struct termios2\');}' unless defined(&TCGETS2);
    eval 'sub TCSETS2 () { &_IOW(ord(\'T\'), 0x2b, \'struct termios2\');}' unless defined(&TCSETS2);
    eval 'sub TCSETSW2 () { &_IOW(ord(\'T\'), 0x2c, \'struct termios2\');}' unless defined(&TCSETSW2);
    eval 'sub TCSETSF2 () { &_IOW(ord(\'T\'), 0x2d, \'struct termios2\');}' unless defined(&TCSETSF2);
    eval 'sub TIOCGRS485 () {0x542e;}' unless defined(&TIOCGRS485);
    unless(defined(&TIOCSRS485)) {
	eval 'sub TIOCSRS485 () {0x542f;}' unless defined(&TIOCSRS485);
    }
    eval 'sub TIOCGPTN () { &_IOR(ord(\'T\'), 0x30, \'unsigned int\');}' unless defined(&TIOCGPTN);
    eval 'sub TIOCSPTLCK () { &_IOW(ord(\'T\'), 0x31, \'int\');}' unless defined(&TIOCSPTLCK);
    eval 'sub TIOCGDEV () { &_IOR(ord(\'T\'), 0x32, \'unsigned int\');}' unless defined(&TIOCGDEV);
    eval 'sub TCGETX () {0x5432;}' unless defined(&TCGETX);
    eval 'sub TCSETX () {0x5433;}' unless defined(&TCSETX);
    eval 'sub TCSETXF () {0x5434;}' unless defined(&TCSETXF);
    eval 'sub TCSETXW () {0x5435;}' unless defined(&TCSETXW);
    eval 'sub TIOCSIG () { &_IOW(ord(\'T\'), 0x36, \'int\');}' unless defined(&TIOCSIG);
    eval 'sub TIOCVHANGUP () {0x5437;}' unless defined(&TIOCVHANGUP);
    eval 'sub TIOCGPKT () { &_IOR(ord(\'T\'), 0x38, \'int\');}' unless defined(&TIOCGPKT);
    eval 'sub TIOCGPTLCK () { &_IOR(ord(\'T\'), 0x39, \'int\');}' unless defined(&TIOCGPTLCK);
    eval 'sub TIOCGEXCL () { &_IOR(ord(\'T\'), 0x40, \'int\');}' unless defined(&TIOCGEXCL);
    eval 'sub TIOCGPTPEER () { &_IO(ord(\'T\'), 0x41);}' unless defined(&TIOCGPTPEER);
    eval 'sub TIOCGISO7816 () { &_IOR(ord(\'T\'), 0x42, \'struct serial_iso7816\');}' unless defined(&TIOCGISO7816);
    eval 'sub TIOCSISO7816 () { &_IOWR(ord(\'T\'), 0x43, \'struct serial_iso7816\');}' unless defined(&TIOCSISO7816);
    eval 'sub FIONCLEX () {0x5450;}' unless defined(&FIONCLEX);
    eval 'sub FIOCLEX () {0x5451;}' unless defined(&FIOCLEX);
    eval 'sub FIOASYNC () {0x5452;}' unless defined(&FIOASYNC);
    eval 'sub TIOCSERCONFIG () {0x5453;}' unless defined(&TIOCSERCONFIG);
    eval 'sub TIOCSERGWILD () {0x5454;}' unless defined(&TIOCSERGWILD);
    eval 'sub TIOCSERSWILD () {0x5455;}' unless defined(&TIOCSERSWILD);
    eval 'sub TIOCGLCKTRMIOS () {0x5456;}' unless defined(&TIOCGLCKTRMIOS);
    eval 'sub TIOCSLCKTRMIOS () {0x5457;}' unless defined(&TIOCSLCKTRMIOS);
    eval 'sub TIOCSERGSTRUCT () {0x5458;}' unless defined(&TIOCSERGSTRUCT);
    eval 'sub TIOCSERGETLSR () {0x5459;}' unless defined(&TIOCSERGETLSR);
    eval 'sub TIOCSERGETMULTI () {0x545a;}' unless defined(&TIOCSERGETMULTI);
    eval 'sub TIOCSERSETMULTI () {0x545b;}' unless defined(&TIOCSERSETMULTI);
    eval 'sub TIOCMIWAIT () {0x545c;}' unless defined(&TIOCMIWAIT);
    eval 'sub TIOCGICOUNT () {0x545d;}' unless defined(&TIOCGICOUNT);
    unless(defined(&FIOQSIZE)) {
	eval 'sub FIOQSIZE () {0x5460;}' unless defined(&FIOQSIZE);
    }
    eval 'sub TIOCPKT_DATA () {0;}' unless defined(&TIOCPKT_DATA);
    eval 'sub TIOCPKT_FLUSHREAD () {1;}' unless defined(&TIOCPKT_FLUSHREAD);
    eval 'sub TIOCPKT_FLUSHWRITE () {2;}' unless defined(&TIOCPKT_FLUSHWRITE);
    eval 'sub TIOCPKT_STOP () {4;}' unless defined(&TIOCPKT_STOP);
    eval 'sub TIOCPKT_START () {8;}' unless defined(&TIOCPKT_START);
    eval 'sub TIOCPKT_NOSTOP () {16;}' unless defined(&TIOCPKT_NOSTOP);
    eval 'sub TIOCPKT_DOSTOP () {32;}' unless defined(&TIOCPKT_DOSTOP);
    eval 'sub TIOCPKT_IOCTL () {64;}' unless defined(&TIOCPKT_IOCTL);
    eval 'sub TIOCSER_TEMT () {0x1;}' unless defined(&TIOCSER_TEMT);
}
1;
