summaryrefslogtreecommitdiff
path: root/sys/dev/pci/ubsecvar.h
diff options
context:
space:
mode:
authorJason Wright <jason@cvs.openbsd.org>2001-01-29 00:39:22 +0000
committerJason Wright <jason@cvs.openbsd.org>2001-01-29 00:39:22 +0000
commita35279642e28744be4bf4c6cfcabf0946cb41dc7 (patch)
tree048ac6293a9d0b13810e473cfc8e105a73786334 /sys/dev/pci/ubsecvar.h
parente8fe2bfa385595a419df8f916b7aa1149ff150bf (diff)
- add infrastructure for dealing with the key generator (MCR2)
- add support for the onboard rng using that structure - add a interrupt status mask (differs for 5501 and 5601) - reorganize slightly to take into account that MCR1 isn't the only reason for interrupts.
Diffstat (limited to 'sys/dev/pci/ubsecvar.h')
-rw-r--r--sys/dev/pci/ubsecvar.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/sys/dev/pci/ubsecvar.h b/sys/dev/pci/ubsecvar.h
index f7a00d48bda..dc6c951de7e 100644
--- a/sys/dev/pci/ubsecvar.h
+++ b/sys/dev/pci/ubsecvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ubsecvar.h,v 1.11 2001/01/11 18:56:50 deraadt Exp $ */
+/* $OpenBSD: ubsecvar.h,v 1.12 2001/01/29 00:39:21 jason Exp $ */
/*
* Copyright (c) 2000 Theo de Raadt
@@ -34,12 +34,17 @@ struct ubsec_softc {
bus_space_tag_t sc_st; /* memory tag */
bus_dma_tag_t sc_dmat; /* dma tag */
int sc_5601; /* device is 5601 */
+ u_int32_t sc_statmask; /* interrupt status mask */
int32_t sc_cid; /* crypto tag */
- SIMPLEQ_HEAD(,ubsec_q) sc_queue; /* packet queue */
- int sc_nqueue; /* count enqueued */
- SIMPLEQ_HEAD(,ubsec_q) sc_qchip; /* on chip */
+ SIMPLEQ_HEAD(,ubsec_q) sc_queue; /* packet queue, mcr1 */
+ int sc_nqueue; /* count enqueued, mcr1 */
+ SIMPLEQ_HEAD(,ubsec_q) sc_qchip; /* on chip, mcr1 */
+ SIMPLEQ_HEAD(,ubsec_q2) sc_queue2; /* packet queue, mcr2 */
+ int sc_nqueue2; /* count enqueued, mcr2 */
+ SIMPLEQ_HEAD(,ubsec_q2) sc_qchip2; /* on chip, mcr2 */
int sc_nsessions; /* # of sessions */
struct ubsec_session *sc_sessions; /* sessions */
+ struct timeout sc_rngto; /* rng timeout */
};
struct ubsec_q {
@@ -64,6 +69,16 @@ struct ubsec_q {
int q_sesn;
};
+struct ubsec_q2 {
+ SIMPLEQ_ENTRY(ubsec_q2) q_next;
+ struct ubsec_softc *q_sc;
+ struct ubsec_mcr *q_mcr;
+ void *q_ctx;
+ struct ubsec_pktbuf q_srcpkt[MAX_SCATTER-1];
+ struct ubsec_pktbuf q_dstpkt[MAX_SCATTER-1];
+ void *q_private;
+};
+
struct ubsec_session {
u_int32_t ses_used;
u_int32_t ses_deskey[6]; /* 3DES key */