summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_freebsd.h
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2001-10-01 03:48:42 +0000
committermjacob <mjacob@FreeBSD.org>2001-10-01 03:48:42 +0000
commit2dbbccb697e6b707fc0b29a58cc4113cea5cdc34 (patch)
treeee3f35af7318ef72f236a9b8884c73c229b6945a /sys/dev/isp/isp_freebsd.h
parent9dcaf49f6a97d3369812404353462fce77a0a74b (diff)
downloadFreeBSD-src-2dbbccb697e6b707fc0b29a58cc4113cea5cdc34.zip
FreeBSD-src-2dbbccb697e6b707fc0b29a58cc4113cea5cdc34.tar.gz
Begin to implement target mode that for Fibre Channel has a private
per-command component that we *don't* try and pass thru CAM. CAM just is too risky and too much of a pain- structures get copied, but not all info of interest can be considered safely transported thru all consumers (including user space) from the incoming ATIO to the outgoing CTIO- it's just much safer to have a buddy structure, identified by the command's tag which *does* make it thru safely. Pay attention to link speed and report 200MB/s xfer speed for a 23XX card in 2GPs mode. MFC after: 1 week
Diffstat (limited to 'sys/dev/isp/isp_freebsd.h')
-rw-r--r--sys/dev/isp/isp_freebsd.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/isp/isp_freebsd.h b/sys/dev/isp/isp_freebsd.h
index 91b837d..67abd62 100644
--- a/sys/dev/isp/isp_freebsd.h
+++ b/sys/dev/isp/isp_freebsd.h
@@ -66,6 +66,14 @@
typedef void ispfwfunc __P((int, int, int, const u_int16_t **));
#ifdef ISP_TARGET_MODE
+#define ATPDPSIZE 256
+typedef struct {
+ u_int32_t orig_datalen;
+ u_int32_t bytes_xfered;
+ u_int32_t last_xframt;
+ u_int32_t tag;
+} atio_private_data_t;
+
typedef struct tstate {
struct tstate *next;
struct cam_path *owner;
@@ -112,6 +120,7 @@ struct isposinfo {
u_int16_t rollinfo;
tstate_t tsdflt[2]; /* two busses */
tstate_t *lun_hash[LUN_HASH_SIZE];
+ atio_private_data_t atpdp[ATPDPSIZE];
#endif
};
OpenPOWER on IntegriCloud