require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&_NET_IF_TUN_H_)) {
    eval 'sub _NET_IF_TUN_H_ () {1;}' unless defined(&_NET_IF_TUN_H_);
    require 'sys/ioccom.ph';
    eval 'sub TUN_OPEN () {0x1;}' unless defined(&TUN_OPEN);
    eval 'sub TUN_INITED () {0x2;}' unless defined(&TUN_INITED);
    eval 'sub TUN_RCOLL () {0x4;}' unless defined(&TUN_RCOLL);
    eval 'sub TUN_IASET () {0x8;}' unless defined(&TUN_IASET);
    eval 'sub TUN_DSTADDR () {0x10;}' unless defined(&TUN_DSTADDR);
    eval 'sub TUN_RWAIT () {0x40;}' unless defined(&TUN_RWAIT);
    eval 'sub TUN_ASYNC () {0x80;}' unless defined(&TUN_ASYNC);
    eval 'sub TUN_NBIO () {0x100;}' unless defined(&TUN_NBIO);
    eval 'sub TUN_BRDADDR () {0x200;}' unless defined(&TUN_BRDADDR);
    eval 'sub TUN_STAYUP () {0x400;}' unless defined(&TUN_STAYUP);
    eval 'sub TUN_LAYER2 () {0x800;}' unless defined(&TUN_LAYER2);
    eval 'sub TUN_READY () {( &TUN_OPEN |  &TUN_INITED);}' unless defined(&TUN_READY);
    eval 'sub TUNMTU () {3000;}' unless defined(&TUNMTU);
    eval 'sub TUNMRU () {16384;}' unless defined(&TUNMRU);
    eval 'sub TUNSIFINFO () { &_IOW(ord(\'t\'), 91, \'struct tuninfo\');}' unless defined(&TUNSIFINFO);
    eval 'sub TUNGIFINFO () { &_IOR(ord(\'t\'), 92, \'struct tuninfo\');}' unless defined(&TUNGIFINFO);
    eval 'sub TUNSIFMODE () { &_IOW(ord(\'t\'), 93, \'int\');}' unless defined(&TUNSIFMODE);
    eval 'sub TUNSDEBUG () { &_IOW(ord(\'t\'), 94, \'int\');}' unless defined(&TUNSDEBUG);
    eval 'sub TUNGDEBUG () { &_IOR(ord(\'t\'), 95, \'int\');}' unless defined(&TUNGDEBUG);
}
1;
