summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/hifn7751.c
diff options
context:
space:
mode:
authorjason <jason@openbsd.org>2002-11-21 19:34:25 +0000
committerjason <jason@openbsd.org>2002-11-21 19:34:25 +0000
commitfc652f68ddea432eb4510092c7c7020516b1fcf7 (patch)
tree4184cbad485bcdb933695f6513bfa319b0e9098b /sys/dev/pci/hifn7751.c
parentlofn works (diff)
downloadwireguard-openbsd-fc652f68ddea432eb4510092c7c7020516b1fcf7.tar.xz
wireguard-openbsd-fc652f68ddea432eb4510092c7c7020516b1fcf7.zip
From Angelos:
- simplistic load balancing across multiple cards - simplified registration process - a few style nits.
Diffstat (limited to 'sys/dev/pci/hifn7751.c')
-rw-r--r--sys/dev/pci/hifn7751.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/sys/dev/pci/hifn7751.c b/sys/dev/pci/hifn7751.c
index 5be93e94619..70834edf503 100644
--- a/sys/dev/pci/hifn7751.c
+++ b/sys/dev/pci/hifn7751.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: hifn7751.c,v 1.133 2002/11/19 18:40:17 jason Exp $ */
+/* $OpenBSD: hifn7751.c,v 1.134 2002/11/21 19:34:25 jason Exp $ */
/*
* Invertex AEON / Hifn 7751 driver
@@ -150,6 +150,7 @@ hifn_attach(parent, self, aux)
u_int16_t ena;
int rseg;
caddr_t kva;
+ int algs[CRYPTO_ALGORITHM_MAX + 1];
sc->sc_pci_pc = pa->pa_pc;
sc->sc_pci_tag = pa->pa_tag;
@@ -290,26 +291,24 @@ hifn_attach(parent, self, aux)
READ_REG_0(sc, HIFN_0_PUCNFG) | HIFN_PUCNFG_CHIPID);
ena = READ_REG_0(sc, HIFN_0_PUSTAT) & HIFN_PUSTAT_CHIPENA;
+ bzero(algs, sizeof(algs));
+
switch (ena) {
case HIFN_PUSTAT_ENA_2:
- crypto_register(sc->sc_cid, CRYPTO_3DES_CBC, 0, 0,
- hifn_newsession, hifn_freesession, hifn_process);
- crypto_register(sc->sc_cid, CRYPTO_ARC4, 0, 0,
- hifn_newsession, hifn_freesession, hifn_process);
+ algs[CRYPTO_3DES_CBC] = CRYPTO_ALG_FLAG_SUPPORTED;
+ algs[CRYPTO_ARC4] = CRYPTO_ALG_FLAG_SUPPORTED;
/*FALLTHROUGH*/
case HIFN_PUSTAT_ENA_1:
- crypto_register(sc->sc_cid, CRYPTO_MD5, 0, 0,
- hifn_newsession, hifn_freesession, hifn_process);
- crypto_register(sc->sc_cid, CRYPTO_SHA1, 0, 0,
- hifn_newsession, hifn_freesession, hifn_process);
- crypto_register(sc->sc_cid, CRYPTO_MD5_HMAC, 0, 0,
- hifn_newsession, hifn_freesession, hifn_process);
- crypto_register(sc->sc_cid, CRYPTO_SHA1_HMAC, 0, 0,
- hifn_newsession, hifn_freesession, hifn_process);
- crypto_register(sc->sc_cid, CRYPTO_DES_CBC, 0, 0,
- hifn_newsession, hifn_freesession, hifn_process);
+ algs[CRYPTO_MD5] = CRYPTO_ALG_FLAG_SUPPORTED;
+ algs[CRYPTO_SHA1] = CRYPTO_ALG_FLAG_SUPPORTED;
+ algs[CRYPTO_MD5_HMAC] = CRYPTO_ALG_FLAG_SUPPORTED;
+ algs[CRYPTO_SHA1_HMAC] = CRYPTO_ALG_FLAG_SUPPORTED;
+ algs[CRYPTO_DES_CBC] = CRYPTO_ALG_FLAG_SUPPORTED;
}
+ crypto_register(sc->sc_cid, algs, hifn_newsession,
+ hifn_freesession, hifn_process);
+
bus_dmamap_sync(sc->sc_dmat, sc->sc_dmamap, 0,
sc->sc_dmamap->dm_mapsize,
BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);