+#ifdef SIOCSOUTFILL
+ {"SIOCSOUTFILL", SIOCSOUTFILL, ifreq_offsetof(ifr_data)},
+#endif
+#ifdef CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
+ {"SIOCSIFMAP", SIOCSIFMAP, ifreq_offsetof(ifr_map.mem_start)},
+ {"SIOCSIFMAP", SIOCSIFMAP, ifreq_offsetof(ifr_map.base_addr)},
+ {"SIOCSIFMAP", SIOCSIFMAP, ifreq_offsetof(ifr_map.irq)},
+#endif
+ /* Last entry if for unmatched (possibly hostname) arg. */
+#ifdef CONFIG_FEATURE_IPV6
+ {"SIOCSIFADDR", SIOCSIFADDR, ifreq_offsetof(ifr_addr)}, /* IPv6 version ignores the offset */
+ {"SIOCDIFADDR", SIOCDIFADDR, ifreq_offsetof(ifr_addr)}, /* IPv6 version ignores the offset */
+#endif
+ {"SIOCSIFADDR", SIOCSIFADDR, ifreq_offsetof(ifr_addr)},
+};
+
+static const struct options OptArray[] = {
+ {"metric", N_ARG, ARG_METRIC, 0},
+ {"mtu", N_ARG, ARG_MTU, 0},
+ {"txqueuelen", N_ARG, ARG_TXQUEUELEN, 0},
+ {"dstaddr", N_ARG, ARG_DSTADDR, 0},
+ {"netmask", N_ARG, ARG_NETMASK, 0},
+ {"broadcast", N_ARG | M_CLR, ARG_BROADCAST, IFF_BROADCAST},
+#ifdef CONFIG_FEATURE_IFCONFIG_HW
+ {"hw", N_ARG, ARG_HW, 0},
+#endif
+ {"pointopoint", N_ARG | M_CLR, ARG_POINTOPOINT, IFF_POINTOPOINT},
+#ifdef SIOCSKEEPALIVE
+ {"keepalive", N_ARG, ARG_KEEPALIVE, 0},
+#endif
+#ifdef SIOCSOUTFILL
+ {"outfill", N_ARG, ARG_OUTFILL, 0},
+#endif
+#ifdef CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
+ {"mem_start", N_ARG, ARG_MEM_START, 0},
+ {"io_addr", N_ARG, ARG_IO_ADDR, 0},
+ {"irq", N_ARG, ARG_IRQ, 0},
+#endif
+#ifdef CONFIG_FEATURE_IPV6
+ {"add", N_ARG, ARG_ADD_DEL, 0},
+ {"del", N_ARG, ARG_ADD_DEL, 0},
+#endif
+ {"arp", N_CLR | M_SET, 0, IFF_NOARP},
+ {"trailers", N_CLR | M_SET, 0, IFF_NOTRAILERS},
+ {"promisc", N_SET | M_CLR, 0, IFF_PROMISC},
+ {"multicast", N_SET | M_CLR, 0, IFF_MULTICAST},
+ {"allmulti", N_SET | M_CLR, 0, IFF_ALLMULTI},
+ {"dynamic", N_SET | M_CLR, 0, IFF_DYNAMIC},
+ {"up", N_SET, 0, (IFF_UP | IFF_RUNNING)},
+ {"down", N_CLR, 0, IFF_UP},
+ {NULL, 0, ARG_HOSTNAME, (IFF_UP | IFF_RUNNING)}
+};
+
+/*
+ * A couple of prototypes.
+ */