summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_freebsd.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/isp/isp_freebsd.h')
-rw-r--r--sys/dev/isp/isp_freebsd.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/isp/isp_freebsd.h b/sys/dev/isp/isp_freebsd.h
index d74d859..5fcae7f 100644
--- a/sys/dev/isp/isp_freebsd.h
+++ b/sys/dev/isp/isp_freebsd.h
@@ -95,11 +95,13 @@ void isp_put_ecmd(struct ispsoftc *, isp_ecmd_t *);
#define ISP_TARGET_FUNCTIONS 1
#define ATPDPSIZE 4096
+#define ATPDPHASHSIZE 16
+#define ATPDPHASH(x) ((((x) >> 24) ^ ((x) >> 16) ^ ((x) >> 8) ^ (x)) & \
+ ((ATPDPHASHSIZE) - 1))
#include <dev/isp/isp_target.h>
-
-typedef struct {
- void * next;
+typedef struct atio_private_data {
+ LIST_ENTRY(atio_private_data) next;
uint32_t orig_datalen;
uint32_t bytes_xfered;
uint32_t bytes_in_transit;
@@ -173,7 +175,8 @@ typedef struct tstate {
inot_private_data_t * restart_queue;
inot_private_data_t * ntfree;
inot_private_data_t ntpool[ATPDPSIZE];
- atio_private_data_t * atfree;
+ LIST_HEAD(, atio_private_data) atfree;
+ LIST_HEAD(, atio_private_data) atused[ATPDPHASHSIZE];
atio_private_data_t atpool[ATPDPSIZE];
} tstate_t;
OpenPOWER on IntegriCloud