diff options
author | 2002-11-21 19:34:25 +0000 | |
---|---|---|
committer | 2002-11-21 19:34:25 +0000 | |
commit | fc652f68ddea432eb4510092c7c7020516b1fcf7 (patch) | |
tree | 4184cbad485bcdb933695f6513bfa319b0e9098b /sys/dev/pci/hifn7751.c | |
parent | lofn works (diff) | |
download | wireguard-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.c | 29 |
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); |