Current Path : /usr/local/lib/perl5/site_perl/5.8.9/mach/sys/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/lib/perl5/site_perl/5.8.9/mach/sys/mbuf.ph |
require '_h2ph_pre.ph'; no warnings 'redefine'; unless(defined(&_SYS_MBUF_H_)) { eval 'sub _SYS_MBUF_H_ () {1;}' unless defined(&_SYS_MBUF_H_); require 'sys/queue.ph'; if(defined(&_KERNEL)) { require 'sys/systm.ph'; require 'vm/uma.ph'; if(defined(&WITNESS)) { require 'sys/lock.ph'; } } eval 'sub MLEN () {( &MSIZE - $sizeof{\'struct m_hdr\'});}' unless defined(&MLEN); eval 'sub MHLEN () {( &MLEN - $sizeof{\'struct pkthdr\'});}' unless defined(&MHLEN); eval 'sub MINCLSIZE () {( &MHLEN + 1);}' unless defined(&MINCLSIZE); eval 'sub M_MAXCOMPRESS () {( &MHLEN / 2);}' unless defined(&M_MAXCOMPRESS); if(defined(&_KERNEL)) { eval 'sub mtod { my($m, $t) = @_; eval q((($t)(($m)-> &m_data))); }' unless defined(&mtod); } if(defined( &__LP64__)) { eval 'sub M_HDR_PAD () {6;}' unless defined(&M_HDR_PAD); } else { eval 'sub M_HDR_PAD () {2;}' unless defined(&M_HDR_PAD); } eval 'sub ether_vtag () { ($PH_vt->{vt_vtag});}' unless defined(ðer_vtag); eval 'sub m_next () { ($m_hdr->{mh_next});}' unless defined(&m_next); eval 'sub m_len () { ($m_hdr->{mh_len});}' unless defined(&m_len); eval 'sub m_data () { ($m_hdr->{mh_data});}' unless defined(&m_data); eval 'sub m_type () { ($m_hdr->{mh_type});}' unless defined(&m_type); eval 'sub m_flags () { ($m_hdr->{mh_flags});}' unless defined(&m_flags); eval 'sub m_nextpkt () { ($m_hdr->{mh_nextpkt});}' unless defined(&m_nextpkt); eval 'sub m_act () { &m_nextpkt;}' unless defined(&m_act); eval 'sub m_pkthdr () { ($M_dat->{MH}->{MH_pkthdr});}' unless defined(&m_pkthdr); eval 'sub m_ext () { ($M_dat->{MH}->{MH_dat}->{MH_ext});}' unless defined(&m_ext); eval 'sub m_pktdat () { ($M_dat->{MH}->{MH_dat}->{MH_databuf});}' unless defined(&m_pktdat); eval 'sub m_dat () { ($M_dat->{M_databuf});}' unless defined(&m_dat); eval 'sub M_EXT () {0x1;}' unless defined(&M_EXT); eval 'sub M_PKTHDR () {0x2;}' unless defined(&M_PKTHDR); eval 'sub M_EOR () {0x4;}' unless defined(&M_EOR); eval 'sub M_RDONLY () {0x8;}' unless defined(&M_RDONLY); eval 'sub M_PROTO1 () {0x10;}' unless defined(&M_PROTO1); eval 'sub M_PROTO2 () {0x20;}' unless defined(&M_PROTO2); eval 'sub M_PROTO3 () {0x40;}' unless defined(&M_PROTO3); eval 'sub M_PROTO4 () {0x80;}' unless defined(&M_PROTO4); eval 'sub M_PROTO5 () {0x100;}' unless defined(&M_PROTO5); eval 'sub M_BCAST () {0x200;}' unless defined(&M_BCAST); eval 'sub M_MCAST () {0x400;}' unless defined(&M_MCAST); eval 'sub M_FRAG () {0x800;}' unless defined(&M_FRAG); eval 'sub M_FIRSTFRAG () {0x1000;}' unless defined(&M_FIRSTFRAG); eval 'sub M_LASTFRAG () {0x2000;}' unless defined(&M_LASTFRAG); eval 'sub M_SKIP_FIREWALL () {0x4000;}' unless defined(&M_SKIP_FIREWALL); eval 'sub M_FREELIST () {0x8000;}' unless defined(&M_FREELIST); eval 'sub M_VLANTAG () {0x10000;}' unless defined(&M_VLANTAG); eval 'sub M_PROMISC () {0x20000;}' unless defined(&M_PROMISC); eval 'sub M_NOFREE () {0x40000;}' unless defined(&M_NOFREE); eval 'sub M_PROTO6 () {0x80000;}' unless defined(&M_PROTO6); eval 'sub M_PROTO7 () {0x100000;}' unless defined(&M_PROTO7); eval 'sub M_PROTO8 () {0x200000;}' unless defined(&M_PROTO8); eval 'sub M_FLOWID () {0x400000;}' unless defined(&M_FLOWID); eval 'sub M_HASHTYPEBITS () {0xf000000;}' unless defined(&M_HASHTYPEBITS); eval 'sub M_FIB () {0xf0000000;}' unless defined(&M_FIB); eval 'sub M_NOTIFICATION () { &M_PROTO5;}' unless defined(&M_NOTIFICATION); eval 'sub M_PROTOFLAGS () {( &M_PROTO1| &M_PROTO2| &M_PROTO3| &M_PROTO4| &M_PROTO5| &M_PROTO6| &M_PROTO7| &M_PROTO8);}' unless defined(&M_PROTOFLAGS); eval 'sub M_HASHTYPE_SHIFT () {24;}' unless defined(&M_HASHTYPE_SHIFT); eval 'sub M_HASHTYPE_NONE () {0x;}' unless defined(&M_HASHTYPE_NONE); eval 'sub M_HASHTYPE_RSS_IPV4 () {0x1;}' unless defined(&M_HASHTYPE_RSS_IPV4); eval 'sub M_HASHTYPE_RSS_TCP_IPV4 () {0x2;}' unless defined(&M_HASHTYPE_RSS_TCP_IPV4); eval 'sub M_HASHTYPE_RSS_IPV6 () {0x3;}' unless defined(&M_HASHTYPE_RSS_IPV6); eval 'sub M_HASHTYPE_RSS_TCP_IPV6 () {0x4;}' unless defined(&M_HASHTYPE_RSS_TCP_IPV6); eval 'sub M_HASHTYPE_RSS_IPV6_EX () {0x5;}' unless defined(&M_HASHTYPE_RSS_IPV6_EX); eval 'sub M_HASHTYPE_RSS_TCP_IPV6_EX () {0x6;}' unless defined(&M_HASHTYPE_RSS_TCP_IPV6_EX); eval 'sub M_HASHTYPE_OPAQUE () {0xf;}' unless defined(&M_HASHTYPE_OPAQUE); eval 'sub M_HASHTYPE_CLEAR { my($m) = @_; eval q(($m)-> &m_flags &= ~( &M_HASHTYPEBITS)); }' unless defined(&M_HASHTYPE_CLEAR); eval 'sub M_HASHTYPE_GET { my($m) = @_; eval q(((($m)-> &m_flags & &M_HASHTYPEBITS) >> &M_HASHTYPE_SHIFT)); }' unless defined(&M_HASHTYPE_GET); eval 'sub M_HASHTYPE_SET { my($m, $v) = @_; eval q( &do { ($m)-> &m_flags &= ~ &M_HASHTYPEBITS; ($m)-> &m_flags |= (($v) << &M_HASHTYPE_SHIFT); } &while (0)); }' unless defined(&M_HASHTYPE_SET); eval 'sub M_HASHTYPE_TEST { my($m, $v) = @_; eval q(( &M_HASHTYPE_GET($m) == ($v))); }' unless defined(&M_HASHTYPE_TEST); eval 'sub M_COPYFLAGS () {( &M_PKTHDR| &M_EOR| &M_RDONLY| &M_PROTOFLAGS| &M_SKIP_FIREWALL| &M_BCAST| &M_MCAST| &M_FRAG| &M_FIRSTFRAG| &M_LASTFRAG| &M_VLANTAG| &M_PROMISC| &M_FIB| &M_HASHTYPEBITS);}' unless defined(&M_COPYFLAGS); eval 'sub EXT_CLUSTER () {1;}' unless defined(&EXT_CLUSTER); eval 'sub EXT_SFBUF () {2;}' unless defined(&EXT_SFBUF); eval 'sub EXT_JUMBOP () {3;}' unless defined(&EXT_JUMBOP); eval 'sub EXT_JUMBO9 () {4;}' unless defined(&EXT_JUMBO9); eval 'sub EXT_JUMBO16 () {5;}' unless defined(&EXT_JUMBO16); eval 'sub EXT_PACKET () {6;}' unless defined(&EXT_PACKET); eval 'sub EXT_MBUF () {7;}' unless defined(&EXT_MBUF); eval 'sub EXT_NET_DRV () {100;}' unless defined(&EXT_NET_DRV); eval 'sub EXT_MOD_TYPE () {200;}' unless defined(&EXT_MOD_TYPE); eval 'sub EXT_DISPOSABLE () {300;}' unless defined(&EXT_DISPOSABLE); eval 'sub EXT_EXTREF () {400;}' unless defined(&EXT_EXTREF); eval 'sub CSUM_IP () {0x1;}' unless defined(&CSUM_IP); eval 'sub CSUM_TCP () {0x2;}' unless defined(&CSUM_TCP); eval 'sub CSUM_UDP () {0x4;}' unless defined(&CSUM_UDP); eval 'sub CSUM_IP_FRAGS () {0x8;}' unless defined(&CSUM_IP_FRAGS); eval 'sub CSUM_FRAGMENT () {0x10;}' unless defined(&CSUM_FRAGMENT); eval 'sub CSUM_TSO () {0x20;}' unless defined(&CSUM_TSO); eval 'sub CSUM_SCTP () {0x40;}' unless defined(&CSUM_SCTP); eval 'sub CSUM_SCTP_IPV6 () {0x80;}' unless defined(&CSUM_SCTP_IPV6); eval 'sub CSUM_IP_CHECKED () {0x100;}' unless defined(&CSUM_IP_CHECKED); eval 'sub CSUM_IP_VALID () {0x200;}' unless defined(&CSUM_IP_VALID); eval 'sub CSUM_DATA_VALID () {0x400;}' unless defined(&CSUM_DATA_VALID); eval 'sub CSUM_PSEUDO_HDR () {0x800;}' unless defined(&CSUM_PSEUDO_HDR); eval 'sub CSUM_SCTP_VALID () {0x1000;}' unless defined(&CSUM_SCTP_VALID); eval 'sub CSUM_UDP_IPV6 () {0x2000;}' unless defined(&CSUM_UDP_IPV6); eval 'sub CSUM_TCP_IPV6 () {0x4000;}' unless defined(&CSUM_TCP_IPV6); eval 'sub CSUM_DELAY_DATA_IPV6 () {( &CSUM_TCP_IPV6 | &CSUM_UDP_IPV6);}' unless defined(&CSUM_DELAY_DATA_IPV6); eval 'sub CSUM_DATA_VALID_IPV6 () { &CSUM_DATA_VALID;}' unless defined(&CSUM_DATA_VALID_IPV6); eval 'sub CSUM_DELAY_DATA () {( &CSUM_TCP | &CSUM_UDP);}' unless defined(&CSUM_DELAY_DATA); eval 'sub CSUM_DELAY_IP () {( &CSUM_IP);}' unless defined(&CSUM_DELAY_IP); eval 'sub MT_NOTMBUF () {0;}' unless defined(&MT_NOTMBUF); eval 'sub MT_DATA () {1;}' unless defined(&MT_DATA); eval 'sub MT_HEADER () { &MT_DATA;}' unless defined(&MT_HEADER); eval 'sub MT_SONAME () {8;}' unless defined(&MT_SONAME); eval 'sub MT_CONTROL () {14;}' unless defined(&MT_CONTROL); eval 'sub MT_OOBDATA () {15;}' unless defined(&MT_OOBDATA); eval 'sub MT_NTYPES () {16;}' unless defined(&MT_NTYPES); eval 'sub MT_NOINIT () {255;}' unless defined(&MT_NOINIT); eval 'sub MB_NOTAGS () {0x1;}' unless defined(&MB_NOTAGS); eval 'sub MBTOM { my($how) = @_; eval q(($how)); }' unless defined(&MBTOM); eval 'sub M_DONTWAIT () { &M_NOWAIT;}' unless defined(&M_DONTWAIT); eval 'sub M_TRYWAIT () { &M_WAITOK;}' unless defined(&M_TRYWAIT); eval 'sub M_WAIT () { &M_WAITOK;}' unless defined(&M_WAIT); eval 'sub MBUF_MEM_NAME () {"mbuf";}' unless defined(&MBUF_MEM_NAME); eval 'sub MBUF_CLUSTER_MEM_NAME () {"mbuf_cluster";}' unless defined(&MBUF_CLUSTER_MEM_NAME); eval 'sub MBUF_PACKET_MEM_NAME () {"mbuf_packet";}' unless defined(&MBUF_PACKET_MEM_NAME); eval 'sub MBUF_JUMBOP_MEM_NAME () {"mbuf_jumbo_page";}' unless defined(&MBUF_JUMBOP_MEM_NAME); eval 'sub MBUF_JUMBO9_MEM_NAME () {"mbuf_jumbo_9k";}' unless defined(&MBUF_JUMBO9_MEM_NAME); eval 'sub MBUF_JUMBO16_MEM_NAME () {"mbuf_jumbo_16k";}' unless defined(&MBUF_JUMBO16_MEM_NAME); eval 'sub MBUF_TAG_MEM_NAME () {"mbuf_tag";}' unless defined(&MBUF_TAG_MEM_NAME); eval 'sub MBUF_EXTREFCNT_MEM_NAME () {"mbuf_ext_refcnt";}' unless defined(&MBUF_EXTREFCNT_MEM_NAME); if(defined(&_KERNEL)) { if(defined(&WITNESS)) { eval 'sub MBUF_CHECKSLEEP { my($how) = @_; eval q( &do { &if ($how == &M_WAITOK) &WITNESS_WARN( &WARN_GIANTOK | &WARN_SLEEPOK, &NULL, \\"Sleeping in \\\\\\"%s\\\\\\"\\", &__func__); } &while (0)); }' unless defined(&MBUF_CHECKSLEEP); } else { eval 'sub MBUF_CHECKSLEEP { my($how) = @_; eval q(); }' unless defined(&MBUF_CHECKSLEEP); } # some #ifdef were dropped here -- fill in the blanks eval 'sub m_gettype { my($size) = @_; eval q({ \'int\' &type; &switch ($size) { &case &MSIZE: &type = &EXT_MBUF; &break; &case &MCLBYTES: &type = &EXT_CLUSTER; &break; &case &MJUM9BYTES: &type = &EXT_JUMBO9; &break; &case &MJUM16BYTES: &type = &EXT_JUMBO16; &break; &default: &panic(\\"%s: m_getjcl: invalid cluster size\\", &__func__); } ( &type); }); }' unless defined(&m_gettype); # some #ifdef were dropped here -- fill in the blanks eval 'sub m_getzone { my($size) = @_; eval q({ &uma_zone_t &zone; &switch ($size) { &case &MSIZE: &zone = &zone_mbuf; &break; &case &MCLBYTES: &zone = &zone_clust; &break; &case &MJUM9BYTES: &zone = &zone_jumbo9; &break; &case &MJUM16BYTES: &zone = &zone_jumbo16; &break; &default: &panic(\\"%s: m_getjcl: invalid cluster type\\", &__func__); } ( &zone); }); }' unless defined(&m_getzone); eval 'sub m_get { my($how,$type) = @_; eval q({ \'struct mb_args\' &args; ($args->{flags}) = 0; ($args->{type}) = $type; (( &uma_zalloc_arg( &zone_mbuf, &args, $how))); }); }' unless defined(&m_get); eval 'sub m_gethdr { my($how,$type) = @_; eval q({ \'struct mb_args\' &args; ($args->{flags}) = &M_PKTHDR; ($args->{type}) = $type; (( &uma_zalloc_arg( &zone_mbuf, &args, $how))); }); }' unless defined(&m_gethdr); eval 'sub m_getcl { my($how,$type,$flags) = @_; eval q({ \'struct mb_args\' &args; ($args->{flags}) = $flags; ($args->{type}) = $type; (( &uma_zalloc_arg( &zone_pack, &args, $how))); }); }' unless defined(&m_getcl); # some #ifdef were dropped here -- fill in the blanks eval 'sub m_free_fast { my($m) = @_; eval q({ &uma_zfree_arg( &zone_mbuf, $m, ( &void *) &MB_NOTAGS); }); }' unless defined(&m_free_fast); eval 'sub m_free { my($m) = @_; eval q({ \'struct mbuf\' * &n = ($m->{m_next}); &if ( ($m->{m_flags}) & &M_EXT) &mb_free_ext($m); &else &if (( ($m->{m_flags}) & &M_NOFREE) == 0) &uma_zfree( &zone_mbuf, $m); ( &n); }); }' unless defined(&m_free); eval 'sub m_clget { my($m,$how) = @_; eval q({ &if ( ($m->{m_flags}) & &M_EXT) &printf(\\"%s: %p mbuf already has cluster\\\\n\\", &__func__, $m); ($m->{m_ext}->{ext_buf}) = &NULL; &uma_zalloc_arg( &zone_clust, $m, $how); &if (($how & &M_NOWAIT) && ( ($m->{m_ext}->{ext_buf}) == &NULL)) { &zone_drain( &zone_pack); &uma_zalloc_arg( &zone_clust, $m, $how); } }); }' unless defined(&m_clget); # some #ifdef were dropped here -- fill in the blanks eval 'sub m_cljset { my($m,$cl,$type) = @_; eval q({ &uma_zone_t &zone; \'int\' &size; &switch ($type) { &case &EXT_CLUSTER: &size = &MCLBYTES; &zone = &zone_clust; &break; &case &EXT_JUMBO9: &size = &MJUM9BYTES; &zone = &zone_jumbo9; &break; &case &EXT_JUMBO16: &size = &MJUM16BYTES; &zone = &zone_jumbo16; &break; &default: &panic(\\"unknown cluster type\\"); &break; } ($m->{m_data}) = ($m->{m_ext}->{ext_buf}) = $cl; ($m->{m_ext}->{ext_free}) = ($m->{m_ext}->{ext_arg1}) = ($m->{m_ext}->{ext_arg2}) = &NULL; ($m->{m_ext}->{ext_size}) = &size; ($m->{m_ext}->{ext_type}) = $type; ($m->{m_ext}->{ref_cnt}) = &uma_find_refcnt( &zone, $cl); ($m->{m_flags}) |= &M_EXT; }); }' unless defined(&m_cljset); eval 'sub m_chtype { my($m,$new_type) = @_; eval q({ ($m->{m_type}) = $new_type; }); }' unless defined(&m_chtype); eval 'sub m_last { my($m) = @_; eval q({ &while ( ($m->{m_next})) $m = ($m->{m_next}); ($m); }); }' unless defined(&m_last); eval 'sub m_addr_changed { my($m) = @_; eval q({ &if ( &m_addr_chg_pf_p) &m_addr_chg_pf_p($m); }); }' unless defined(&m_addr_changed); eval 'sub M_MOVE_PKTHDR { my($to, $from) = @_; eval q( &m_move_pkthdr(($to), ($from))); }' unless defined(&M_MOVE_PKTHDR); eval 'sub MGET { my($m, $how, $type) = @_; eval q((($m) = &m_get(($how), ($type)))); }' unless defined(&MGET); eval 'sub MGETHDR { my($m, $how, $type) = @_; eval q((($m) = &m_gethdr(($how), ($type)))); }' unless defined(&MGETHDR); eval 'sub MCLGET { my($m, $how) = @_; eval q( &m_clget(($m), ($how))); }' unless defined(&MCLGET); eval 'sub MEXTADD { my($m, $buf, $size, $free, $arg1, $arg2, $flags, $type) = @_; eval q( &m_extadd(, ($buf), ($size), ($free),($arg1),($arg2),($flags), ($type))); }' unless defined(&MEXTADD); eval 'sub m_getm { my($m, $len, $how, $type) = @_; eval q( &m_getm2(($m), ($len), ($how), ($type), &M_PKTHDR)); }' unless defined(&m_getm); eval 'sub M_WRITABLE { my($m) = @_; eval q((!(($m)-> &m_flags & &M_RDONLY) && (!((($m)-> &m_flags & &M_EXT)) || (*(($m)-> ($m_ext->{ref_cnt})) == 1)) )); }' unless defined(&M_WRITABLE); eval 'sub M_ASSERTPKTHDR { my($m) = @_; eval q( &KASSERT(($m) != &NULL && ($m)-> &m_flags & &M_PKTHDR, (\\"%s: no mbuf packet header!\\", &__func__))); }' unless defined(&M_ASSERTPKTHDR); eval 'sub M_ASSERTVALID { my($m) = @_; eval q( &KASSERT((($m)-> &m_flags & 0) == 0, (\\"%s: attempted use of a free mbuf!\\", &__func__))); }' unless defined(&M_ASSERTVALID); eval 'sub M_ALIGN { my($m, $len) = @_; eval q( &do { &KASSERT(!(($m)-> &m_flags & ( &M_PKTHDR| &M_EXT)), (\\"%s: M_ALIGN not normal mbuf\\", &__func__)); &KASSERT(($m)-> &m_data == ($m)-> &m_dat, (\\"%s: M_ALIGN not a virgin mbuf\\", &__func__)); ($m)-> &m_data += ( &MLEN - ($len)) & ~($sizeof{\'long\'} - 1); } &while (0)); }' unless defined(&M_ALIGN); eval 'sub MH_ALIGN { my($m, $len) = @_; eval q( &do { &KASSERT(($m)-> &m_flags & &M_PKTHDR && !(($m)-> &m_flags & &M_EXT), (\\"%s: MH_ALIGN not PKTHDR mbuf\\", &__func__)); &KASSERT(($m)-> &m_data == ($m)-> &m_pktdat, (\\"%s: MH_ALIGN not a virgin mbuf\\", &__func__)); ($m)-> &m_data += ( &MHLEN - ($len)) & ~($sizeof{\'long\'} - 1); } &while (0)); }' unless defined(&MH_ALIGN); eval 'sub M_LEADINGSPACE { my($m) = @_; eval q((($m)-> &m_flags & &M_EXT ? ( &M_WRITABLE($m) ? ($m)-> &m_data - ($m)-> ($m_ext->{ext_buf}) : 0): ($m)-> &m_flags & &M_PKTHDR ? ($m)-> &m_data - ($m)-> &m_pktdat : ($m)-> &m_data - ($m)-> &m_dat)); }' unless defined(&M_LEADINGSPACE); eval 'sub M_TRAILINGSPACE { my($m) = @_; eval q((($m)-> &m_flags & &M_EXT ? ( &M_WRITABLE($m) ? ($m)-> ($m_ext->{ext_buf}) + ($m)-> ($m_ext->{ext_size}) - (($m)-> &m_data + ($m)-> &m_len) : 0) : ($m)-> $m_dat[ &MLEN] - (($m)-> &m_data + ($m)-> &m_len))); }' unless defined(&M_TRAILINGSPACE); eval 'sub M_PREPEND { my($m, $plen, $how) = @_; eval q( &do { \'struct mbuf\' ** &_mmp = ($m); \'struct mbuf\' * &_mm = * &_mmp; \'int\' &_mplen = ($plen); \'int\' &__mhow = ($how); &MBUF_CHECKSLEEP($how); &if ( &M_LEADINGSPACE( &_mm) >= &_mplen) { ($_$mm->{m_data}) -= &_mplen; ($_$mm->{m_len}) += &_mplen; } &else &_mm = &m_prepend( &_mm, &_mplen, &__mhow); &if ( &_mm != &NULL && ($_$mm->{m_flags}) & &M_PKTHDR) ($_$mm->{m_pkthdr}->{len}) += &_mplen; * &_mmp = &_mm; } &while (0)); }' unless defined(&M_PREPEND); eval 'sub MCHTYPE { my($m, $t) = @_; eval q( &m_chtype(($m), ($t))); }' unless defined(&MCHTYPE); eval 'sub M_COPYALL () {1000000000;}' unless defined(&M_COPYALL); eval 'sub m_copy { my($m, $o, $l) = @_; eval q( &m_copym(($m), ($o), ($l), &M_DONTWAIT)); }' unless defined(&m_copy); eval 'sub MTAG_PERSISTENT () {0x800;}' unless defined(&MTAG_PERSISTENT); eval 'sub PACKET_TAG_NONE () {0;}' unless defined(&PACKET_TAG_NONE); eval 'sub PACKET_TAG_IPSEC_IN_DONE () {1;}' unless defined(&PACKET_TAG_IPSEC_IN_DONE); eval 'sub PACKET_TAG_IPSEC_OUT_DONE () {2;}' unless defined(&PACKET_TAG_IPSEC_OUT_DONE); eval 'sub PACKET_TAG_IPSEC_IN_CRYPTO_DONE () {3;}' unless defined(&PACKET_TAG_IPSEC_IN_CRYPTO_DONE); eval 'sub PACKET_TAG_IPSEC_OUT_CRYPTO_NEEDED () {4;}' unless defined(&PACKET_TAG_IPSEC_OUT_CRYPTO_NEEDED); eval 'sub PACKET_TAG_IPSEC_IN_COULD_DO_CRYPTO () {5;}' unless defined(&PACKET_TAG_IPSEC_IN_COULD_DO_CRYPTO); eval 'sub PACKET_TAG_IPSEC_PENDING_TDB () {6;}' unless defined(&PACKET_TAG_IPSEC_PENDING_TDB); eval 'sub PACKET_TAG_BRIDGE () {7;}' unless defined(&PACKET_TAG_BRIDGE); eval 'sub PACKET_TAG_GIF () {8;}' unless defined(&PACKET_TAG_GIF); eval 'sub PACKET_TAG_GRE () {9;}' unless defined(&PACKET_TAG_GRE); eval 'sub PACKET_TAG_IN_PACKET_CHECKSUM () {10;}' unless defined(&PACKET_TAG_IN_PACKET_CHECKSUM); eval 'sub PACKET_TAG_ENCAP () {11;}' unless defined(&PACKET_TAG_ENCAP); eval 'sub PACKET_TAG_IPSEC_SOCKET () {12;}' unless defined(&PACKET_TAG_IPSEC_SOCKET); eval 'sub PACKET_TAG_IPSEC_HISTORY () {13;}' unless defined(&PACKET_TAG_IPSEC_HISTORY); eval 'sub PACKET_TAG_IPV6_INPUT () {14;}' unless defined(&PACKET_TAG_IPV6_INPUT); eval 'sub PACKET_TAG_DUMMYNET () {15;}' unless defined(&PACKET_TAG_DUMMYNET); eval 'sub PACKET_TAG_DIVERT () {17;}' unless defined(&PACKET_TAG_DIVERT); eval 'sub PACKET_TAG_IPFORWARD () {18;}' unless defined(&PACKET_TAG_IPFORWARD); eval 'sub PACKET_TAG_MACLABEL () {(19| &MTAG_PERSISTENT);}' unless defined(&PACKET_TAG_MACLABEL); eval 'sub PACKET_TAG_PF () {21;}' unless defined(&PACKET_TAG_PF); eval 'sub PACKET_TAG_RTSOCKFAM () {25;}' unless defined(&PACKET_TAG_RTSOCKFAM); eval 'sub PACKET_TAG_IPOPTIONS () {27;}' unless defined(&PACKET_TAG_IPOPTIONS); eval 'sub PACKET_TAG_CARP () {28;}' unless defined(&PACKET_TAG_CARP); eval 'sub PACKET_TAG_IPSEC_NAT_T_PORTS () {29;}' unless defined(&PACKET_TAG_IPSEC_NAT_T_PORTS); eval 'sub PACKET_TAG_ND_OUTGOING () {30;}' unless defined(&PACKET_TAG_ND_OUTGOING); eval 'sub MTAG_ABI_COMPAT () {0;}' unless defined(&MTAG_ABI_COMPAT); eval 'sub m_tag_get { my($type,$length,$wait) = @_; eval q({ ( &m_tag_alloc( &MTAG_ABI_COMPAT, $type, $length, $wait)); }); }' unless defined(&m_tag_get); eval 'sub m_tag_find { my($m,$type,$start) = @_; eval q({ ( &SLIST_EMPTY( ($m->{m_pkthdr}->{tags})) ? &NULL : &m_tag_locate($m, &MTAG_ABI_COMPAT, $type, $start)); }); }' unless defined(&m_tag_find); eval 'sub M_FIBSHIFT () {28;}' unless defined(&M_FIBSHIFT); eval 'sub M_FIBMASK () {0xf;}' unless defined(&M_FIBMASK); eval 'sub M_GETFIB { my($_m) = @_; eval q((((($_m)-> &m_flags & &M_FIB) >> &M_FIBSHIFT) & &M_FIBMASK)); }' unless defined(&M_GETFIB); eval 'sub M_SETFIB { my($_m, $_fib) = @_; eval q( &do { ($_m->{m_flags}) &= ~ &M_FIB; ($_m->{m_flags}) |= ((($_fib) << &M_FIBSHIFT) & &M_FIB); } &while (0)); }' unless defined(&M_SETFIB); } if(defined(&MBUF_PROFILING)) { eval 'sub M_PROFILE { my($m) = @_; eval q( &m_profile($m)); }' unless defined(&M_PROFILE); } else { eval 'sub M_PROFILE { my($m) = @_; eval q(); }' unless defined(&M_PROFILE); } } 1;