Scatter/Gather List DefinitionUsing the normal CCB operation codes of 00h and 01h (SCSI Initiator and SCSI Tar-get CCBs), the CCB itself contains a pointer to the first byte of a contiguous area ofdata of a specified length. The direction of transfer with respect to the data area andthe checking of the length of the data transfer to the data area are both managed bythe AHA-1740A/1742A/1744 according to the requirements of the particular modeand control bit set-up.Using the Scatter/Gather Operation Code of 02h or 04h, the CCB instead contains apointer to a list of data segments and an indication of the length of the list of datasegments. The data segment list contains pointers to the actual location in host mem-ory of the data segments to be transferred as well as a precise indication of the lengthof each data segment. Each data segment list entry contains a 3-byte pointer to the lo-cation of a data segment and 3-byte length indicator telling how long that particulardata segment shall be. The data segment list is arranged in the order in which datawill be gathered or distributed, the first pointer in the list being used first.A typical data segment list is shown in the following table. The data segment list de-scribes the distribution of 4096 bytes distributed in four separate locations within thememory. The beginning of the data segment list is indicated by the data segment listpointer. The length of the data segment list (24 bytes) will be contained in the datasegment list length field of the CCB.3 Bytes 3 Bytes(MSB) (LSB) (MSB) (LSB)Data Segment List Pointer Segment 0 L=1024 Data Segment 0 PointerSegment 1 L=2 Data Segment 1 PointerSegment 2 L=2046 Data Segment 2 PointerSegment 3 L=1024 Data Segment 3 PointerA data segment list can have from one to 17 segments. A list with zero segments or alist with more than 17 segments causes an invalid segment list error to be posted inthe Host Status field.The AHA-1740A/1742A/1744 has certain constraints in the data segment addressboundaries and lengths that are allowed. If these boundaries are violated, an invalidsegment list error will be posted in the Host Status field of the CCB. The simplestway to assure that these boundaries are not violated is to require all boundaries be-tween segments to be on even word boundaries. The first segment may begin on anyboundary and the last segment may end on any boundary. All segments but the firstand last should have even byte counts.adaptec AHA-1740A/1742A/17445-28