require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_NET_IF_MEDIA_H_)) {
    eval 'sub _NET_IF_MEDIA_H_ () {1;}' unless defined(&_NET_IF_MEDIA_H_);
    eval 'sub IFM_AVALID () {0x1;}' unless defined(&IFM_AVALID);
    eval 'sub IFM_ACTIVE () {0x2;}' unless defined(&IFM_ACTIVE);
    eval 'sub IFM_NMASK () {0xe0;}' unless defined(&IFM_NMASK);
    eval 'sub IFM_TMASK () {0x1f;}' unless defined(&IFM_TMASK);
    eval 'sub IFM_IMASK () {0xf0000000;}' unless defined(&IFM_IMASK);
    eval 'sub IFM_ISHIFT () {28;}' unless defined(&IFM_ISHIFT);
    eval 'sub IFM_OMASK () {0xff00;}' unless defined(&IFM_OMASK);
    eval 'sub IFM_MMASK () {0x70000;}' unless defined(&IFM_MMASK);
    eval 'sub IFM_MSHIFT () {16;}' unless defined(&IFM_MSHIFT);
    eval 'sub IFM_GMASK () {0xff00000;}' unless defined(&IFM_GMASK);
    eval 'sub IFM_TYPE {
        my($x) = @_;
	    eval q((($x) &  &IFM_NMASK));
    }' unless defined(&IFM_TYPE);
    eval 'sub IFM_SUBTYPE {
        my($x) = @_;
	    eval q(( &IFM_TYPE($x) ==  &IFM_ETHER ?  &IFM_ETHER_SUBTYPE_GET($x) : (($x) &  &IFM_TMASK)));
    }' unless defined(&IFM_SUBTYPE);
    eval 'sub IFM_TYPE_MATCH {
        my($dt, $t) = @_;
	    eval q(( &IFM_TYPE($dt) == 0||  &IFM_TYPE($dt) ==  &IFM_TYPE($t)));
    }' unless defined(&IFM_TYPE_MATCH);
    eval 'sub IFM_TYPE_SUBTYPE_MATCH {
        my($dt, $t) = @_;
	    eval q(( &IFM_TYPE($dt) ==  &IFM_TYPE($t)  &&  &IFM_SUBTYPE($dt) ==  &IFM_SUBTYPE($t)));
    }' unless defined(&IFM_TYPE_SUBTYPE_MATCH);
    eval 'sub IFM_INST {
        my($x) = @_;
	    eval q(((($x) &  &IFM_IMASK) >>  &IFM_ISHIFT));
    }' unless defined(&IFM_INST);
    eval 'sub IFM_OPTIONS {
        my($x) = @_;
	    eval q((($x) & ( &IFM_OMASK |  &IFM_GMASK)));
    }' unless defined(&IFM_OPTIONS);
    eval 'sub IFM_MODE {
        my($x) = @_;
	    eval q((($x) &  &IFM_MMASK));
    }' unless defined(&IFM_MODE);
    eval 'sub IFM_INST_MAX () { &IFM_INST( &IFM_IMASK);}' unless defined(&IFM_INST_MAX);
    eval 'sub IFM_INST_ANY () {( -1);}' unless defined(&IFM_INST_ANY);
    eval 'sub IFM_STATUS_VALID () { &IFM_AVALID;}' unless defined(&IFM_STATUS_VALID);
    eval 'sub IFM_STATUS_VALID_LIST () {{  &IFM_AVALID, 0, };}' unless defined(&IFM_STATUS_VALID_LIST);
    eval 'sub IFM_MAKEWORD {
        my($type, $subtype, $options, $instance) = @_;
	    eval q((($type) | ($subtype) | ($options) | (($instance) <<  &IFM_ISHIFT)));
    }' unless defined(&IFM_MAKEWORD);
    eval 'sub IFM_MAKEMODE {
        my($mode) = @_;
	    eval q(((($mode) <<  &IFM_MSHIFT) &  &IFM_MMASK));
    }' unless defined(&IFM_MAKEMODE);
    eval 'sub IFM_GENERIC () {0x;}' unless defined(&IFM_GENERIC);
    eval 'sub IFM_ETHER () {0x20;}' unless defined(&IFM_ETHER);
    eval 'sub IFM_TOKEN () {0x40;}' unless defined(&IFM_TOKEN);
    eval 'sub IFM_FDDI () {0x60;}' unless defined(&IFM_FDDI);
    eval 'sub IFM_IEEE80211 () {0x80;}' unless defined(&IFM_IEEE80211);
    eval 'sub IFM_CARP () {0xc0;}' unless defined(&IFM_CARP);
    eval 'sub IFM_NMIN () { &IFM_ETHER;}' unless defined(&IFM_NMIN);
    eval 'sub IFM_NMAX () { &IFM_NMASK;}' unless defined(&IFM_NMAX);
    eval 'sub IFM_AUTO () {0;}' unless defined(&IFM_AUTO);
    eval 'sub IFM_MANUAL () {1;}' unless defined(&IFM_MANUAL);
    eval 'sub IFM_NONE () {2;}' unless defined(&IFM_NONE);
    eval 'sub IFM_FDX () {0x100000;}' unless defined(&IFM_FDX);
    eval 'sub IFM_HDX () {0x200000;}' unless defined(&IFM_HDX);
    eval 'sub IFM_FLOW () {0x400000;}' unless defined(&IFM_FLOW);
    eval 'sub IFM_FLAG0 () {0x1000000;}' unless defined(&IFM_FLAG0);
    eval 'sub IFM_FLAG1 () {0x2000000;}' unless defined(&IFM_FLAG1);
    eval 'sub IFM_FLAG2 () {0x4000000;}' unless defined(&IFM_FLAG2);
    eval 'sub IFM_LOOP () {0x8000000;}' unless defined(&IFM_LOOP);
    eval 'sub IFM_ETHER_SUBTYPE {
        my($x) = @_;
	    eval q(((($x) &  &IFM_TMASK) | ((($x) & ( &_IFM_ETH_XTMASK >>  &IFM_ETH_XSHIFT)) <<  &IFM_ETH_XSHIFT)));
    }' unless defined(&IFM_ETHER_SUBTYPE);
    eval 'sub IFM_ETHER_SUBTYPE_GET {
        my($x) = @_;
	    eval q((($x) & ( &IFM_TMASK |  &_IFM_ETH_XTMASK)));
    }' unless defined(&IFM_ETHER_SUBTYPE_GET);
    eval 'sub _IFM_EX {
        my($x) = @_;
	    eval q( &IFM_ETHER_SUBTYPE($x));
    }' unless defined(&_IFM_EX);
    eval 'sub IFM_10_T () {3;}' unless defined(&IFM_10_T);
    eval 'sub IFM_10_2 () {4;}' unless defined(&IFM_10_2);
    eval 'sub IFM_10_5 () {5;}' unless defined(&IFM_10_5);
    eval 'sub IFM_100_TX () {6;}' unless defined(&IFM_100_TX);
    eval 'sub IFM_100_FX () {7;}' unless defined(&IFM_100_FX);
    eval 'sub IFM_100_T4 () {8;}' unless defined(&IFM_100_T4);
    eval 'sub IFM_100_VG () {9;}' unless defined(&IFM_100_VG);
    eval 'sub IFM_100_T2 () {10;}' unless defined(&IFM_100_T2);
    eval 'sub IFM_1000_SX () {11;}' unless defined(&IFM_1000_SX);
    eval 'sub IFM_10_STP () {12;}' unless defined(&IFM_10_STP);
    eval 'sub IFM_10_FL () {13;}' unless defined(&IFM_10_FL);
    eval 'sub IFM_1000_LX () {14;}' unless defined(&IFM_1000_LX);
    eval 'sub IFM_1000_CX () {15;}' unless defined(&IFM_1000_CX);
    eval 'sub IFM_1000_T () {16;}' unless defined(&IFM_1000_T);
    eval 'sub IFM_HPNA_1 () {17;}' unless defined(&IFM_HPNA_1);
    eval 'sub IFM_10G_LR () {18;}' unless defined(&IFM_10G_LR);
    eval 'sub IFM_10G_SR () {19;}' unless defined(&IFM_10G_SR);
    eval 'sub IFM_10G_CX4 () {20;}' unless defined(&IFM_10G_CX4);
    eval 'sub IFM_2500_SX () {21;}' unless defined(&IFM_2500_SX);
    eval 'sub IFM_1000_BX10 () {22;}' unless defined(&IFM_1000_BX10);
    eval 'sub IFM_10G_TWINAX () {23;}' unless defined(&IFM_10G_TWINAX);
    eval 'sub IFM_10G_TWINAX_LONG () {24;}' unless defined(&IFM_10G_TWINAX_LONG);
    eval 'sub IFM_10G_LRM () {25;}' unless defined(&IFM_10G_LRM);
    eval 'sub IFM_10G_T () {26;}' unless defined(&IFM_10G_T);
    eval 'sub IFM_1000_KX () {27;}' unless defined(&IFM_1000_KX);
    eval 'sub IFM_2500_KX () {28;}' unless defined(&IFM_2500_KX);
    eval 'sub IFM_2500_T () {29;}' unless defined(&IFM_2500_T);
    eval 'sub IFM_5000_T () {30;}' unless defined(&IFM_5000_T);
    eval 'sub IFM_OTHER () {31;}' unless defined(&IFM_OTHER);
    eval 'sub IFM_1000_SGMII () { &_IFM_EX(32);}' unless defined(&IFM_1000_SGMII);
    eval 'sub IFM_5000_KR () { &_IFM_EX(33);}' unless defined(&IFM_5000_KR);
    eval 'sub IFM_10G_AOC () { &_IFM_EX(34);}' unless defined(&IFM_10G_AOC);
    eval 'sub IFM_10G_CR1 () { &_IFM_EX(35);}' unless defined(&IFM_10G_CR1);
    eval 'sub IFM_10G_ER () { &_IFM_EX(36);}' unless defined(&IFM_10G_ER);
    eval 'sub IFM_10G_KR () { &_IFM_EX(37);}' unless defined(&IFM_10G_KR);
    eval 'sub IFM_10G_KX4 () { &_IFM_EX(38);}' unless defined(&IFM_10G_KX4);
    eval 'sub IFM_10G_LX4 () { &_IFM_EX(39);}' unless defined(&IFM_10G_LX4);
    eval 'sub IFM_10G_SFI () { &_IFM_EX(40);}' unless defined(&IFM_10G_SFI);
    eval 'sub IFM_10G_ZR () { &_IFM_EX(41);}' unless defined(&IFM_10G_ZR);
    eval 'sub IFM_20G_KR2 () { &_IFM_EX(42);}' unless defined(&IFM_20G_KR2);
    eval 'sub IFM_25G_AOC () { &_IFM_EX(43);}' unless defined(&IFM_25G_AOC);
    eval 'sub IFM_25G_AUI () { &_IFM_EX(44);}' unless defined(&IFM_25G_AUI);
    eval 'sub IFM_25G_CR () { &_IFM_EX(45);}' unless defined(&IFM_25G_CR);
    eval 'sub IFM_25G_ACC () { &_IFM_EX(46);}' unless defined(&IFM_25G_ACC);
    eval 'sub IFM_25G_CR_S () { &_IFM_EX(47);}' unless defined(&IFM_25G_CR_S);
    eval 'sub IFM_25G_ER () { &_IFM_EX(48);}' unless defined(&IFM_25G_ER);
    eval 'sub IFM_25G_KR () { &_IFM_EX(49);}' unless defined(&IFM_25G_KR);
    eval 'sub IFM_25G_KR_S () { &_IFM_EX(50);}' unless defined(&IFM_25G_KR_S);
    eval 'sub IFM_25G_LR () { &_IFM_EX(51);}' unless defined(&IFM_25G_LR);
    eval 'sub IFM_25G_SR () { &_IFM_EX(52);}' unless defined(&IFM_25G_SR);
    eval 'sub IFM_25G_T () { &_IFM_EX(53);}' unless defined(&IFM_25G_T);
    eval 'sub IFM_40G_AOC () { &_IFM_EX(54);}' unless defined(&IFM_40G_AOC);
    eval 'sub IFM_40G_CR4 () { &_IFM_EX(55);}' unless defined(&IFM_40G_CR4);
    eval 'sub IFM_40G_ER4 () { &_IFM_EX(56);}' unless defined(&IFM_40G_ER4);
    eval 'sub IFM_40G_FR () { &_IFM_EX(57);}' unless defined(&IFM_40G_FR);
    eval 'sub IFM_40G_KR4 () { &_IFM_EX(58);}' unless defined(&IFM_40G_KR4);
    eval 'sub IFM_40G_LR4 () { &_IFM_EX(59);}' unless defined(&IFM_40G_LR4);
    eval 'sub IFM_40G_SR4 () { &_IFM_EX(60);}' unless defined(&IFM_40G_SR4);
    eval 'sub IFM_40G_T () { &_IFM_EX(61);}' unless defined(&IFM_40G_T);
    eval 'sub IFM_40G_XLPPI () { &_IFM_EX(62);}' unless defined(&IFM_40G_XLPPI);
    eval 'sub IFM_50G_AUI1 () { &_IFM_EX(63);}' unless defined(&IFM_50G_AUI1);
    eval 'sub IFM_50G_AUI2 () { &_IFM_EX(64);}' unless defined(&IFM_50G_AUI2);
    eval 'sub IFM_50G_CR () { &_IFM_EX(65);}' unless defined(&IFM_50G_CR);
    eval 'sub IFM_50G_CR2 () { &_IFM_EX(66);}' unless defined(&IFM_50G_CR2);
    eval 'sub IFM_50G_FR () { &_IFM_EX(67);}' unless defined(&IFM_50G_FR);
    eval 'sub IFM_50G_KR () { &_IFM_EX(68);}' unless defined(&IFM_50G_KR);
    eval 'sub IFM_50G_KR2 () { &_IFM_EX(69);}' unless defined(&IFM_50G_KR2);
    eval 'sub IFM_50G_LAUI2 () { &_IFM_EX(70);}' unless defined(&IFM_50G_LAUI2);
    eval 'sub IFM_50G_LR () { &_IFM_EX(71);}' unless defined(&IFM_50G_LR);
    eval 'sub IFM_50G_SR () { &_IFM_EX(73);}' unless defined(&IFM_50G_SR);
    eval 'sub IFM_50G_SR2 () { &_IFM_EX(74);}' unless defined(&IFM_50G_SR2);
    eval 'sub IFM_56G_R4 () { &_IFM_EX(75);}' unless defined(&IFM_56G_R4);
    eval 'sub IFM_100G_CR2 () { &_IFM_EX(76);}' unless defined(&IFM_100G_CR2);
    eval 'sub IFM_100G_CR4 () { &_IFM_EX(77);}' unless defined(&IFM_100G_CR4);
    eval 'sub IFM_100G_CR10 () { &_IFM_EX(78);}' unless defined(&IFM_100G_CR10);
    eval 'sub IFM_100G_DR () { &_IFM_EX(79);}' unless defined(&IFM_100G_DR);
    eval 'sub IFM_100G_ER4 () { &_IFM_EX(80);}' unless defined(&IFM_100G_ER4);
    eval 'sub IFM_100G_KP4 () { &_IFM_EX(81);}' unless defined(&IFM_100G_KP4);
    eval 'sub IFM_100G_KR2 () { &_IFM_EX(82);}' unless defined(&IFM_100G_KR2);
    eval 'sub IFM_100G_KR4 () { &_IFM_EX(83);}' unless defined(&IFM_100G_KR4);
    eval 'sub IFM_100G_LR4 () { &_IFM_EX(84);}' unless defined(&IFM_100G_LR4);
    eval 'sub IFM_100G_SR2 () { &_IFM_EX(85);}' unless defined(&IFM_100G_SR2);
    eval 'sub IFM_100G_SR4 () { &_IFM_EX(86);}' unless defined(&IFM_100G_SR4);
    eval 'sub IFM_100G_SR10 () { &_IFM_EX(87);}' unless defined(&IFM_100G_SR10);
    eval 'sub IFM_200G_CR2 () { &_IFM_EX(88);}' unless defined(&IFM_200G_CR2);
    eval 'sub IFM_200G_CR4 () { &_IFM_EX(89);}' unless defined(&IFM_200G_CR4);
    eval 'sub IFM_200G_DR4 () { &_IFM_EX(90);}' unless defined(&IFM_200G_DR4);
    eval 'sub IFM_200G_FR4 () { &_IFM_EX(91);}' unless defined(&IFM_200G_FR4);
    eval 'sub IFM_200G_KR2 () { &_IFM_EX(92);}' unless defined(&IFM_200G_KR2);
    eval 'sub IFM_200G_KR4 () { &_IFM_EX(93);}' unless defined(&IFM_200G_KR4);
    eval 'sub IFM_200G_LR4 () { &_IFM_EX(94);}' unless defined(&IFM_200G_LR4);
    eval 'sub IFM_200G_SR4 () { &_IFM_EX(95);}' unless defined(&IFM_200G_SR4);
    eval 'sub IFM_400G_CR4 () { &_IFM_EX(96);}' unless defined(&IFM_400G_CR4);
    eval 'sub IFM_400G_DR4 () { &_IFM_EX(97);}' unless defined(&IFM_400G_DR4);
    eval 'sub IFM_400G_FR8 () { &_IFM_EX(98);}' unless defined(&IFM_400G_FR8);
    eval 'sub IFM_400G_KR4 () { &_IFM_EX(99);}' unless defined(&IFM_400G_KR4);
    eval 'sub IFM_400G_LR8 () { &_IFM_EX(100);}' unless defined(&IFM_400G_LR8);
    eval 'sub IFM_400G_SR16 () { &_IFM_EX(101);}' unless defined(&IFM_400G_SR16);
    eval 'sub IFM_100G_ACC () { &_IFM_EX(102);}' unless defined(&IFM_100G_ACC);
    eval 'sub IFM_100G_AOC () { &_IFM_EX(103);}' unless defined(&IFM_100G_AOC);
    eval 'sub IFM_100G_FR () { &_IFM_EX(104);}' unless defined(&IFM_100G_FR);
    eval 'sub IFM_100G_LR () { &_IFM_EX(105);}' unless defined(&IFM_100G_LR);
    eval 'sub IFM_200G_ER4 () { &_IFM_EX(106);}' unless defined(&IFM_200G_ER4);
    eval 'sub IFM_400G_ER8 () { &_IFM_EX(107);}' unless defined(&IFM_400G_ER8);
    eval 'sub IFM_400G_FR4 () { &_IFM_EX(108);}' unless defined(&IFM_400G_FR4);
    eval 'sub IFM_400G_LR4 () { &_IFM_EX(109);}' unless defined(&IFM_400G_LR4);
    eval 'sub IFM_400G_SR4_2 () { &_IFM_EX(110);}' unless defined(&IFM_400G_SR4_2);
    eval 'sub IFM_400G_SR8 () { &_IFM_EX(111);}' unless defined(&IFM_400G_SR8);
    eval 'sub IFM_ETH_MASTER () {0x100;}' unless defined(&IFM_ETH_MASTER);
    eval 'sub IFM_ETH_RXPAUSE () {0x200;}' unless defined(&IFM_ETH_RXPAUSE);
    eval 'sub IFM_ETH_TXPAUSE () {0x400;}' unless defined(&IFM_ETH_TXPAUSE);
    eval 'sub _IFM_ETH_XTMASK () {0xe000;}' unless defined(&_IFM_ETH_XTMASK);
    eval 'sub IFM_ETH_XSHIFT () {(13- 5);}' unless defined(&IFM_ETH_XSHIFT);
    eval 'sub IFM_ETH_FMASK () {( &IFM_FLOW |  &IFM_ETH_RXPAUSE |  &IFM_ETH_TXPAUSE);}' unless defined(&IFM_ETH_FMASK);
    eval 'sub IFM_TOK_STP4 () {3;}' unless defined(&IFM_TOK_STP4);
    eval 'sub IFM_TOK_STP16 () {4;}' unless defined(&IFM_TOK_STP16);
    eval 'sub IFM_TOK_UTP4 () {5;}' unless defined(&IFM_TOK_UTP4);
    eval 'sub IFM_TOK_UTP16 () {6;}' unless defined(&IFM_TOK_UTP16);
    eval 'sub IFM_TOK_ETR () {0x200;}' unless defined(&IFM_TOK_ETR);
    eval 'sub IFM_TOK_SRCRT () {0x400;}' unless defined(&IFM_TOK_SRCRT);
    eval 'sub IFM_TOK_ALLR () {0x800;}' unless defined(&IFM_TOK_ALLR);
    eval 'sub IFM_FDDI_SMF () {3;}' unless defined(&IFM_FDDI_SMF);
    eval 'sub IFM_FDDI_MMF () {4;}' unless defined(&IFM_FDDI_MMF);
    eval 'sub IFM_FDDI_UTP () {5;}' unless defined(&IFM_FDDI_UTP);
    eval 'sub IFM_FDDI_DA () {0x100;}' unless defined(&IFM_FDDI_DA);
    eval 'sub IFM_IEEE80211_FH1 () {3;}' unless defined(&IFM_IEEE80211_FH1);
    eval 'sub IFM_IEEE80211_FH2 () {4;}' unless defined(&IFM_IEEE80211_FH2);
    eval 'sub IFM_IEEE80211_DS2 () {5;}' unless defined(&IFM_IEEE80211_DS2);
    eval 'sub IFM_IEEE80211_DS5 () {6;}' unless defined(&IFM_IEEE80211_DS5);
    eval 'sub IFM_IEEE80211_DS11 () {7;}' unless defined(&IFM_IEEE80211_DS11);
    eval 'sub IFM_IEEE80211_DS1 () {8;}' unless defined(&IFM_IEEE80211_DS1);
    eval 'sub IFM_IEEE80211_DS22 () {9;}' unless defined(&IFM_IEEE80211_DS22);
    eval 'sub IFM_IEEE80211_OFDM6 () {10;}' unless defined(&IFM_IEEE80211_OFDM6);
    eval 'sub IFM_IEEE80211_OFDM9 () {11;}' unless defined(&IFM_IEEE80211_OFDM9);
    eval 'sub IFM_IEEE80211_OFDM12 () {12;}' unless defined(&IFM_IEEE80211_OFDM12);
    eval 'sub IFM_IEEE80211_OFDM18 () {13;}' unless defined(&IFM_IEEE80211_OFDM18);
    eval 'sub IFM_IEEE80211_OFDM24 () {14;}' unless defined(&IFM_IEEE80211_OFDM24);
    eval 'sub IFM_IEEE80211_OFDM36 () {15;}' unless defined(&IFM_IEEE80211_OFDM36);
    eval 'sub IFM_IEEE80211_OFDM48 () {16;}' unless defined(&IFM_IEEE80211_OFDM48);
    eval 'sub IFM_IEEE80211_OFDM54 () {17;}' unless defined(&IFM_IEEE80211_OFDM54);
    eval 'sub IFM_IEEE80211_OFDM72 () {18;}' unless defined(&IFM_IEEE80211_OFDM72);
    eval 'sub IFM_IEEE80211_DS354k () {19;}' unless defined(&IFM_IEEE80211_DS354k);
    eval 'sub IFM_IEEE80211_DS512k () {20;}' unless defined(&IFM_IEEE80211_DS512k);
    eval 'sub IFM_IEEE80211_OFDM3 () {21;}' unless defined(&IFM_IEEE80211_OFDM3);
    eval 'sub IFM_IEEE80211_OFDM4 () {22;}' unless defined(&IFM_IEEE80211_OFDM4);
    eval 'sub IFM_IEEE80211_OFDM27 () {23;}' unless defined(&IFM_IEEE80211_OFDM27);
    eval 'sub IFM_IEEE80211_MCS () {24;}' unless defined(&IFM_IEEE80211_MCS);
    eval 'sub IFM_IEEE80211_VHT () {25;}' unless defined(&IFM_IEEE80211_VHT);
    eval 'sub IFM_IEEE80211_ADHOC () {0x100;}' unless defined(&IFM_IEEE80211_ADHOC);
    eval 'sub IFM_IEEE80211_HOSTAP () {0x200;}' unless defined(&IFM_IEEE80211_HOSTAP);
    eval 'sub IFM_IEEE80211_MONITOR () {0x400;}' unless defined(&IFM_IEEE80211_MONITOR);
    eval 'sub IFM_IEEE80211_TURBO () {0x800;}' unless defined(&IFM_IEEE80211_TURBO);
    eval 'sub IFM_IEEE80211_IBSS () {0x1000;}' unless defined(&IFM_IEEE80211_IBSS);
    eval 'sub IFM_IEEE80211_WDS () {0x2000;}' unless defined(&IFM_IEEE80211_WDS);
    eval 'sub IFM_IEEE80211_MBSS () {0x4000;}' unless defined(&IFM_IEEE80211_MBSS);
    eval 'sub IFM_IEEE80211_11A () {0x10000;}' unless defined(&IFM_IEEE80211_11A);
    eval 'sub IFM_IEEE80211_11B () {0x20000;}' unless defined(&IFM_IEEE80211_11B);
    eval 'sub IFM_IEEE80211_11G () {0x30000;}' unless defined(&IFM_IEEE80211_11G);
    eval 'sub IFM_IEEE80211_FH () {0x40000;}' unless defined(&IFM_IEEE80211_FH);
    eval 'sub IFM_IEEE80211_11NA () {0x50000;}' unless defined(&IFM_IEEE80211_11NA);
    eval 'sub IFM_IEEE80211_11NG () {0x60000;}' unless defined(&IFM_IEEE80211_11NG);
    eval 'sub IFM_IEEE80211_11AC () {0x70000;}' unless defined(&IFM_IEEE80211_11AC);
    eval 'sub IFM_TYPE_DESCRIPTIONS () {{ {  &IFM_ETHER, "Ethernet" }, {  &IFM_ETHER, "ether" }, {  &IFM_TOKEN, "TokenRing" }, {  &IFM_TOKEN, "token" }, {  &IFM_FDDI, "FDDI" }, {  &IFM_IEEE80211, "IEEE802.11" }, {  &IFM_CARP, "CARP" }, { 0,  &NULL }, };}' unless defined(&IFM_TYPE_DESCRIPTIONS);
    eval 'sub IFM_SUBTYPE_DESCRIPTIONS () {{ {  &IFM_AUTO, "autoselect" }, {  &IFM_AUTO, "auto" }, {  &IFM_MANUAL, "manual" }, {  &IFM_NONE, "none" }, {  &IFM_ETHER |  &IFM_10_T, "10baseT" }, {  &IFM_ETHER |  &IFM_10_T, "10baseT/UTP" }, {  &IFM_ETHER |  &IFM_10_T, "UTP" }, {  &IFM_ETHER |  &IFM_10_T, "10UTP" }, {  &IFM_ETHER |  &IFM_10_T, "10BASE-T" }, {  &IFM_ETHER |  &IFM_10_2, "10base2" }, {  &IFM_ETHER |  &IFM_10_2, "10base2/BNC" }, {  &IFM_ETHER |  &IFM_10_2, "BNC" }, {  &IFM_ETHER |  &IFM_10_2, "10BNC" }, {  &IFM_ETHER |  &IFM_10_2, "10BASE2" }, {  &IFM_ETHER |  &IFM_10_5, "10base5" }, {  &IFM_ETHER |  &IFM_10_5, "10base5/AUI" }, {  &IFM_ETHER |  &IFM_10_5, "AUI" }, {  &IFM_ETHER |  &IFM_10_5, "10AUI" }, {  &IFM_ETHER |  &IFM_10_5, "10BASE5" }, {  &IFM_ETHER |  &IFM_100_TX, "100baseTX" }, {  &IFM_ETHER |  &IFM_100_TX, "100TX" }, {  &IFM_ETHER |  &IFM_100_TX, "100BASE-TX" }, {  &IFM_ETHER |  &IFM_100_FX, "100baseFX" }, {  &IFM_ETHER |  &IFM_100_FX, "100FX" }, {  &IFM_ETHER |  &IFM_100_FX, "100BASE-FX" }, {  &IFM_ETHER |  &IFM_100_T4, "100baseT4" }, {  &IFM_ETHER |  &IFM_100_T4, "100T4" }, {  &IFM_ETHER |  &IFM_100_T4, "100BASE-T4" }, {  &IFM_ETHER |  &IFM_100_VG, "100baseVG" }, {  &IFM_ETHER |  &IFM_100_VG, "100VG" }, {  &IFM_ETHER |  &IFM_100_VG, "100VG-AnyLAN" }, {  &IFM_ETHER |  &IFM_100_T2, "100baseT2" }, {  &IFM_ETHER |  &IFM_100_T2, "100T2" }, {  &IFM_ETHER |  &IFM_100_T2, "100BASE-T2" }, {  &IFM_ETHER |  &IFM_1000_SX, "1000baseSX" }, {  &IFM_ETHER |  &IFM_1000_SX, "1000SX" }, {  &IFM_ETHER |  &IFM_1000_SX, "1000BASE-SX" }, {  &IFM_ETHER |  &IFM_10_STP, "10baseSTP" }, {  &IFM_ETHER |  &IFM_10_STP, "STP" }, {  &IFM_ETHER |  &IFM_10_STP, "10STP" }, {  &IFM_ETHER |  &IFM_10_STP, "10BASE-STP" }, {  &IFM_ETHER |  &IFM_10_FL, "10baseFL" }, {  &IFM_ETHER |  &IFM_10_FL, "FL" }, {  &IFM_ETHER |  &IFM_10_FL, "10FL" }, {  &IFM_ETHER |  &IFM_10_FL, "10BASE-FL" }, {  &IFM_ETHER |  &IFM_1000_LX, "1000baseLX" }, {  &IFM_ETHER |  &IFM_1000_LX, "1000LX" }, {  &IFM_ETHER |  &IFM_1000_LX, "1000BASE-LX" }, {  &IFM_ETHER |  &IFM_1000_CX, "1000baseCX" }, {  &IFM_ETHER |  &IFM_1000_CX, "1000CX" }, {  &IFM_ETHER |  &IFM_1000_CX, "1000BASE-CX" }, {  &IFM_ETHER |  &IFM_1000_BX10, "1000BASE-BX10" }, {  &IFM_ETHER |  &IFM_1000_KX, "1000BASE-KX" }, {  &IFM_ETHER |  &IFM_1000_KX, "1000baseKX" }, {  &IFM_ETHER |  &IFM_1000_T, "1000baseT" }, {  &IFM_ETHER |  &IFM_1000_T, "1000T" }, {  &IFM_ETHER |  &IFM_1000_T, "1000BASE-T" }, {  &IFM_ETHER |  &IFM_HPNA_1, "HomePNA1" }, {  &IFM_ETHER |  &IFM_HPNA_1, "HPNA1" }, {  &IFM_ETHER |  &IFM_2500_KX |  &IFM_FDX, "2500BASE-KX" }, {  &IFM_ETHER |  &IFM_2500_KX |  &IFM_FDX, "2500baseKX" }, {  &IFM_ETHER |  &IFM_2500_T |  &IFM_FDX, "2.5GBASE-T" }, {  &IFM_ETHER |  &IFM_2500_T |  &IFM_FDX, "2500baseT" }, {  &IFM_ETHER |  &IFM_5000_T |  &IFM_FDX, "5GBASE-T" }, {  &IFM_ETHER |  &IFM_5000_T |  &IFM_FDX, "5GbaseT" }, {  &IFM_ETHER |  &IFM_OTHER, "Other" }, {  &IFM_ETHER |  &IFM_10G_LR |  &IFM_FDX, "10GbaseLR" }, {  &IFM_ETHER |  &IFM_10G_LR |  &IFM_FDX, "10GLR" }, {  &IFM_ETHER |  &IFM_10G_LR |  &IFM_FDX, "10GBASE-LR" }, {  &IFM_ETHER |  &IFM_10G_SR |  &IFM_FDX, "10GbaseSR" }, {  &IFM_ETHER |  &IFM_10G_SR |  &IFM_FDX, "10GSR" }, {  &IFM_ETHER |  &IFM_10G_SR |  &IFM_FDX, "10GBASE-SR" }, {  &IFM_ETHER |  &IFM_10G_LRM |  &IFM_FDX, "10Gbase-LRM" }, {  &IFM_ETHER |  &IFM_10G_TWINAX |  &IFM_FDX, "10Gbase-Twinax" }, {  &IFM_ETHER |  &IFM_10G_TWINAX_LONG |  &IFM_FDX, "10Gbase-Twinax-Long" }, {  &IFM_ETHER |  &IFM_10G_T |  &IFM_FDX, "10Gbase-T" }, {  &IFM_ETHER |  &IFM_10G_CX4 |  &IFM_FDX, "10GbaseCX4" }, {  &IFM_ETHER |  &IFM_10G_CX4 |  &IFM_FDX, "10GCX4" }, {  &IFM_ETHER |  &IFM_10G_CX4 |  &IFM_FDX, "10GBASE-CX4" }, {  &IFM_ETHER |  &IFM_2500_SX |  &IFM_FDX, "2500baseSX" }, {  &IFM_ETHER |  &IFM_2500_SX |  &IFM_FDX, "2500SX" }, {  &IFM_ETHER |  &IFM_1000_SGMII |  &IFM_FDX, "1000BASE-SGMII" }, {  &IFM_ETHER |  &IFM_5000_KR |  &IFM_FDX, "5GBASE-KR" }, {  &IFM_ETHER |  &IFM_10G_AOC |  &IFM_FDX, "10GBASE-AOC" }, {  &IFM_ETHER |  &IFM_10G_CR1 |  &IFM_FDX, "10GBASE-CR1" }, {  &IFM_ETHER |  &IFM_10G_ER |  &IFM_FDX, "10GBASE-ER" }, {  &IFM_ETHER |  &IFM_10G_KR |  &IFM_FDX, "10GBASE-KR" }, {  &IFM_ETHER |  &IFM_10G_KX4 |  &IFM_FDX, "10GBASE-KX4" }, {  &IFM_ETHER |  &IFM_10G_LX4 |  &IFM_FDX, "10GBASE-LX4" }, {  &IFM_ETHER |  &IFM_10G_SFI |  &IFM_FDX, "10GBASE-SFI" }, {  &IFM_ETHER |  &IFM_10G_ZR |  &IFM_FDX, "10GBASE-ZR" }, {  &IFM_ETHER |  &IFM_20G_KR2 |  &IFM_FDX, "20GBASE-KR2" }, {  &IFM_ETHER |  &IFM_25G_ACC |  &IFM_FDX, "25GBASE-ACC" }, {  &IFM_ETHER |  &IFM_25G_AOC |  &IFM_FDX, "25GBASE-AOC" }, {  &IFM_ETHER |  &IFM_25G_AUI |  &IFM_FDX, "25G-AUI" }, {  &IFM_ETHER |  &IFM_25G_CR |  &IFM_FDX, "25GBASE-CR" }, {  &IFM_ETHER |  &IFM_25G_CR_S |  &IFM_FDX, "25GBASE-CR-S" }, {  &IFM_ETHER |  &IFM_25G_ER |  &IFM_FDX, "25GBASE-ER" }, {  &IFM_ETHER |  &IFM_25G_KR |  &IFM_FDX, "25GBASE-KR" }, {  &IFM_ETHER |  &IFM_25G_KR_S |  &IFM_FDX, "25GBASE-KR-S" }, {  &IFM_ETHER |  &IFM_25G_LR |  &IFM_FDX, "25GBASE-LR" }, {  &IFM_ETHER |  &IFM_25G_SR |  &IFM_FDX, "25GBASE-SR" }, {  &IFM_ETHER |  &IFM_25G_T |  &IFM_FDX, "25GBASE-T" }, {  &IFM_ETHER |  &IFM_40G_AOC |  &IFM_FDX, "40GBASE-AOC" }, {  &IFM_ETHER |  &IFM_40G_CR4 |  &IFM_FDX, "40GBASE-CR4" }, {  &IFM_ETHER |  &IFM_40G_ER4 |  &IFM_FDX, "40GBASE-ER4" }, {  &IFM_ETHER |  &IFM_40G_FR |  &IFM_FDX, "40GBASE-FR" }, {  &IFM_ETHER |  &IFM_40G_KR4 |  &IFM_FDX, "40GBASE-KR4" }, {  &IFM_ETHER |  &IFM_40G_LR4 |  &IFM_FDX, "40GBASE-LR4" }, {  &IFM_ETHER |  &IFM_40G_SR4 |  &IFM_FDX, "40GBASE-SR4" }, {  &IFM_ETHER |  &IFM_40G_T |  &IFM_FDX, "40GBASE-T" }, {  &IFM_ETHER |  &IFM_40G_XLPPI |  &IFM_FDX, "40G-XLPPI" }, {  &IFM_ETHER |  &IFM_50G_AUI1 |  &IFM_FDX, "50GAUI-1" }, {  &IFM_ETHER |  &IFM_50G_AUI2 |  &IFM_FDX, "50GAUI-2" }, {  &IFM_ETHER |  &IFM_50G_CR |  &IFM_FDX, "50GBASE-CR" }, {  &IFM_ETHER |  &IFM_50G_CR2 |  &IFM_FDX, "50GBASE-CR2" }, {  &IFM_ETHER |  &IFM_50G_FR |  &IFM_FDX, "50GBASE-FR" }, {  &IFM_ETHER |  &IFM_50G_KR |  &IFM_FDX, "50GBASE-KR" }, {  &IFM_ETHER |  &IFM_50G_KR2 |  &IFM_FDX, "50GBASE-KR2" }, {  &IFM_ETHER |  &IFM_50G_LAUI2 |  &IFM_FDX, "50GLAUI-2" }, {  &IFM_ETHER |  &IFM_50G_LR |  &IFM_FDX, "50GBASE-LR" }, {  &IFM_ETHER |  &IFM_50G_SR |  &IFM_FDX, "50GBASE-SR" }, {  &IFM_ETHER |  &IFM_50G_SR2 |  &IFM_FDX, "50GBASE-SR2" }, {  &IFM_ETHER |  &IFM_56G_R4 |  &IFM_FDX, "56GBASE-R4" }, {  &IFM_ETHER |  &IFM_100G_ACC |  &IFM_FDX, "100GBASE-ACC" }, {  &IFM_ETHER |  &IFM_100G_AOC |  &IFM_FDX, "100GBASE-AOC" }, {  &IFM_ETHER |  &IFM_100G_CR2 |  &IFM_FDX, "100GBASE-CR2" }, {  &IFM_ETHER |  &IFM_100G_CR4 |  &IFM_FDX, "100GBASE-CR4" }, {  &IFM_ETHER |  &IFM_100G_CR10 |  &IFM_FDX, "100GBASE-CR10" }, {  &IFM_ETHER |  &IFM_100G_DR |  &IFM_FDX, "100GBASE-DR" }, {  &IFM_ETHER |  &IFM_100G_ER4 |  &IFM_FDX, "100GBASE-ER4" }, {  &IFM_ETHER |  &IFM_100G_FR |  &IFM_FDX, "100GBASE-FR" }, {  &IFM_ETHER |  &IFM_100G_KP4 |  &IFM_FDX, "100GBASE-KP4" }, {  &IFM_ETHER |  &IFM_100G_KR2 |  &IFM_FDX, "100GBASE-KR2" }, {  &IFM_ETHER |  &IFM_100G_KR4 |  &IFM_FDX, "100GBASE-KR4" }, {  &IFM_ETHER |  &IFM_100G_LR |  &IFM_FDX, "100GBASE-LR" }, {  &IFM_ETHER |  &IFM_100G_LR4 |  &IFM_FDX, "100GBASE-LR4" }, {  &IFM_ETHER |  &IFM_100G_SR2 |  &IFM_FDX, "100GBASE-SR2" }, {  &IFM_ETHER |  &IFM_100G_SR4 |  &IFM_FDX, "100GBASE-SR4" }, {  &IFM_ETHER |  &IFM_100G_SR10 |  &IFM_FDX, "100GBASE-SR10" }, {  &IFM_ETHER |  &IFM_200G_CR2 |  &IFM_FDX, "200GBASE-CR2" }, {  &IFM_ETHER |  &IFM_200G_CR4 |  &IFM_FDX, "200GBASE-CR4" }, {  &IFM_ETHER |  &IFM_200G_DR4 |  &IFM_FDX, "200GBASE-DR4" }, {  &IFM_ETHER |  &IFM_200G_ER4 |  &IFM_FDX, "200GBASE-ER4" }, {  &IFM_ETHER |  &IFM_200G_FR4 |  &IFM_FDX, "200GBASE-FR4" }, {  &IFM_ETHER |  &IFM_200G_KR2 |  &IFM_FDX, "200GBASE-KR2" }, {  &IFM_ETHER |  &IFM_200G_KR4 |  &IFM_FDX, "200GBASE-KR4" }, {  &IFM_ETHER |  &IFM_200G_LR4 |  &IFM_FDX, "200GBASE-LR4" }, {  &IFM_ETHER |  &IFM_200G_SR4 |  &IFM_FDX, "200GBASE-SR4" }, {  &IFM_ETHER |  &IFM_400G_CR4 |  &IFM_FDX, "400GBASE-CR4" }, {  &IFM_ETHER |  &IFM_400G_DR4 |  &IFM_FDX, "400GBASE-DR4" }, {  &IFM_ETHER |  &IFM_400G_ER8 |  &IFM_FDX, "400GBASE-ER8" }, {  &IFM_ETHER |  &IFM_400G_FR4 |  &IFM_FDX, "400GBASE-FR4" }, {  &IFM_ETHER |  &IFM_400G_FR8 |  &IFM_FDX, "400GBASE-FR8" }, {  &IFM_ETHER |  &IFM_400G_KR4 |  &IFM_FDX, "400GBASE-KR4" }, {  &IFM_ETHER |  &IFM_400G_LR4 |  &IFM_FDX, "400GBASE-LR4" }, {  &IFM_ETHER |  &IFM_400G_LR8 |  &IFM_FDX, "400GBASE-LR8" }, {  &IFM_ETHER |  &IFM_400G_SR4_2 |  &IFM_FDX, "400GBASE-SR4.2" }, {  &IFM_ETHER |  &IFM_400G_SR8 |  &IFM_FDX, "400GBASE-SR8" }, {  &IFM_ETHER |  &IFM_400G_SR16 |  &IFM_FDX, "400GBASE-SR16" }, {  &IFM_TOKEN |  &IFM_TOK_STP4, "DB9/4Mbit" }, {  &IFM_TOKEN |  &IFM_TOK_STP4, "4STP" }, {  &IFM_TOKEN |  &IFM_TOK_STP16, "DB9/16Mbit" }, {  &IFM_TOKEN |  &IFM_TOK_STP16, "16STP" }, {  &IFM_TOKEN |  &IFM_TOK_UTP4, "UTP/4Mbit" }, {  &IFM_TOKEN |  &IFM_TOK_UTP4, "4UTP" }, {  &IFM_TOKEN |  &IFM_TOK_UTP16, "UTP/16Mbit" }, {  &IFM_TOKEN |  &IFM_TOK_UTP16, "16UTP" }, {  &IFM_FDDI |  &IFM_FDDI_SMF, "Single-mode" }, {  &IFM_FDDI |  &IFM_FDDI_SMF, "SMF" }, {  &IFM_FDDI |  &IFM_FDDI_MMF, "Multi-mode" }, {  &IFM_FDDI |  &IFM_FDDI_MMF, "MMF" }, {  &IFM_FDDI |  &IFM_FDDI_UTP, "UTP" }, {  &IFM_FDDI |  &IFM_FDDI_UTP, "CDDI" }, {  &IFM_ETHER |  &IFM_10_T |  &IFM_FDX, "10baseT-FDX" }, {  &IFM_ETHER |  &IFM_10_T |  &IFM_FDX, "10BASE-T-FDX" }, {  &IFM_ETHER |  &IFM_100_TX |  &IFM_FDX, "100baseTX-FDX" }, {  &IFM_ETHER |  &IFM_100_TX |  &IFM_FDX, "100BASE-TX-FDX" }, {  &IFM_ETHER |  &IFM_1000_T |  &IFM_FDX, "1000baseT-FDX" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_FH1, "FH1" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_FH2, "FH2" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS1, "DS1" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS2, "DS2" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS5, "DS5" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS11, "DS11" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS22, "DS22" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM6, "OFDM6" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM9, "OFDM9" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM12, "OFDM12" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM18, "OFDM18" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM24, "OFDM24" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM36, "OFDM36" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM48, "OFDM48" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM54, "OFDM54" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM72, "OFDM72" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS354k, "DS/354Kbps" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS512k, "DS/512Kbps" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM3, "OFDM/3Mbps" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM4, "OFDM/4.5Mbps" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM27, "OFDM/27Mbps" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_MCS, "HT" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_VHT, "VHT" }, { 0,  &NULL }, };}' unless defined(&IFM_SUBTYPE_DESCRIPTIONS);
    eval 'sub IFM_MODE_DESCRIPTIONS () {{ {  &IFM_AUTO, "autoselect" }, {  &IFM_AUTO, "auto" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_11A, "11a" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_11B, "11b" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_11G, "11g" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_FH, "fh" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_11NA, "11na" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_11NG, "11ng" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_11AC, "11ac" }, { 0,  &NULL }, };}' unless defined(&IFM_MODE_DESCRIPTIONS);
    eval 'sub IFM_OPTION_DESCRIPTIONS () {{ {  &IFM_FDX, "full-duplex" }, {  &IFM_FDX, "fdx" }, {  &IFM_HDX, "half-duplex" }, {  &IFM_HDX, "hdx" }, {  &IFM_FLOW, "flowcontrol" }, {  &IFM_FLOW, "flow" }, {  &IFM_FLAG0, "flag0" }, {  &IFM_FLAG1, "flag1" }, {  &IFM_FLAG2, "flag2" }, {  &IFM_LOOP, "loopback" }, {  &IFM_LOOP, "hw-loopback"}, {  &IFM_LOOP, "loop" }, {  &IFM_ETHER |  &IFM_ETH_MASTER, "master" }, {  &IFM_ETHER |  &IFM_ETH_RXPAUSE, "rxpause" }, {  &IFM_ETHER |  &IFM_ETH_TXPAUSE, "txpause" }, {  &IFM_TOKEN |  &IFM_TOK_ETR, "EarlyTokenRelease" }, {  &IFM_TOKEN |  &IFM_TOK_ETR, "ETR" }, {  &IFM_TOKEN |  &IFM_TOK_SRCRT, "SourceRouting" }, {  &IFM_TOKEN |  &IFM_TOK_SRCRT, "SRCRT" }, {  &IFM_TOKEN |  &IFM_TOK_ALLR, "AllRoutes" }, {  &IFM_TOKEN |  &IFM_TOK_ALLR, "ALLR" }, {  &IFM_FDDI |  &IFM_FDDI_DA, "dual-attach" }, {  &IFM_FDDI |  &IFM_FDDI_DA, "das" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_ADHOC, "adhoc" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_HOSTAP, "hostap" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_MONITOR,"monitor" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_TURBO, "turbo" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_IBSS, "ibss" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_WDS, "wds" }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_MBSS, "mesh" }, { 0,  &NULL }, };}' unless defined(&IFM_OPTION_DESCRIPTIONS);
    eval 'sub IFM_BAUDRATE_DESCRIPTIONS () {{ {  &IFM_ETHER |  &IFM_10_T,  &IF_Mbps(10) }, {  &IFM_ETHER |  &IFM_10_2,  &IF_Mbps(10) }, {  &IFM_ETHER |  &IFM_10_5,  &IF_Mbps(10) }, {  &IFM_ETHER |  &IFM_100_TX,  &IF_Mbps(100) }, {  &IFM_ETHER |  &IFM_100_FX,  &IF_Mbps(100) }, {  &IFM_ETHER |  &IFM_100_T4,  &IF_Mbps(100) }, {  &IFM_ETHER |  &IFM_100_VG,  &IF_Mbps(100) }, {  &IFM_ETHER |  &IFM_100_T2,  &IF_Mbps(100) }, {  &IFM_ETHER |  &IFM_1000_SX,  &IF_Mbps(1000) }, {  &IFM_ETHER |  &IFM_10_STP,  &IF_Mbps(10) }, {  &IFM_ETHER |  &IFM_10_FL,  &IF_Mbps(10) }, {  &IFM_ETHER |  &IFM_1000_LX,  &IF_Mbps(1000) }, {  &IFM_ETHER |  &IFM_1000_CX,  &IF_Mbps(1000) }, {  &IFM_ETHER |  &IFM_1000_T,  &IF_Mbps(1000) }, {  &IFM_ETHER |  &IFM_HPNA_1,  &IF_Mbps(1) }, {  &IFM_ETHER |  &IFM_10G_LR,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_SR,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_CX4,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_2500_SX,  &IF_Mbps(2500) }, {  &IFM_ETHER |  &IFM_1000_BX10,  &IF_Mbps(1000) }, {  &IFM_ETHER |  &IFM_10G_TWINAX,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_TWINAX_LONG,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_LRM,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_T,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_1000_KX,  &IF_Mbps(1000) }, {  &IFM_ETHER |  &IFM_2500_KX,  &IF_Mbps(2500) }, {  &IFM_ETHER |  &IFM_2500_T,  &IF_Mbps(2500) }, {  &IFM_ETHER |  &IFM_5000_T,  &IF_Gbps(5) }, {  &IFM_ETHER |  &IFM_1000_SGMII,  &IF_Gbps(1) }, {  &IFM_ETHER |  &IFM_5000_KR,  &IF_Gbps(5) }, {  &IFM_ETHER |  &IFM_10G_AOC,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_CR1,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_ER,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_KR,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_KX4,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_LX4,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_SFI,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_10G_ZR,  &IF_Gbps(10) }, {  &IFM_ETHER |  &IFM_20G_KR2,  &IF_Gbps(20) }, {  &IFM_ETHER |  &IFM_25G_ACC,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_AOC,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_AUI,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_CR,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_CR_S,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_ER,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_KR,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_KR_S,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_LR,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_SR,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_25G_T,  &IF_Gbps(25) }, {  &IFM_ETHER |  &IFM_40G_AOC,  &IF_Gbps(40) }, {  &IFM_ETHER |  &IFM_40G_CR4,  &IF_Gbps(40) }, {  &IFM_ETHER |  &IFM_40G_ER4,  &IF_Gbps(40) }, {  &IFM_ETHER |  &IFM_40G_FR,  &IF_Gbps(40) }, {  &IFM_ETHER |  &IFM_40G_KR4,  &IF_Gbps(40) }, {  &IFM_ETHER |  &IFM_40G_LR4,  &IF_Gbps(40) }, {  &IFM_ETHER |  &IFM_40G_SR4,  &IF_Gbps(40) }, {  &IFM_ETHER |  &IFM_40G_T,  &IF_Gbps(40) }, {  &IFM_ETHER |  &IFM_40G_XLPPI,  &IF_Gbps(40) }, {  &IFM_ETHER |  &IFM_50G_AUI1,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_AUI2,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_CR,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_CR2,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_FR,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_KR,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_KR2,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_LAUI2,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_LR,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_SR,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_50G_SR2,  &IF_Gbps(50) }, {  &IFM_ETHER |  &IFM_56G_R4,  &IF_Gbps(56) }, {  &IFM_ETHER |  &IFM_100G_ACC,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_AOC,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_CR2,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_CR4,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_CR10,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_DR,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_ER4,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_FR,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_KP4,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_KR2,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_KR4,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_LR,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_LR4,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_SR2,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_SR4,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_100G_SR10,  &IF_Gbps(100) }, {  &IFM_ETHER |  &IFM_200G_CR2,  &IF_Gbps(200) }, {  &IFM_ETHER |  &IFM_200G_CR4,  &IF_Gbps(200) }, {  &IFM_ETHER |  &IFM_200G_DR4,  &IF_Gbps(200) }, {  &IFM_ETHER |  &IFM_200G_ER4,  &IF_Gbps(200) }, {  &IFM_ETHER |  &IFM_200G_FR4,  &IF_Gbps(200) }, {  &IFM_ETHER |  &IFM_200G_KR2,  &IF_Gbps(200) }, {  &IFM_ETHER |  &IFM_200G_KR4,  &IF_Gbps(200) }, {  &IFM_ETHER |  &IFM_200G_LR4,  &IF_Gbps(200) }, {  &IFM_ETHER |  &IFM_200G_SR4,  &IF_Gbps(200) }, {  &IFM_ETHER |  &IFM_400G_CR4,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_DR4,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_ER8,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_FR4,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_FR8,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_KR4,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_LR4,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_LR8,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_SR4_2,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_SR8,  &IF_Gbps(400) }, {  &IFM_ETHER |  &IFM_400G_SR16,  &IF_Gbps(400) }, {  &IFM_TOKEN |  &IFM_TOK_STP4,  &IF_Mbps(4) }, {  &IFM_TOKEN |  &IFM_TOK_STP16,  &IF_Mbps(16) }, {  &IFM_TOKEN |  &IFM_TOK_UTP4,  &IF_Mbps(4) }, {  &IFM_TOKEN |  &IFM_TOK_UTP16,  &IF_Mbps(16) }, {  &IFM_FDDI |  &IFM_FDDI_SMF,  &IF_Mbps(100) }, {  &IFM_FDDI |  &IFM_FDDI_MMF,  &IF_Mbps(100) }, {  &IFM_FDDI |  &IFM_FDDI_UTP,  &IF_Mbps(100) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_FH1,  &IF_Mbps(1) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_FH2,  &IF_Mbps(2) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS2,  &IF_Mbps(2) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS5,  &IF_Kbps(5500) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS11,  &IF_Mbps(11) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS1,  &IF_Mbps(1) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_DS22,  &IF_Mbps(22) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM6,  &IF_Mbps(6) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM9,  &IF_Mbps(9) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM12,  &IF_Mbps(12) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM18,  &IF_Mbps(18) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM24,  &IF_Mbps(24) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM36,  &IF_Mbps(36) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM48,  &IF_Mbps(48) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM54,  &IF_Mbps(54) }, {  &IFM_IEEE80211 |  &IFM_IEEE80211_OFDM72,  &IF_Mbps(72) }, { 0, 0}, };}' unless defined(&IFM_BAUDRATE_DESCRIPTIONS);
    eval 'sub IFM_STATUS_DESC {
        my($ifms, $bit) = @_;
	    eval q(($ifms)-> $ifms_string[(($ifms)-> &ifms_bit & ($bit)) ? 1: 0]);
    }' unless defined(&IFM_STATUS_DESC);
    eval 'sub IFM_STATUS_DESCRIPTIONS () {{ {  &IFM_GENERIC,  &IFM_AVALID,  &IFM_ACTIVE, { "no network", "active" } }, {  &IFM_ETHER,  &IFM_AVALID,  &IFM_ACTIVE, { "no carrier", "active" } }, {  &IFM_FDDI,  &IFM_AVALID,  &IFM_ACTIVE, { "no ring", "inserted" } }, {  &IFM_TOKEN,  &IFM_AVALID,  &IFM_ACTIVE, { "no ring", "inserted" } }, {  &IFM_IEEE80211,  &IFM_AVALID,  &IFM_ACTIVE, { "no network", "active" } }, {  &IFM_CARP,  &IFM_AVALID,  &IFM_ACTIVE, { "backup", "master" } }, { 0, 0, 0, {  &NULL,  &NULL } }, };}' unless defined(&IFM_STATUS_DESCRIPTIONS);
    if(defined(&_KERNEL)) {
	require 'sys/mutex.ph';
	require 'sys/queue.ph';
	eval 'sub ifmedia_lock {
	    my($ifm) = @_;
    	    eval q( &mutex_enter(($ifm)-> &ifm_lock));
	}' unless defined(&ifmedia_lock);
	eval 'sub ifmedia_unlock {
	    my($ifm) = @_;
    	    eval q( &mutex_exit(($ifm)-> &ifm_lock));
	}' unless defined(&ifmedia_unlock);
	eval 'sub ifmedia_locked {
	    my($ifm) = @_;
    	    eval q( &mutex_owned(($ifm)-> &ifm_lock));
	}' unless defined(&ifmedia_locked);
	if(defined(&__IFMEDIA_PRIVATE)) {
	    eval 'sub ifmedia_islegacy {
	        my($ifm) = @_;
    		eval q((($ifm)-> &ifm_legacy));
	    }' unless defined(&ifmedia_islegacy);
	    eval 'sub IFMEDIA_LOCK_FOR_LEGACY {
	        my($ifm) = @_;
    		eval q( &do {  &if ( &ifmedia_islegacy($ifm))  &ifmedia_lock_for_legacy($ifm); }  &while ( 0));
	    }' unless defined(&IFMEDIA_LOCK_FOR_LEGACY);
	    eval 'sub IFMEDIA_UNLOCK_FOR_LEGACY {
	        my($ifm) = @_;
    		eval q( &do {  &if ( &ifmedia_islegacy($ifm))  &ifmedia_unlock_for_legacy($ifm); }  &while ( 0));
	    }' unless defined(&IFMEDIA_UNLOCK_FOR_LEGACY);
	}
    } else {
    }
}
1;
