diff options
author | gibbs <gibbs@FreeBSD.org> | 1999-08-16 22:49:29 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1999-08-16 22:49:29 +0000 |
commit | a5b1de7a7c2c225722adf8711ed6149c913db3a0 (patch) | |
tree | 1aa80eeba59537fded3cbfb7a4cbd7046da924f3 /sys/dev/aic7xxx/aic7xxx.h | |
parent | 0720a2d2afd1fdeeec37c0ae82286407a8689a21 (diff) | |
download | FreeBSD-src-a5b1de7a7c2c225722adf8711ed6149c913db3a0.zip FreeBSD-src-a5b1de7a7c2c225722adf8711ed6149c913db3a0.tar.gz |
Add support for issuing immediate notify event ccbs for bus resets, bdr
messages, abort messages, and abort tag messages.
Fix a bug in how default transfer negotiations are handled if the
user had disabled initial bus resets.
Support multi-targetid on the aic7895C.
Diffstat (limited to 'sys/dev/aic7xxx/aic7xxx.h')
-rw-r--r-- | sys/dev/aic7xxx/aic7xxx.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.h b/sys/dev/aic7xxx/aic7xxx.h index c424366..a4a1cf5 100644 --- a/sys/dev/aic7xxx/aic7xxx.h +++ b/sys/dev/aic7xxx/aic7xxx.h @@ -34,7 +34,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: aic7xxx.h,v 1.9 1999/05/17 21:53:51 gibbs Exp $ + * $Id: aic7xxx.h,v 1.10 1999/05/22 22:04:10 gibbs Exp $ */ #ifndef _AIC7XXX_H_ @@ -126,8 +126,9 @@ typedef enum { AHC_AIC7890_FE = AHC_MORE_SRAM|AHC_CMD_CHAN|AHC_ULTRA2|AHC_QUEUE_REGS |AHC_SG_PRELOAD|AHC_MULTI_TID|AHC_HS_MAILBOX, AHC_AIC7895_FE = AHC_MORE_SRAM|AHC_CMD_CHAN|AHC_ULTRA, + AHC_AIC7895C_FE = AHC_MORE_SRAM|AHC_CMD_CHAN|AHC_ULTRA|AHC_MULTI_TID, AHC_AIC7896_FE = AHC_MORE_SRAM|AHC_CMD_CHAN|AHC_ULTRA2|AHC_QUEUE_REGS - |AHC_SG_PRELOAD|AHC_MULTI_TID|AHC_HS_MAILBOX, + |AHC_SG_PRELOAD|AHC_MULTI_TID|AHC_HS_MAILBOX } ahc_feature; typedef enum { @@ -260,12 +261,28 @@ struct target_cmd { }; /* + * Number of events we can buffer up if we run out + * of immediate notify ccbs. + */ +#define AHC_TMODE_EVENT_BUFFER_SIZE 8 +struct ahc_tmode_event { + u_int8_t initiator_id; + u_int8_t event_type; /* MSG type or EVENT_TYPE_BUS_RESET */ +#define EVENT_TYPE_BUS_RESET 0xFF + u_int8_t event_arg; +}; + +/* * Per lun target mode state including accept TIO CCB * and immediate notify CCB pools. */ struct tmode_lstate { + struct cam_path *path; struct ccb_hdr_slist accept_tios; struct ccb_hdr_slist immed_notifies; + struct ahc_tmode_event event_buffer[AHC_TMODE_EVENT_BUFFER_SIZE]; + u_int8_t event_r_idx; + u_int8_t event_w_idx; }; #define AHC_TRANS_CUR 0x01 /* Modify current neogtiation status */ @@ -542,6 +559,9 @@ struct ahc_softc { /* Initialization level of this data structure */ u_int init_level; + + u_int16_t user_discenable;/* Disconnection allowed */ + u_int16_t user_tagenable;/* Tagged Queuing allowed */ }; struct full_ahc_softc { |