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)						\

Reply via email to