kernel/net: On i386, make the interface baudrate 64 bits in a few places.
authorSascha Wildner <saw@online.de>
Mon, 2 Jul 2012 02:02:31 +0000 (04:02 +0200)
committerSascha Wildner <saw@online.de>
Mon, 2 Jul 2012 02:03:12 +0000 (04:03 +0200)
For 10Gb ethernet.

For ifi_baudrate in struct if_data (which is public), NetBSD uses
uint64_t too, so no pkgsrc breakage is expected. However, a few
i386 binary packages we offer might be broken now on master.

Discussed-with: sephe

share/man/man9/ifnet.9
sys/dev/netif/sbni/if_sbni.c
sys/net/if.h
sys/net/if_media.c
sys/net/if_media.h

index e228ca1..80c836f 100644 (file)
@@ -530,7 +530,7 @@ The link state of the interface, either
 or
 .Dv LINK_STATE_UP .
 .It Va ifi_baudrate
-.Pq Vt u_long
+.Pq Vt uint64_t
 The line rate of the interface, in bits per second.
 .El
 .Pp
index 21f4f5c..e5ad575 100644 (file)
@@ -25,7 +25,6 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/sbni/if_sbni.c,v 1.1.2.4 2002/08/11 09:32:00 fjoe Exp $
- * $DragonFly: src/sys/dev/netif/sbni/if_sbni.c,v 1.28 2008/05/14 11:59:21 sephe Exp $
  */
 
 /*
@@ -250,7 +249,7 @@ sbni_attach(struct sbni_softc *sc, int unit, struct sbni_flags flags)
 
        /* device attach does transition from UNCONFIGURED to IDLE state */
 
-       if_printf(ifp, "speed %ld, rxl ", ifp->if_baudrate);
+       if_printf(ifp, "speed %ju, rxl ", (uintmax_t)ifp->if_baudrate);
        if (sc->delta_rxl)
                kprintf("auto\n");
        else
index 6f500f7..e8575e3 100644 (file)
@@ -98,7 +98,7 @@ struct if_data {
        u_long  ifi_mtu;                /* maximum transmission unit */
        u_long  ifi_metric;             /* routing metric (external only) */
        u_long  ifi_link_state;         /* current link state */
-       u_long  ifi_baudrate;           /* linespeed */
+       uint64_t ifi_baudrate;          /* linespeed */
        /* volatile statistics */
        u_long  ifi_ipackets;           /* packets received on interface */
        u_long  ifi_ierrors;            /* input errors on interface */
index 8a3589a..4032cec 100644 (file)
@@ -1,6 +1,5 @@
 /*     $NetBSD: if_media.c,v 1.1 1997/03/17 02:55:15 thorpej Exp $     */
 /* $FreeBSD: src/sys/net/if_media.c,v 1.9.2.4 2001/07/04 00:12:38 brooks Exp $ */
-/* $DragonFly: src/sys/net/if_media.c,v 1.15 2007/08/27 16:15:42 hasso Exp $ */
 
 /*
  * Copyright (c) 1997
@@ -363,7 +362,7 @@ ifmedia_match(struct ifmedia *ifm, int target, int mask)
 struct ifmedia_baudrate ifmedia_baudrate_descriptions[] =
     IFM_BAUDRATE_DESCRIPTIONS;
 
-int
+uint64_t
 ifmedia_baudrate(int mword)
 {
        int i;
index 4526ef2..ff8fef5 100644 (file)
@@ -115,7 +115,7 @@ int ifmedia_ioctl(struct ifnet *ifp, struct ifreq *ifr,
            struct ifmedia *ifm, u_long cmd);
 
 /* Compute baudrate for a given media. */
-int    ifmedia_baudrate(int);
+uint64_t ifmedia_baudrate(int);
 #endif /*_KERNEL */
 
 /*
@@ -522,8 +522,8 @@ struct ifmedia_description {
  * Baudrate descriptions for the various media types.
  */
 struct ifmedia_baudrate {
-       int     ifmb_word;              /* media word */
-       int     ifmb_baudrate;          /* corresponding baudrate */
+       int             ifmb_word;              /* media word */
+       uint64_t        ifmb_baudrate;          /* corresponding baudrate */
 };
 
 #define IFM_BAUDRATE_DESCRIPTIONS {                                    \