require '_h2ph_pre.ph';

unless(defined(&_LINUX_IN_H)) {
    eval 'sub _LINUX_IN_H () {1;}' unless defined(&_LINUX_IN_H);
    require 'linux/types.ph';
    eval("sub IPPROTO_IP () { 0; }") unless defined(&IPPROTO_IP);
    eval("sub IPPROTO_ICMP () { 1; }") unless defined(&IPPROTO_ICMP);
    eval("sub IPPROTO_IGMP () { 2; }") unless defined(&IPPROTO_IGMP);
    eval("sub IPPROTO_IPIP () { 4; }") unless defined(&IPPROTO_IPIP);
    eval("sub IPPROTO_TCP () { 6; }") unless defined(&IPPROTO_TCP);
    eval("sub IPPROTO_EGP () { 8; }") unless defined(&IPPROTO_EGP);
    eval("sub IPPROTO_PUP () { 12; }") unless defined(&IPPROTO_PUP);
    eval("sub IPPROTO_UDP () { 17; }") unless defined(&IPPROTO_UDP);
    eval("sub IPPROTO_IDP () { 22; }") unless defined(&IPPROTO_IDP);
    eval("sub IPPROTO_RSVP () { 46; }") unless defined(&IPPROTO_RSVP);
    eval("sub IPPROTO_GRE () { 47; }") unless defined(&IPPROTO_GRE);
    eval("sub IPPROTO_IPV6 () { 41; }") unless defined(&IPPROTO_IPV6);
    eval("sub IPPROTO_PIM () { 103; }") unless defined(&IPPROTO_PIM);
    eval("sub IPPROTO_ESP () { 50; }") unless defined(&IPPROTO_ESP);
    eval("sub IPPROTO_AH () { 51; }") unless defined(&IPPROTO_AH);
    eval("sub IPPROTO_COMP () { 108; }") unless defined(&IPPROTO_COMP);
    eval("sub IPPROTO_RAW () { 255; }") unless defined(&IPPROTO_RAW);
    eval("sub IPPROTO_MAX () { 256; }") unless defined(&IPPROTO_MAX);
    eval 'sub IP_TOS () {1;}' unless defined(&IP_TOS);
    eval 'sub IP_TTL () {2;}' unless defined(&IP_TTL);
    eval 'sub IP_HDRINCL () {3;}' unless defined(&IP_HDRINCL);
    eval 'sub IP_OPTIONS () {4;}' unless defined(&IP_OPTIONS);
    eval 'sub IP_ROUTER_ALERT () {5;}' unless defined(&IP_ROUTER_ALERT);
    eval 'sub IP_RECVOPTS () {6;}' unless defined(&IP_RECVOPTS);
    eval 'sub IP_RETOPTS () {7;}' unless defined(&IP_RETOPTS);
    eval 'sub IP_PKTINFO () {8;}' unless defined(&IP_PKTINFO);
    eval 'sub IP_PKTOPTIONS () {9;}' unless defined(&IP_PKTOPTIONS);
    eval 'sub IP_MTU_DISCOVER () {10;}' unless defined(&IP_MTU_DISCOVER);
    eval 'sub IP_RECVERR () {11;}' unless defined(&IP_RECVERR);
    eval 'sub IP_RECVTTL () {12;}' unless defined(&IP_RECVTTL);
    eval 'sub IP_RECVTOS () {13;}' unless defined(&IP_RECVTOS);
    eval 'sub IP_MTU () {14;}' unless defined(&IP_MTU);
    eval 'sub IP_FREEBIND () {15;}' unless defined(&IP_FREEBIND);
    eval 'sub IP_RECVRETOPTS () { &IP_RETOPTS;}' unless defined(&IP_RECVRETOPTS);
    eval 'sub IP_PMTUDISC_DONT () {0;}' unless defined(&IP_PMTUDISC_DONT);
    eval 'sub IP_PMTUDISC_WANT () {1;}' unless defined(&IP_PMTUDISC_WANT);
    eval 'sub IP_PMTUDISC_DO () {2;}' unless defined(&IP_PMTUDISC_DO);
    eval 'sub IP_MULTICAST_IF () {32;}' unless defined(&IP_MULTICAST_IF);
    eval 'sub IP_MULTICAST_TTL () {33;}' unless defined(&IP_MULTICAST_TTL);
    eval 'sub IP_MULTICAST_LOOP () {34;}' unless defined(&IP_MULTICAST_LOOP);
    eval 'sub IP_ADD_MEMBERSHIP () {35;}' unless defined(&IP_ADD_MEMBERSHIP);
    eval 'sub IP_DROP_MEMBERSHIP () {36;}' unless defined(&IP_DROP_MEMBERSHIP);
    eval 'sub IP_DEFAULT_MULTICAST_TTL () {1;}' unless defined(&IP_DEFAULT_MULTICAST_TTL);
    eval 'sub IP_DEFAULT_MULTICAST_LOOP () {1;}' unless defined(&IP_DEFAULT_MULTICAST_LOOP);
    eval 'sub __SOCK_SIZE__ () {16;}' unless defined(&__SOCK_SIZE__);
    eval 'sub sin_zero () { &__pad;}' unless defined(&sin_zero);
    eval 'sub IN_CLASSA {
        local($a) = @_;
	    eval q(((( ($a)) & 0x80000000) == 0));
    }' unless defined(&IN_CLASSA);
    eval 'sub IN_CLASSA_NET () {0xff000000;}' unless defined(&IN_CLASSA_NET);
    eval 'sub IN_CLASSA_NSHIFT () {24;}' unless defined(&IN_CLASSA_NSHIFT);
    eval 'sub IN_CLASSA_HOST () {(0xffffffff & ~ &IN_CLASSA_NET);}' unless defined(&IN_CLASSA_HOST);
    eval 'sub IN_CLASSA_MAX () {128;}' unless defined(&IN_CLASSA_MAX);
    eval 'sub IN_CLASSB {
        local($a) = @_;
	    eval q(((( ($a)) & 0xc0000000) == 0x80000000));
    }' unless defined(&IN_CLASSB);
    eval 'sub IN_CLASSB_NET () {0xffff0000;}' unless defined(&IN_CLASSB_NET);
    eval 'sub IN_CLASSB_NSHIFT () {16;}' unless defined(&IN_CLASSB_NSHIFT);
    eval 'sub IN_CLASSB_HOST () {(0xffffffff & ~ &IN_CLASSB_NET);}' unless defined(&IN_CLASSB_HOST);
    eval 'sub IN_CLASSB_MAX () {65536;}' unless defined(&IN_CLASSB_MAX);
    eval 'sub IN_CLASSC {
        local($a) = @_;
	    eval q(((( ($a)) & 0xe0000000) == 0xc0000000));
    }' unless defined(&IN_CLASSC);
    eval 'sub IN_CLASSC_NET () {0xffffff00;}' unless defined(&IN_CLASSC_NET);
    eval 'sub IN_CLASSC_NSHIFT () {8;}' unless defined(&IN_CLASSC_NSHIFT);
    eval 'sub IN_CLASSC_HOST () {(0xffffffff & ~ &IN_CLASSC_NET);}' unless defined(&IN_CLASSC_HOST);
    eval 'sub IN_CLASSD {
        local($a) = @_;
	    eval q(((( ($a)) & 0xf0000000) == 0xe0000000));
    }' unless defined(&IN_CLASSD);
    eval 'sub IN_MULTICAST {
        local($a) = @_;
	    eval q( &IN_CLASSD($a));
    }' unless defined(&IN_MULTICAST);
    eval 'sub IN_MULTICAST_NET () {0xf0000000;}' unless defined(&IN_MULTICAST_NET);
    eval 'sub IN_EXPERIMENTAL {
        local($a) = @_;
	    eval q(((( ($a)) & 0xf0000000) == 0xf0000000));
    }' unless defined(&IN_EXPERIMENTAL);
    eval 'sub IN_BADCLASS {
        local($a) = @_;
	    eval q( &IN_EXPERIMENTAL(($a)));
    }' unless defined(&IN_BADCLASS);
    eval 'sub INADDR_ANY () {( 0x);}' unless defined(&INADDR_ANY);
    eval 'sub INADDR_BROADCAST () {( 0xffffffff);}' unless defined(&INADDR_BROADCAST);
    eval 'sub INADDR_NONE () {( 0xffffffff);}' unless defined(&INADDR_NONE);
    eval 'sub IN_LOOPBACKNET () {127;}' unless defined(&IN_LOOPBACKNET);
    eval 'sub INADDR_LOOPBACK () {0x7f000001;}' unless defined(&INADDR_LOOPBACK);
    eval 'sub IN_LOOPBACK {
        local($a) = @_;
	    eval q(((( ($a)) & 0xff000000) == 0x7f000000));
    }' unless defined(&IN_LOOPBACK);
    eval 'sub INADDR_UNSPEC_GROUP () {0xe0000000;}' unless defined(&INADDR_UNSPEC_GROUP);
    eval 'sub INADDR_ALLHOSTS_GROUP () {0xe0000001;}' unless defined(&INADDR_ALLHOSTS_GROUP);
    eval 'sub INADDR_ALLRTRS_GROUP () {0xe0000002;}' unless defined(&INADDR_ALLRTRS_GROUP);
    eval 'sub INADDR_MAX_LOCAL_GROUP () {0xe00000ff;}' unless defined(&INADDR_MAX_LOCAL_GROUP);
    require 'asm/byteorder.ph';
}
1;
