diff options
author | mjacob <mjacob@FreeBSD.org> | 2001-10-01 03:48:42 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2001-10-01 03:48:42 +0000 |
commit | 2dbbccb697e6b707fc0b29a58cc4113cea5cdc34 (patch) | |
tree | ee3f35af7318ef72f236a9b8884c73c229b6945a /sys/dev/isp/isp_freebsd.h | |
parent | 9dcaf49f6a97d3369812404353462fce77a0a74b (diff) | |
download | FreeBSD-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.h | 9 |
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 }; |