Module Name: src
Committed By: rin
Date: Sat Feb 20 09:36:31 UTC 2021
Modified Files:
src/sys/arch/arc/jazz: if_sn_jazzio.c
src/sys/arch/mac68k/nubus: if_sn_nubus.c
src/sys/arch/mac68k/obio: if_sn_obio.c
src/sys/dev/ic: dp83932.c dp83932var.h
Log Message:
sn(4): Add rnd(9) support.
To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arc/jazz/if_sn_jazzio.c
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/mac68k/nubus/if_sn_nubus.c
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/mac68k/obio/if_sn_obio.c
cvs rdiff -u -r1.46 -r1.47 src/sys/dev/ic/dp83932.c
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/ic/dp83932var.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arc/jazz/if_sn_jazzio.c
diff -u src/sys/arch/arc/jazz/if_sn_jazzio.c:1.13 src/sys/arch/arc/jazz/if_sn_jazzio.c:1.14
--- src/sys/arch/arc/jazz/if_sn_jazzio.c:1.13 Fri Jul 1 19:25:41 2011
+++ src/sys/arch/arc/jazz/if_sn_jazzio.c Sat Feb 20 09:36:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: if_sn_jazzio.c,v 1.13 2011/07/01 19:25:41 dyoung Exp $ */
+/* $NetBSD: if_sn_jazzio.c,v 1.14 2021/02/20 09:36:30 rin Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_sn_jazzio.c,v 1.13 2011/07/01 19:25:41 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_sn_jazzio.c,v 1.14 2021/02/20 09:36:30 rin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -48,6 +48,8 @@ __KERNEL_RCSID(0, "$NetBSD: if_sn_jazzio
#include <sys/device.h>
#include <sys/kcore.h>
+#include <sys/rndsource.h>
+
#include <net/if.h>
#include <net/if_dl.h>
#include <net/if_ether.h>
Index: src/sys/arch/mac68k/nubus/if_sn_nubus.c
diff -u src/sys/arch/mac68k/nubus/if_sn_nubus.c:1.29 src/sys/arch/mac68k/nubus/if_sn_nubus.c:1.30
--- src/sys/arch/mac68k/nubus/if_sn_nubus.c:1.29 Wed Apr 23 13:29:45 2008
+++ src/sys/arch/mac68k/nubus/if_sn_nubus.c Sat Feb 20 09:36:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: if_sn_nubus.c,v 1.29 2008/04/23 13:29:45 tsutsui Exp $ */
+/* $NetBSD: if_sn_nubus.c,v 1.30 2021/02/20 09:36:30 rin Exp $ */
/*
* Copyright (C) 1997 Allen Briggs
@@ -31,13 +31,15 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_sn_nubus.c,v 1.29 2008/04/23 13:29:45 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_sn_nubus.c,v 1.30 2021/02/20 09:36:30 rin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/device.h>
#include <sys/ioctl.h>
+#include <sys/rndsource.h>
+
#include <net/if.h>
#include <net/if_ether.h>
Index: src/sys/arch/mac68k/obio/if_sn_obio.c
diff -u src/sys/arch/mac68k/obio/if_sn_obio.c:1.28 src/sys/arch/mac68k/obio/if_sn_obio.c:1.29
--- src/sys/arch/mac68k/obio/if_sn_obio.c:1.28 Wed Apr 23 13:29:45 2008
+++ src/sys/arch/mac68k/obio/if_sn_obio.c Sat Feb 20 09:36:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: if_sn_obio.c,v 1.28 2008/04/23 13:29:45 tsutsui Exp $ */
+/* $NetBSD: if_sn_obio.c,v 1.29 2021/02/20 09:36:30 rin Exp $ */
/*
* Copyright (C) 1997 Allen Briggs
@@ -31,13 +31,15 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_sn_obio.c,v 1.28 2008/04/23 13:29:45 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_sn_obio.c,v 1.29 2021/02/20 09:36:30 rin Exp $");
#include <sys/param.h>
#include <sys/device.h>
#include <sys/systm.h>
#include <sys/ioctl.h>
+#include <sys/rndsource.h>
+
#include <net/if.h>
#include <net/if_ether.h>
Index: src/sys/dev/ic/dp83932.c
diff -u src/sys/dev/ic/dp83932.c:1.46 src/sys/dev/ic/dp83932.c:1.47
--- src/sys/dev/ic/dp83932.c:1.46 Sun Mar 15 22:19:00 2020
+++ src/sys/dev/ic/dp83932.c Sat Feb 20 09:36:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: dp83932.c,v 1.46 2020/03/15 22:19:00 thorpej Exp $ */
+/* $NetBSD: dp83932.c,v 1.47 2021/02/20 09:36:31 rin Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dp83932.c,v 1.46 2020/03/15 22:19:00 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dp83932.c,v 1.47 2021/02/20 09:36:31 rin Exp $");
#include <sys/param.h>
@@ -48,6 +48,8 @@ __KERNEL_RCSID(0, "$NetBSD: dp83932.c,v
#include <sys/errno.h>
#include <sys/device.h>
+#include <sys/rndsource.h>
+
#include <net/if.h>
#include <net/if_dl.h>
#include <net/if_ether.h>
@@ -215,6 +217,9 @@ sonic_attach(struct sonic_softc *sc, con
if_deferred_start_init(ifp, NULL);
ether_ifattach(ifp, enaddr);
+ rnd_attach_source(&sc->sc_rndsource, ifp->if_xname, RND_TYPE_NET,
+ RND_FLAG_DEFAULT);
+
/*
* Make sure the interface is shutdown during reboot.
*/
@@ -627,8 +632,9 @@ sonic_txintr(struct sonic_softc *sc)
struct sonic_tda32 *tda32;
struct sonic_tda16 *tda16;
uint16_t status, totstat = 0;
- int i;
+ int i, count;
+ count = 0;
for (i = sc->sc_txdirty; sc->sc_txpending != 0;
i = SONIC_NEXTTX(i), sc->sc_txpending--) {
ds = &sc->sc_txsoft[i];
@@ -662,9 +668,10 @@ sonic_txintr(struct sonic_softc *sc)
* Check for errors and collisions.
*/
net_stat_ref_t nsr = IF_STAT_GETREF(ifp);
- if (status & TCR_PTX)
+ if (status & TCR_PTX) {
if_statinc_ref(nsr, if_opackets);
- else
+ count++;
+ } else
if_statinc_ref(nsr, if_oerrors);
if (TDA_STATUS_NCOL(status))
if_statadd_ref(nsr, if_collisions,
@@ -682,6 +689,9 @@ sonic_txintr(struct sonic_softc *sc)
if (sc->sc_txpending == 0)
ifp->if_timer = 0;
+ if (count != 0)
+ rnd_add_uint32(&sc->sc_rndsource, count);
+
return totstat;
}
@@ -698,9 +708,10 @@ sonic_rxintr(struct sonic_softc *sc)
struct sonic_rda32 *rda32;
struct sonic_rda16 *rda16;
struct mbuf *m;
- int i, len;
+ int i, len, count;
uint16_t status, bytecount /*, ptr0, ptr1, seqno */;
+ count = 0;
for (i = sc->sc_rxptr;; i = SONIC_NEXTRX(i)) {
ds = &sc->sc_rxsoft[i];
@@ -838,11 +849,16 @@ sonic_rxintr(struct sonic_softc *sc)
/* Pass it on. */
if_percpuq_enqueue(ifp->if_percpuq, m);
+
+ count++;
}
/* Update the receive pointer. */
sc->sc_rxptr = i;
CSR_WRITE(sc, SONIC_RWR, SONIC_CDRRADDR(sc, SONIC_PREVRX(i)));
+
+ if (count != 0)
+ rnd_add_uint32(&sc->sc_rndsource, count);
}
/*
Index: src/sys/dev/ic/dp83932var.h
diff -u src/sys/dev/ic/dp83932var.h:1.12 src/sys/dev/ic/dp83932var.h:1.13
--- src/sys/dev/ic/dp83932var.h:1.12 Tue Sep 1 15:20:53 2009
+++ src/sys/dev/ic/dp83932var.h Sat Feb 20 09:36:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: dp83932var.h,v 1.12 2009/09/01 15:20:53 tsutsui Exp $ */
+/* $NetBSD: dp83932var.h,v 1.13 2021/02/20 09:36:31 rin Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -200,6 +200,8 @@ struct sonic_softc {
uint16_t sc_imr; /* prototype IMR */
uint16_t sc_dcr; /* prototype DCR */
uint16_t sc_dcr2; /* prototype DCR2 */
+
+ krndsource_t sc_rndsource; /* random source */
};
#define CSR_READ(sc, reg) \