FreeBSD kernel pms device code
satproto.h
Go to the documentation of this file.
1/*******************************************************************************
2*Copyright (c) 2014 PMC-Sierra, Inc. All rights reserved.
3*
4*Redistribution and use in source and binary forms, with or without modification, are permitted provided
5*that the following conditions are met:
6*1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
7*following disclaimer.
8*2. Redistributions in binary form must reproduce the above copyright notice,
9*this list of conditions and the following disclaimer in the documentation and/or other materials provided
10*with the distribution.
11*
12*THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
13*WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14*FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15*FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16*NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
17*BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18*LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
19*SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
20*
21* $FreeBSD$
22*
23********************************************************************************/
24/*******************************************************************************/
32#ifndef __SATPROTO_H__
33#define __SATPROTO_H__
34
35
36/*****************************************************************************
37*! \brief itdsatProcessAbnormalCompletion
38*
39* This routine is called to complete error case for SATA request previously
40* issued to the LL Layer in saSATAStart()
41*
42* \param agRoot: Handles for this instance of SAS/SATA hardware
43* \param agIORequest: Pointer to the LL I/O request context for this I/O.
44* \param agIOStatus: Status of completed I/O.
45* \param agSATAParm1: Additional info based on status.
46* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
47* length.
48* \param satIOContext: Pointer to satIOContext_t.
49*
50* \return: none
51*
52*****************************************************************************/
54 agsaRoot_t *agRoot,
55 agsaIORequest_t *agIORequest,
56 bit32 agIOStatus,
57 agsaFisHeader_t *agFirstDword,
58 bit32 agIOInfoLen,
59 agsaFrameHandle_t agFrameHandle,
60 satIOContext_t *satIOContext
61 );
63 agsaRoot_t *agRoot,
64 agsaIORequest_t *agIORequest,
65 bit32 agIOStatus,
66 agsaFisHeader_t *agFirstDword,
67 bit32 agIOInfoLen,
68 agsaFrameHandle_t agFrameHandle,
69 satIOContext_t *satIOContext
70 );
71
73 agsaRoot_t *agRoot,
74 agsaIORequest_t *agIORequest,
75 agsaPortContext_t *agPortContext,
76 agsaDevHandle_t *agDevHandle,
77 bit32 event,
78 satIOContext_t *ioContext
79 );
80
82 agsaRoot_t *agRoot,
83 agsaIORequest_t *agIORequest,
84 bit32 agIOStatus,
85 bit32 agIOInfoLen,
86 void *agParam,
87 bit32 agOtherInfo
88 );
89
90osGLOBAL void
92 agsaRoot_t *agRoot,
93 agsaIORequest_t *agIORequest,
94 bit32 agIOStatus,
95 bit32 agIOInfoLen,
96 void *agParam,
97 bit32 agOtherInfo
98 );
99
103 satIOContext_t *satIOContext
104 );
105/*****************************************************************************/
118/*****************************************************************************/
119
121 bit8 SnsKey,
122 bit32 SnsInfo,
123 bit16 SnsCode,
124 satIOContext_t *satIOContext);
125
126
127/*****************************************************************************/
140/*****************************************************************************/
141
143 bit8 SnsKey,
144 bit32 SnsInfo,
145 bit16 SnsCode,
146 satIOContext_t *satIOContext
147 );
148
149/*****************************************************************************/
166/*****************************************************************************/
171 tiScsiInitiatorRequest_t *tiScsiRequest,
172 satIOContext_t *satIOContext);
173
175 agsaRoot_t *agRoot,
176 agsaIORequest_t *agIORequest,
177 bit32 agIOStatus,
178 agsaFisHeader_t *agFirstDword,
179 bit32 agIOInfoLen,
180 void *agParam,
181 void *ioContext
182 );
183/*****************************************************************************/
200/*****************************************************************************/
205 tiScsiInitiatorRequest_t *tiScsiRequest,
206 satIOContext_t *satIOContext
207 );
208
210 agsaRoot_t *agRoot,
211 agsaIORequest_t *agIORequest,
212 bit32 agIOStatus,
213 agsaFisHeader_t *agFirstDword,
214 bit32 agIOInfoLen,
215 void *agParam,
216 void *ioContext
217 );
218
219/*****************************************************************************/
236/*****************************************************************************/
241 tiScsiInitiatorRequest_t *tiScsiRequest,
242 satIOContext_t *satIOContext
243 );
244
246 agsaRoot_t *agRoot,
247 agsaIORequest_t *agIORequest,
248 bit32 agIOStatus,
249 agsaFisHeader_t *agFirstDword,
250 bit32 agIOInfoLen,
251 void *agParam,
252 void *ioContext
253 );
254
255/*****************************************************************************/
272/*****************************************************************************/
277 tiScsiInitiatorRequest_t *tiScsiRequest,
278 satIOContext_t *satIOContext,
279 bit8 bTransferMode
280 );
282 agsaRoot_t *agRoot,
283 agsaIORequest_t *agIORequest,
284 bit32 agIOStatus,
285 agsaFisHeader_t *agFirstDword,
286 bit32 agIOInfoLen,
287 void *agParam,
288 void *ioContext
289 );
290
292 agsaRoot_t *agRoot,
293 agsaIORequest_t *agIORequest,
294 bit32 agIOStatus,
295 agsaFisHeader_t *agFirstDword,
296 bit32 agIOInfoLen,
297 void *agParam,
298 void *ioContext
299 );
300/*****************************************************************************/
317/*****************************************************************************/
322 tiScsiInitiatorRequest_t *tiScsiRequest,
323 satIOContext_t *satIOContext);
324
326 agsaRoot_t *agRoot,
327 agsaIORequest_t *agIORequest,
328 bit32 agIOStatus,
329 agsaFisHeader_t *agFirstDword,
330 bit32 agIOInfoLen,
331 void *agParam,
332 void *ioContext
333 );
334
335/*****************************************************************************/
352/*****************************************************************************/
357 tiScsiInitiatorRequest_t *tiScsiRequest,
358 satIOContext_t *satIOContext);
359
360/*****************************************************************************/
377/*****************************************************************************/
382 tiScsiInitiatorRequest_t *tiScsiRequest,
383 satIOContext_t *satIOContext);
384
385
386/*****************************************************************************/
403/*****************************************************************************/
408 tiScsiInitiatorRequest_t *tiScsiRequest,
409 satIOContext_t *satIOContext);
410/*****************************************************************************/
427/*****************************************************************************/
432 tiScsiInitiatorRequest_t *tiScsiRequest,
433 satIOContext_t *satIOContext);
434
435/*****************************************************************************/
452/*****************************************************************************/
457 tiScsiInitiatorRequest_t *tiScsiRequest,
458 satIOContext_t *satIOContext);
459
460/*****************************************************************************/
477/*****************************************************************************/
482 tiScsiInitiatorRequest_t *tiScsiRequest,
483 satIOContext_t *satIOContext);
484
485/*****************************************************************************/
502/*****************************************************************************/
507 tiScsiInitiatorRequest_t *tiScsiRequest,
508 satIOContext_t *satIOContext);
513 tiScsiInitiatorRequest_t *tiScsiRequest,
514 satIOContext_t *satIOContext);
515
516
517/*****************************************************************************/
534/*****************************************************************************/
539 tiScsiInitiatorRequest_t *tiScsiRequest,
540 satIOContext_t *satIOContext);
541
542
543/*****************************************************************************/
560/*****************************************************************************/
565 tiScsiInitiatorRequest_t *tiScsiRequest,
566 satIOContext_t *satIOContext);
567
568
569/*****************************************************************************/
586/*****************************************************************************/
591 tiScsiInitiatorRequest_t *tiScsiRequest,
592 satIOContext_t *satIOContext);
593
594/*****************************************************************************/
611/*****************************************************************************/
616 tiScsiInitiatorRequest_t *tiScsiRequest,
617 satIOContext_t *satIOContext);
618
619
624 tiScsiInitiatorRequest_t *tiScsiRequest,
625 satIOContext_t *satIOContext);
626
627/*****************************************************************************/
644/*****************************************************************************/
649 tiScsiInitiatorRequest_t *tiScsiRequest,
650 satIOContext_t *satIOContext);
651/*****************************************************************************/
669/*****************************************************************************/
674 tiScsiInitiatorRequest_t *tiScsiRequest,
675 satIOContext_t *satIOContext);
676
677/*****************************************************************************/
694/*****************************************************************************/
699 tiScsiInitiatorRequest_t *tiScsiRequest,
700 satIOContext_t *satIOContext);
701
702/*****************************************************************************/
719/*****************************************************************************/
724 tiScsiInitiatorRequest_t *tiScsiRequest,
725 satIOContext_t *satIOContext);
726
727/*****************************************************************************/
745/*****************************************************************************/
750 tiScsiInitiatorRequest_t *tiScsiRequest,
751 satIOContext_t *satIOContext);
752/*****************************************************************************/
770/*****************************************************************************/
775 tiScsiInitiatorRequest_t *tiScsiRequest,
776 satIOContext_t *satIOContext);
777
778/*****************************************************************************/
795/*****************************************************************************/
800 tiScsiInitiatorRequest_t *tiScsiRequest,
801 satIOContext_t *satIOContext);
802/*****************************************************************************/
820/*****************************************************************************/
825 tiScsiInitiatorRequest_t *tiScsiRequest,
826 satIOContext_t *satIOContext);
827
828/*****************************************************************************/
846/*****************************************************************************/
851 tiScsiInitiatorRequest_t *tiScsiRequest,
852 satIOContext_t *satIOContext);
857 tiScsiInitiatorRequest_t *tiScsiRequest,
858 satIOContext_t *satIOContext);
859
860/*****************************************************************************/
877/*****************************************************************************/
882 tiScsiInitiatorRequest_t *tiScsiRequest,
883 satIOContext_t *satIOContext);
884
889 tiScsiInitiatorRequest_t *tiScsiRequest,
890 satIOContext_t *satIOContext,
891 bit32 lba
892 );
897 tiScsiInitiatorRequest_t *tiScsiRequest,
898 satIOContext_t *satIOContext,
899 bit32 lba
900 );
905 tiScsiInitiatorRequest_t *tiScsiRequest,
906 satIOContext_t *satIOContext,
907 bit32 lba
908 );
909/*****************************************************************************/
926/*****************************************************************************/
931 tiScsiInitiatorRequest_t *tiScsiRequest,
932 satIOContext_t *satIOContext);
933
934/*****************************************************************************/
955/*****************************************************************************/
960 tiScsiInitiatorRequest_t *tiScsiRequest,
961 satIOContext_t *satIOContext,
962 bit32 payloadSize,
963 bit32 flag
964 );
965
966/*****************************************************************************/
983/*****************************************************************************/
988 tiScsiInitiatorRequest_t *tiScsiRequest,
989 satIOContext_t *satIOContext);
990
991/*****************************************************************************/
1008/*****************************************************************************/
1013 tiScsiInitiatorRequest_t *tiScsiRequest,
1014 satIOContext_t *satIOContext);
1015
1016/*****************************************************************************/
1033/*****************************************************************************/
1038 tiScsiInitiatorRequest_t *tiScsiRequest,
1039 satIOContext_t *satIOContext);
1040
1041/*****************************************************************************/
1058/*****************************************************************************/
1063 tiScsiInitiatorRequest_t *tiScsiRequest,
1064 satIOContext_t *satIOContext);
1065
1066
1067/*****************************************************************************/
1084/*****************************************************************************/
1089 tiScsiInitiatorRequest_t *tiScsiRequest,
1090 satIOContext_t *satIOContext);
1091
1092/*****************************************************************************/
1109/*****************************************************************************/
1114 tiScsiInitiatorRequest_t *tiScsiRequest,
1115 satIOContext_t *satIOContext);
1120 tiScsiInitiatorRequest_t *tiScsiRequest,
1121 satIOContext_t *satIOContext);
1122
1123/*****************************************************************************/
1140/*****************************************************************************/
1145 tiScsiInitiatorRequest_t *tiScsiRequest,
1146 satIOContext_t *satIOContext);
1147
1148/*****************************************************************************/
1165/*****************************************************************************/
1170 tiScsiInitiatorRequest_t *tiScsiRequest,
1171 satIOContext_t *satIOContext);
1172
1173/*****************************************************************************/
1190/*****************************************************************************/
1195 tiScsiInitiatorRequest_t *tiScsiRequest,
1196 satIOContext_t *satIOContext);
1197
1198/*****************************************************************************/
1215/*****************************************************************************/
1220 tiScsiInitiatorRequest_t *tiScsiRequest,
1221 satIOContext_t *satIOContext);
1222
1223#ifdef REMOVED
1224/*****************************************************************************/
1242/*****************************************************************************/
1243GLOBAL bit32 satWriteAndVerify10_1(
1247 tiScsiInitiatorRequest_t *tiScsiRequest,
1248 satIOContext_t *satIOContext);
1249#endif
1250
1251/*****************************************************************************/
1268/*****************************************************************************/
1273 tiScsiInitiatorRequest_t *tiScsiRequest,
1274 satIOContext_t *satIOContext);
1275
1280 tiScsiInitiatorRequest_t *tiScsiRequest,
1281 satIOContext_t *satIOContext);
1282
1287 tiScsiInitiatorRequest_t *tiScsiRequest,
1288 satIOContext_t *satIOContext);
1289
1294 tiScsiInitiatorRequest_t *tiScsiRequest,
1295 satIOContext_t *satIOContext);
1296
1301 tiScsiInitiatorRequest_t *tiScsiRequest,
1302 satIOContext_t *satIOContext);
1303
1304
1305/*****************************************************************************/
1322/*****************************************************************************/
1327 tiScsiInitiatorRequest_t *tiScsiRequest,
1328 satIOContext_t *satIOContext);
1329
1334 tiScsiInitiatorRequest_t *tiScsiRequest,
1335 satIOContext_t *satIOContext);
1336
1337/*****************************************************************************/
1354/*****************************************************************************/
1359 tiScsiInitiatorRequest_t *tiScsiRequest,
1360 satIOContext_t *satIOContext);
1361
1362/*****************************************************************************/
1379/*****************************************************************************/
1384 tiScsiInitiatorRequest_t *tiScsiRequest,
1385 satIOContext_t *satIOContext);
1386
1387
1388/*****************************************************************************/
1405/*****************************************************************************/
1410 tiScsiInitiatorRequest_t *tiScsiRequest,
1411 satIOContext_t *satIOContext);
1412
1413
1414/*****************************************************************************/
1431/*****************************************************************************/
1436 tiScsiInitiatorRequest_t *tiScsiRequest,
1437 satIOContext_t *satIOContext);
1438
1443 tiScsiInitiatorRequest_t *tiScsiRequest,
1444 satIOContext_t *satIOContext);
1445
1446/*****************************************************************************/
1463/*****************************************************************************/
1468 tiScsiInitiatorRequest_t *tiScsiRequest,
1469 satIOContext_t *satIOContext);
1470/*****************************************************************************/
1487/*****************************************************************************/
1492 tiScsiInitiatorRequest_t *tiScsiRequest,
1493 satIOContext_t *satIOContext);
1494/*****************************************************************************/
1512/*****************************************************************************/
1517 tiScsiInitiatorRequest_t *tiScsiRequest,
1518 satIOContext_t *satIOContext);
1519
1520/*****************************************************************************/
1530/*****************************************************************************/
1532 bit8 *pInquiry,
1533 agsaSATAIdentifyData_t *pSATAIdData,
1534 tiIniScsiCmnd_t *scsiCmnd
1535 );
1536
1537
1538/*****************************************************************************/
1548/*****************************************************************************/
1550 bit8 *pInquiry,
1551 agsaSATAIdentifyData_t *pSATAIdData);
1552
1553
1554/*****************************************************************************/
1565/*****************************************************************************/
1567 bit8 *pInquiry,
1568 agsaSATAIdentifyData_t *pSATAIdData,
1569 satDeviceData_t *pSatDevData);
1570
1571/*****************************************************************************/
1582/*****************************************************************************/
1584 bit8 *pInquiry,
1585 agsaSATAIdentifyData_t *pSATAIdData,
1586 satDeviceData_t *pSatDevData);
1587
1588/*****************************************************************************/
1598/*****************************************************************************/
1600 bit8 *pInquiry,
1601 agsaSATAIdentifyData_t *pSATAIdData);
1602
1603
1604/*****************************************************************************
1605 *! \brief sataLLIOStart
1606 *
1607 * This routine is called to initiate a new SATA request to LL layer.
1608 * This function implements/encapsulates HW and LL API dependency.
1609 *
1610 * \param tiRoot: Pointer to TISA initiator driver/port instance.
1611 * \param tiIORequest: Pointer to TISA I/O request context for this I/O.
1612 * \param tiDeviceHandle: Pointer to TISA device handle for this I/O.
1613 * \param tiScsiRequest: Pointer to TISA SCSI I/O request and SGL list.
1614 * \param satIOContext_t: Pointer to the SAT IO Context
1615 *
1616 * \return:
1617 *
1618 * tiSuccess: I/O request successfully initiated.
1619 * tiBusy: No resources available, try again later.
1620 * tiIONoDevice: Invalid device handle.
1621 * tiError: Other errors that prevent the I/O request to be started.
1622 *
1623 *
1624 *****************************************************************************/
1625
1630 tiScsiInitiatorRequest_t *tiScsiRequest,
1631 satIOContext_t *satIOContext
1632 );
1633
1634/*****************************************************************************
1635*! \brief itdsataIOPrepareSGL
1636*
1637* This function is called to prepare and translate the TISA SGL information
1638* to the SAS/SATA LL layer specific SGL.
1639*
1640* \param tiRoot: Pointer to initiator driver/port instance.
1641* \param IORequestBody: TD layer request body for the I/O.
1642* \param tiSgl1: First TISA SGL info.
1643* \param sglVirtualAddr: The virtual address of the first element in
1644* tiSgl1 when tiSgl1 is used with the type tiSglList.
1645*
1646* \return:
1647*
1648* tiSuccess: SGL initialized successfully.
1649* tiError: Failed to initialize SGL.
1650*
1651*
1652*****************************************************************************/
1655 tdIORequestBody_t *tdIORequestBody,
1656 tiSgl_t *tiSgl1,
1657 void *sglVirtualAddr
1658 );
1659
1660/*****************************************************************************
1661*! \brief satNonChainedDataIOCB
1662*
1663* This routine is a callback function called from ossaSATACompleted().
1664* This CB routine deals with normal non-chained data I/O SATA request.
1665*
1666* \param agRoot: Handles for this instance of SAS/SATA hardware
1667* \param agIORequest: Pointer to the LL I/O request context for this I/O.
1668* \param agIOStatus: Status of completed I/O.
1669* \param agSATAParm1: Additional info based on status.
1670* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
1671* length.
1672* \param ioContext: Pointer to satIOContext_t.
1673*
1674* \return: none
1675*
1676*****************************************************************************/
1677
1679 agsaRoot_t *agRoot,
1680 agsaIORequest_t *agIORequest,
1681 bit32 agIOStatus,
1682 agsaFisHeader_t *agFirstDword,
1683 bit32 agIOInfoLen,
1684 agsaFrameHandle_t agFrameHandle,
1685 void *ioContext
1686 );
1688 agsaRoot_t *agRoot,
1689 agsaIORequest_t *agIORequest,
1690 bit32 agIOStatus,
1691 agsaFisHeader_t *agFirstDword,
1692 bit32 agIOInfoLen,
1693 agsaFrameHandle_t agFrameHandle,
1694 void *ioContext
1695 );
1696
1698 agsaRoot_t *agRoot,
1699 agsaIORequest_t *agIORequest,
1700 bit32 agIOStatus,
1701 agsaFisHeader_t *agFirstDword,
1702 bit32 agIOInfoLen,
1703 agsaFrameHandle_t agFrameHandle,
1704 void *ioContext
1705 );
1706
1708 agsaRoot_t *agRoot,
1709 agsaIORequest_t *agIORequest,
1710 bit32 agIOStatus,
1711 agsaFisHeader_t *agFirstDword,
1712 bit32 agIOInfoLen,
1713 agsaFrameHandle_t agFrameHandle,
1714 void *ioContext
1715 );
1716
1717/*****************************************************************************
1718*! \brief satNonDataIOCB
1719*
1720* This routine is a callback function called from ossaSATACompleted().
1721* This CB routine deals with non-data I/O SATA request.
1722*
1723* \param agRoot: Handles for this instance of SAS/SATA hardware
1724* \param agIORequest: Pointer to the LL I/O request context for this I/O.
1725* \param agIOStatus: Status of completed I/O.
1726* \param agSATAParm1: Additional info based on status.
1727* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
1728* length.
1729* \param ioContext: Pointer to satIOContext_t.
1730*
1731* \return: none
1732*
1733*****************************************************************************/
1735 agsaRoot_t *agRoot,
1736 agsaIORequest_t *agIORequest,
1737 bit32 agIOStatus,
1738 agsaFisHeader_t *agFirstDword,
1739 bit32 agIOInfoLen,
1740 agsaFrameHandle_t agFrameHandle,
1741 void *ioContext
1742 );
1743
1744/*****************************************************************************
1745*! \brief satSMARTEnableCB
1746*
1747* This routine is a callback function for satSMARTEnable()
1748*
1749* \param agRoot: Handles for this instance of SAS/SATA hardware
1750* \param agIORequest: Pointer to the LL I/O request context for this I/O.
1751* \param agIOStatus: Status of completed I/O.
1752* \param agSATAParm1: Additional info based on status.
1753* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
1754* length.
1755* \param ioContext: Pointer to satIOContext_t.
1756*
1757* \return: none
1758*
1759*****************************************************************************/
1761 agsaRoot_t *agRoot,
1762 agsaIORequest_t *agIORequest,
1763 bit32 agIOStatus,
1764 agsaFisHeader_t *agFirstDword,
1765 bit32 agIOInfoLen,
1766 agsaFrameHandle_t agFrameHandle,
1767 void *ioContext
1768 ) ;
1769
1770/*****************************************************************************
1771*! \brief satLogSenseCB
1772*
1773* This routine is a callback function for satLogSense()
1774*
1775* \param agRoot: Handles for this instance of SAS/SATA hardware
1776* \param agIORequest: Pointer to the LL I/O request context for this I/O.
1777* \param agIOStatus: Status of completed I/O.
1778* \param agSATAParm1: Additional info based on status.
1779* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
1780* length.
1781* \param ioContext: Pointer to satIOContext_t.
1782*
1783* \return: none
1784*
1785*****************************************************************************/
1787 agsaRoot_t *agRoot,
1788 agsaIORequest_t *agIORequest,
1789 bit32 agIOStatus,
1790 agsaFisHeader_t *agFirstDword,
1791 bit32 agIOInfoLen,
1792 agsaFrameHandle_t agFrameHandle,
1793 void *ioCotext
1794 );
1796 agsaRoot_t *agRoot,
1797 agsaIORequest_t *agIORequest,
1798 bit32 agIOStatus,
1799 agsaFisHeader_t *agFirstDword,
1800 bit32 agIOInfoLen,
1801 agsaFrameHandle_t agFrameHandle,
1802 void *ioContext
1803 );
1805 agsaRoot_t *agRoot,
1806 agsaIORequest_t *agIORequest,
1807 bit32 agIOStatus,
1808 agsaFisHeader_t *agFirstDword,
1809 bit32 agIOInfoLen,
1810 agsaFrameHandle_t agFrameHandle,
1811 void *ioContext
1812 );
1813#ifdef REMOVED
1814void satWriteAndVerify10CB(
1815 agsaRoot_t *agRoot,
1816 agsaIORequest_t *agIORequest,
1817 bit32 agIOStatus,
1818 agsaFisHeader_t *agFirstDword,
1819 bit32 agIOInfoLen,
1820 agsaFrameHandle_t agFrameHandle,
1821 void *ioContext
1822 );
1823#endif
1824
1825/*****************************************************************************
1826*! \brief satReadLogExtCB
1827*
1828* This routine is a callback function called from ossaSATACompleted().
1829* This CB routine deals READ LOG EXT completion.
1830*
1831* \param agRoot: Handles for this instance of SAS/SATA hardware
1832* \param agIORequest: Pointer to the LL I/O request context for this I/O.
1833* \param agIOStatus: Status of completed I/O.
1834* \param agSATAParm1: Additional info based on status.
1835* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
1836* length.
1837* \param ioContext: Pointer to satIOContext_t.
1838*
1839* \return: none
1840*
1841*****************************************************************************/
1843 agsaRoot_t *agRoot,
1844 agsaIORequest_t *agIORequest,
1845 bit32 agIOStatus,
1846 agsaFisHeader_t *agFirstDword,
1847 bit32 agIOInfoLen,
1848 agsaFrameHandle_t agFrameHandle,
1849 void *ioContext
1850 );
1852 agsaRoot_t *agRoot,
1853 agsaIORequest_t *agIORequest,
1854 bit32 agIOStatus,
1855 agsaFisHeader_t *agFirstDword,
1856 bit32 agIOInfoLen,
1857 agsaFrameHandle_t agFrameHandle,
1858 void *ioContext
1859 );
1861 agsaRoot_t *agRoot,
1862 agsaIORequest_t *agIORequest,
1863 bit32 agIOStatus,
1864 agsaFisHeader_t *agFirstDword,
1865 bit32 agIOInfoLen,
1866 agsaFrameHandle_t agFrameHandle,
1867 void *ioContext
1868 );
1869/*****************************************************************************
1870*! \brief satSendDiagnosticCB
1871*
1872* This routine is a callback function called from ossaSATACompleted().
1873* This CB routine deals with Send Diagnostic completion.
1874*
1875* \param agRoot: Handles for this instance of SAS/SATA hardware
1876* \param agIORequest: Pointer to the LL I/O request context for this I/O.
1877* \param agIOStatus: Status of completed I/O.
1878* \param agSATAParm1: Additional info based on status.
1879* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
1880* length.
1881* \param ioContext: Pointer to satIOContext_t.
1882*
1883* \return: none
1884*
1885*****************************************************************************/
1887 agsaRoot_t *agRoot,
1888 agsaIORequest_t *agIORequest,
1889 bit32 agIOStatus,
1890 agsaFisHeader_t *agFirstDword,
1891 bit32 agIOInfoLen,
1892 agsaFrameHandle_t agFrameHandle,
1893 void *ioContext
1894 );
1895/*****************************************************************************
1896*! \brief satRequestSenseCB
1897*
1898* This routine is a callback function called from ossaSATACompleted().
1899* This CB routine deals with Request Sense completion.
1900*
1901* \param agRoot: Handles for this instance of SAS/SATA hardware
1902* \param agIORequest: Pointer to the LL I/O request context for this I/O.
1903* \param agIOStatus: Status of completed I/O.
1904* \param agSATAParm1: Additional info based on status.
1905* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
1906* length.
1907* \param ioContext: Pointer to satIOContext_t.
1908*
1909* \return: none
1910*
1911*****************************************************************************/
1913 agsaRoot_t *agRoot,
1914 agsaIORequest_t *agIORequest,
1915 bit32 agIOStatus,
1916 agsaFisHeader_t *agFirstDword,
1917 bit32 agIOInfoLen,
1918 agsaFrameHandle_t agFrameHandle,
1919 void *ioContext
1920 );
1921/*****************************************************************************
1922*! \brief satStartStopUnitCB
1923*
1924* This routine is a callback function called from ossaSATACompleted().
1925* This CB routine deals with Send Diagnostic completion.
1926*
1927* \param agRoot: Handles for this instance of SAS/SATA hardware
1928* \param agIORequest: Pointer to the LL I/O request context for this I/O.
1929* \param agIOStatus: Status of completed I/O.
1930* \param agSATAParm1: Additional info based on status.
1931* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
1932* length.
1933* \param ioContext: Pointer to satIOContext_t.
1934*
1935* \return: none
1936*
1937*****************************************************************************/
1939 agsaRoot_t *agRoot,
1940 agsaIORequest_t *agIORequest,
1941 bit32 agIOStatus,
1942 agsaFisHeader_t *agFirstDword,
1943 bit32 agIOInfoLen,
1944 agsaFrameHandle_t agFrameHandle,
1945 void *ioContext
1946 );
1947/*****************************************************************************
1948*! \brief satVerify10CB
1949*
1950* This routine is a callback function called from ossaSATACompleted().
1951* This CB routine deals with Verify(10) completion.
1952*
1953* \param agRoot: Handles for this instance of SAS/SATA hardware
1954* \param agIORequest: Pointer to the LL I/O request context for this I/O.
1955* \param agIOStatus: Status of completed I/O.
1956* \param agSATAParm1: Additional info based on status.
1957* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
1958* length.
1959* \param ioContext: Pointer to satIOContext_t.
1960*
1961* \return: none
1962*
1963*****************************************************************************/
1965 agsaRoot_t *agRoot,
1966 agsaIORequest_t *agIORequest,
1967 bit32 agIOStatus,
1968 agsaFisHeader_t *agFirstDword,
1969 bit32 agIOInfoLen,
1970 agsaFrameHandle_t agFrameHandle,
1971 void *ioContex
1972 );
1973
1975 agsaRoot_t *agRoot,
1976 agsaIORequest_t *agIORequest,
1977 bit32 agIOStatus,
1978 agsaFisHeader_t *agFirstDword,
1979 bit32 agIOInfoLen,
1980 agsaFrameHandle_t agFrameHandle,
1981 void *ioContext
1982 );
1983
1985 agsaRoot_t *agRoot,
1986 agsaIORequest_t *agIORequest,
1987 bit32 agIOStatus,
1988 agsaFisHeader_t *agFirstDword,
1989 bit32 agIOInfoLen,
1990 agsaFrameHandle_t agFrameHandle,
1991 void *ioContext
1992 );
1993
1994/*****************************************************************************
1995 *! \brief satTmResetLUN
1996 *
1997 * This routine is called to initiate a TM RESET LUN request to SATL.
1998 * This routine is independent of HW/LL API.
1999 *
2000 * \param tiRoot: Pointer to TISA initiator driver/port instance.
2001 * \param tiDeviceHandle: Pointer to TISA device handle for this I/O.
2002 * \param lun: Pointer to LUN.
2003 * \param currentTaskTag: Pointer to tag/context for this TM request.
2004 *
2005 * \return:
2006 *
2007 * \e tiSuccess: I/O request successfully initiated.
2008 * \e tiBusy: No resources available, try again later.
2009 * \e tiIONoDevice: Invalid device handle.
2010 * \e tiError: Other errors that prevent the I/O request to be started.
2011 *
2012 *
2013 *****************************************************************************/
2018 tiScsiInitiatorRequest_t *tiScsiRequest,
2019 satIOContext_t *satIOContext,
2020 tiLUN_t *lun);
2021
2026 tiScsiInitiatorRequest_t *tiScsiRequest,
2027 satIOContext_t *satIOContext);
2028
2033 tiScsiInitiatorRequest_t *tiScsiRequest,
2034 satIOContext_t *satIOContext);
2035
2036/*****************************************************************************
2037 *! \brief satTmAbortTask
2038 *
2039 * This routine is called to initiate a TM ABORT TASK request to SATL.
2040 * This routine is independent of HW/LL API.
2041 *
2042 * \param tiRoot: Pointer to TISA initiator driver/port instance.
2043 * \param tiDeviceHandle: Pointer to TISA device handle for this I/O.
2044 * \param taskTag: Pointer to the associated task where the TM
2045 * command is to be applied.
2046 * \param currentTaskTag: Pointer to tag/context for this TM request.
2047 *
2048 * \return:
2049 *
2050 * \e tiSuccess: I/O request successfully initiated.
2051 * \e tiBusy: No resources available, try again later.
2052 * \e tiIONoDevice: Invalid device handle.
2053 * \e tiError: Other errors that prevent the I/O request to be started.
2054 *
2055 *
2056 *****************************************************************************/
2061 tiScsiInitiatorRequest_t *tiScsiRequest,
2062 satIOContext_t *satIOContext,
2063 tiIORequest_t *taskTag);
2064
2065/*****************************************************************************
2066 *! \brief osSatResetCB
2067 *
2068 * This routine is called to notify the completion of SATA device reset
2069 * which was initiated previously through the call to sataLLReset().
2070 * This routine is independent of HW/LL API.
2071 *
2072 * \param tiRoot: Pointer to TISA initiator driver/port instance.
2073 * \param tiDeviceHandle: Pointer to TISA device handle for this I/O.
2074 * \param resetStatus: Reset status either tiSuccess or tiError.
2075 * \param respFis: Pointer to the Register Device-To-Host FIS
2076 * received from the device.
2077 *
2078 * \return: None
2079 *
2080 *****************************************************************************/
2081
2085 bit32 resetStatus,
2086 void *respFis);
2087
2088osGLOBAL void
2090 agsaRoot_t *agRoot,
2091 agsaDevHandle_t *agDevHandle,
2092 bit32 resetStatus,
2093 void *resetparm);
2094
2095/*****************************************************************************
2096 *! \brief osSatIOCompleted
2097 *
2098 * This routine is a callback for SATA completion that required FIS status
2099 * translation to SCSI status.
2100 *
2101 * \param tiRoot: Pointer to TISA initiator driver/port instance.
2102 * \param tiIORequest: Pointer to TISA I/O request context for this I/O.
2103 * \param respFis: Pointer to status FIS to read.
2104 * \param respFisLen: Length of response FIS to read.
2105 * \param satIOContext: Pointer to SAT context.
2106 * \param interruptContext: Interrupt context
2107 *
2108 * \return: None
2109 *
2110 *****************************************************************************/
2114 agsaFisHeader_t *agFirstDword,
2115 bit32 respFisLen,
2116 agsaFrameHandle_t agFrameHandle,
2117 satIOContext_t *satIOContext,
2118 bit32 interruptContext);
2119
2120
2121/*****************************************************************************
2122*! \brief tdssAddSataToSharedcontext
2123*
2124* Purpose: This function adds a discovered SATA device to a device list of
2125* a port context
2126*
2127* \param tdsaPortContext Pointer to a port context
2128* \param tdsaDeviceData Pointer to a device data
2129* \param tsddPortContext_Instance Pointer to the target port context
2130* \param agRoot Pointer to the root data structure of
2131* TD and Lower layer
2132* \param agDevHandle Pointer to a device handle
2133* \param agSATADeviceInfo Pointer to SATA device info structure
2134*
2135* \Return: none
2136*
2137*****************************************************************************/
2138osGLOBAL void
2140 tdsaPortContext_t *tdsaPortContext_Ins,
2141 tdsaDeviceData_t *tdsaDeviceData_ins,
2142 agsaRoot_t *agRoot
2143 );
2144
2145/*****************************************************************************/
2160/*****************************************************************************/
2161
2165 satIOContext_t *satIOContext,
2166 scsiRspSense_t *pSense,
2167 bit8 ataStatus,
2168 bit8 ataError,
2169 bit32 interruptContext );
2170
2171/*****************************************************************************/
2187/*****************************************************************************/
2191 satDeviceData_t *satDevData,
2192 bit32 dmaAllocLength,
2193 satInternalIo_t *satIntIo);
2194
2195/*****************************************************************************/
2212/*****************************************************************************/
2217 tiScsiInitiatorRequest_t *tiScsiRequest,
2218 satIOContext_t *satIOContext);
2219
2220
2221/*****************************************************************************/
2238/*****************************************************************************/
2243 tiScsiInitiatorRequest_t *tiScsiRequest,
2244 satIOContext_t *satIOContext);
2245
2246/*****************************************************************************
2247*! \brief satReadMediaSerialNumberCB
2248*
2249* This routine is a callback function called from ossaSATACompleted().
2250* This CB routine deals with Read Media Serial Number completion.
2251*
2252* \param agRoot: Handles for this instance of SAS/SATA hardware
2253* \param agIORequest: Pointer to the LL I/O request context for this I/O.
2254* \param agIOStatus: Status of completed I/O.
2255* \param agSATAParm1: Additional info based on status.
2256* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
2257* length.
2258* \param ioContext: Pointer to satIOContext_t.
2259*
2260* \return: none
2261*
2262*****************************************************************************/
2264 agsaRoot_t *agRoot,
2265 agsaIORequest_t *agIORequest,
2266 bit32 agIOStatus,
2267 agsaFisHeader_t *agFirstDword,
2268 bit32 agIOInfoLen,
2269 agsaFrameHandle_t agFrameHandle,
2270 void *ioContext
2271 );
2272
2273/*****************************************************************************/
2290/*****************************************************************************/
2295 tiScsiInitiatorRequest_t *tiScsiRequest,
2296 satIOContext_t *satIOContext);
2297
2298/*****************************************************************************
2299*! \brief satReadBufferCB
2300*
2301* This routine is a callback function called from ossaSATACompleted().
2302* This CB routine deals with Read Buffer.
2303*
2304* \param agRoot: Handles for this instance of SAS/SATA hardware
2305* \param agIORequest: Pointer to the LL I/O request context for this I/O.
2306* \param agIOStatus: Status of completed I/O.
2307* \param agSATAParm1: Additional info based on status.
2308* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
2309* length.
2310* \param ioContext: Pointer to satIOContext_t.
2311*
2312* \return: none
2313*
2314*****************************************************************************/
2316 agsaRoot_t *agRoot,
2317 agsaIORequest_t *agIORequest,
2318 bit32 agIOStatus,
2319 agsaFisHeader_t *agFirstDword,
2320 bit32 agIOInfoLen,
2321 agsaFrameHandle_t agFrameHandle,
2322 void *ioContext
2323 );
2324
2325/*****************************************************************************/
2342/*****************************************************************************/
2347 tiScsiInitiatorRequest_t *tiScsiRequest,
2348 satIOContext_t *satIOContext);
2349
2350/*****************************************************************************
2351*! \brief satWriteBufferCB
2352*
2353* This routine is a callback function called from ossaSATACompleted().
2354* This CB routine deals with Write Buffer.
2355*
2356* \param agRoot: Handles for this instance of SAS/SATA hardware
2357* \param agIORequest: Pointer to the LL I/O request context for this I/O.
2358* \param agIOStatus: Status of completed I/O.
2359* \param agSATAParm1: Additional info based on status.
2360* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
2361* length.
2362* \param ioContext: Pointer to satIOContext_t.
2363*
2364* \return: none
2365*
2366*****************************************************************************/
2368 agsaRoot_t *agRoot,
2369 agsaIORequest_t *agIORequest,
2370 bit32 agIOStatus,
2371 agsaFisHeader_t *agFirstDword,
2372 bit32 agIOInfoLen,
2373 agsaFrameHandle_t agFrameHandle,
2374 void *ioContext
2375 );
2376
2377/*****************************************************************************/
2394/*****************************************************************************/
2399 tiScsiInitiatorRequest_t *tiScsiRequest,
2400 satIOContext_t *satIOContext);
2401
2402/*****************************************************************************
2403*! \brief satReassignBlocksCB
2404*
2405* This routine is a callback function called from ossaSATACompleted().
2406* This CB routine deals with Reassign Blocks.
2407*
2408* \param agRoot: Handles for this instance of SAS/SATA hardware
2409* \param agIORequest: Pointer to the LL I/O request context for this I/O.
2410* \param agIOStatus: Status of completed I/O.
2411* \param agSATAParm1: Additional info based on status.
2412* \param agIOInfoLen: Length in bytes of overrun/underrun residual or FIS
2413* length.
2414* \param ioContext: Pointer to satIOContext_t.
2415*
2416* \return: none
2417*
2418*****************************************************************************/
2420 agsaRoot_t *agRoot,
2421 agsaIORequest_t *agIORequest,
2422 bit32 agIOStatus,
2423 agsaFisHeader_t *agFirstDword,
2424 bit32 agIOInfoLen,
2425 agsaFrameHandle_t agFrameHandle,
2426 void *ioContext
2427 );
2428
2429/*****************************************************************************/
2447/*****************************************************************************/
2452 tiScsiInitiatorRequest_t *tiScsiRequest,
2453 satIOContext_t *satIOContext,
2454 satIOContext_t *satOrgIOContext);
2455
2456/*****************************************************************************/
2475/*****************************************************************************/
2480 tiScsiInitiatorRequest_t *tiScsiRequest,
2481 satIOContext_t *satIOContext,
2482 bit8 *LBA
2483 );
2484
2485/*****************************************************************************/
2500/*****************************************************************************/
2502 satInternalIo_t *satNewIntIo,
2503 tiIORequest_t *tiOrgIORequest,
2504 satDeviceData_t *satDevData,
2505 tiIniScsiCmnd_t *scsiCmnd,
2506 satIOContext_t *satOrgIOContext
2507 );
2508
2509/*****************************************************************************
2510 *! \brief sataLLIOAbort
2511 *
2512 * This routine is called to initiate an I/O abort to LL layer.
2513 * This function implements/encapsulates HW and LL API dependency.
2514 *
2515 * \param tiRoot: Pointer to TISA initiator driver/port instance.
2516 * \param taskTag: Pointer to TISA I/O context to be aborted.
2517 *
2518 * \return:
2519 *
2520 * \e tiSuccess: Abort request was successfully initiated.
2521 * \e tiBusy: No resources available, try again later.
2522 * \e tiError: Other errors that prevent the abort request from being
2523 * started..
2524 *
2525 *
2526 *****************************************************************************/
2527
2530 tiIORequest_t *taskTag );
2531
2532
2533
2535 agsaRoot_t *agRoot,
2536 agsaIORequest_t *agIORequest,
2537 bit32 agIOStatus,
2538 agsaFisHeader_t *agFirstDword,
2539 bit32 agIOInfoLen,
2540 agsaFrameHandle_t agFrameHandle,
2541 void *ioContext
2542 );
2543
2548 tiScsiInitiatorRequest_t *tiScsiRequest,
2549 satIOContext_t *satIOContext
2550 );
2551
2556 tiScsiInitiatorRequest_t *tiScsiRequest,
2557 satIOContext_t *satIOContext);
2558
2559
2564 tiScsiInitiatorRequest_t *tiScsiRequest,
2565 satIOContext_t *satIOContext
2566 );
2567
2569 satDeviceData_t *satDevData,
2570 agsaSATAIdentifyData_t *SATAIdData
2571 );
2572
2577 tiScsiInitiatorRequest_t *tiScsiRequest,
2578 satIOContext_t *satIOContext
2579 );
2580
2585 tiScsiInitiatorRequest_t *tiScsiRequest,
2586 satIOContext_t *satIOContext
2587 );
2588
2590 agsaRoot_t *agRoot,
2591 agsaIORequest_t *agIORequest,
2592 bit32 agIOStatus,
2593 agsaFisHeader_t *agFirstDword,
2594 bit32 agIOInfoLen,
2595 agsaFrameHandle_t agFrameHandle,
2596 void *ioContext
2597 );
2598
2600 agsaRoot_t *agRoot,
2601 tdsaDeviceData_t *oneDeviceData,
2602 satIOContext_t *satIOContext,
2603 tdIORequestBody_t *tdIORequestBody
2604 );
2605
2607 agsaRoot_t *agRoot,
2608 tdsaDeviceData_t *oneDeviceData,
2609 satIOContext_t *satIOContext,
2610 tdIORequestBody_t *tdIORequestBody
2611 );
2612
2617 tiScsiInitiatorRequest_t *tiScsiRequest,
2618 satIOContext_t *satIOContext
2619 );
2620
2625 tiScsiInitiatorRequest_t *tiScsiRequest,
2626 satIOContext_t *satIOContext
2627 );
2628
2630 agsaRoot_t *agRoot,
2631 agsaIORequest_t *agIORequest,
2632 bit32 agIOStatus,
2633 agsaFisHeader_t *agFirstDword,
2634 bit32 agIOInfoLen,
2635 agsaFrameHandle_t agFrameHandle,
2636 void *ioContext
2637 );
2638
2639
2640/*
2641 utility functions
2642 */
2643
2651 bit32 b);
2655
2656/*****************************************************************************
2657*! \brief
2658* Purpose: bitwise set
2659*
2660* Parameters:
2661* data - input output buffer
2662* index - bit to set
2663*
2664* Return:
2665* none
2666*
2667*****************************************************************************/
2668GLOBAL void
2670
2671/*****************************************************************************
2672*! \brief
2673* Purpose: bitwise clear
2674*
2675* Parameters:
2676* data - input output buffer
2677* index - bit to clear
2678*
2679* Return:
2680* none
2681*
2682*****************************************************************************/
2683GLOBAL void
2685
2686/*****************************************************************************
2687*! \brief
2688* Purpose: bitwise test
2689*
2690* Parameters:
2691* data - input output buffer
2692* index - bit to test
2693*
2694* Return:
2695* 0 - not set
2696* 1 - set
2697*
2698*****************************************************************************/
2701
2702/******************************************************************************/
2712/*******************************************************************************/
2715 satDeviceData_t *pSatDevData,
2716 bit8 *pTag
2717 );
2718
2719/******************************************************************************/
2728/*******************************************************************************/
2731 satDeviceData_t *pSatDevData,
2732 bit8 tag
2733 );
2734
2735GLOBAL void
2738 tdsaContext_t *tdsaAllShared,
2739 satIOContext_t *satIOContext
2740 );
2741
2746 tiScsiInitiatorRequest_t *tiScsiRequest,
2747 satIOContext_t *satIOContext
2748 );
2749
2754 tiScsiInitiatorRequest_t *tiScsiRequest,
2755 satIOContext_t *satIOContext
2756 );
2757
2759 agsaRoot_t *agRoot,
2760 agsaIORequest_t *agIORequest,
2761 bit32 agIOStatus,
2762 agsaFisHeader_t *agFirstDword,
2763 bit32 agIOInfoLen,
2764 agsaFrameHandle_t agFrameHandle,
2765 void *ioContext
2766 );
2767
2771 bit32 task,
2772 tiLUN_t *lun,
2773 tiIORequest_t *taskTag,
2774 tiIORequest_t *currentTaskTag,
2775 bit32 NotifyOS
2776 );
2777
2782 tiScsiInitiatorRequest_t *tiScsiRequest,
2783 satIOContext_t *satIOContext
2784 );
2785
2790 tiScsiInitiatorRequest_t *tiScsiRequest,
2791 satIOContext_t *satIOContext
2792 );
2793
2794
2796 agsaRoot_t *agRoot,
2797 agsaIORequest_t *agIORequest,
2798 bit32 agIOStatus,
2799 agsaFisHeader_t *agFirstDword,
2800 bit32 agIOInfoLen,
2801 agsaFrameHandle_t agFrameHandle,
2802 void *ioContext
2803 );
2804
2805
2810 tiScsiInitiatorRequest_t *tiScsiRequest,
2811 satIOContext_t *satIOContext
2812 );
2813
2818 tiScsiInitiatorRequest_t *tiScsiRequest,
2819 satIOContext_t *satIOContext
2820 );
2821
2823 agsaRoot_t *agRoot,
2824 agsaIORequest_t *agIORequest,
2825 bit32 agIOStatus,
2826 agsaFisHeader_t *agFirstDword,
2827 bit32 agIOInfoLen,
2828 agsaFrameHandle_t agFrameHandle,
2829 void *ioContext
2830 );
2831
2833 satIOContext_t *satIOContext
2834 );
2835
2837 bit8 bCommand,
2838 bit8 bATAStatus,
2839 bit8 bATAError,
2840 bit8 *pSenseKey,
2841 bit16 *pSenseCodeInfo
2842 );
2843
2844osGLOBAL void
2846 tdsaDeviceData_t *oneDeviceData,
2847 bit32 flag);
2848
2849#ifdef REMOVED
2850osGLOBAL void
2852 tdsaDeviceData_t *oneDeviceData,
2853 bit32 flag
2854 );
2855#endif
2856#endif /*__SATPROTO_H__ */
bit32 lun
Definition: encrypt_ioctl.h:3
bit32 index
Definition: encrypt_ioctl.h:0
unsigned short bit16
Definition: ostypes.h:98
#define osGLOBAL
Definition: ostypes.h:147
#define GLOBAL
Definition: ostypes.h:131
unsigned int bit32
Definition: ostypes.h:99
#define agBOOLEAN
Definition: ostypes.h:146
unsigned char bit8
Definition: ostypes.h:97
void * agsaFrameHandle_t
handle to access frame
Definition: sa.h:1719
void itdsatErrorSATAEventHandle(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, agsaPortContext_t *agPortContext, agsaDevHandle_t *agDevHandle, bit32 event, satIOContext_t *ioContext)
osGLOBAL bit32 itdsataIOPrepareSGL(tiRoot_t *tiRoot, tdIORequestBody_t *tdIORequestBody, tiSgl_t *tiSgl1, void *sglVirtualAddr)
GLOBAL bit32 satReadCapacity10(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satReadCapacity10.
void satNonDataIOCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satReportLun(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satReportLun.
bit32 satAddNComparebit32(bit8 *a, bit8 *b)
GLOBAL bit32 satLogSenseAllocate(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext, bit32 payloadSize, bit32 flag)
SAT implementation for SCSI satLogSenseAllocate.
GLOBAL void osSatDefaultTranslation(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, satIOContext_t *satIOContext, scsiRspSense_t *pSense, bit8 ataStatus, bit8 ataError, bit32 interruptContext)
SAT default ATA status and ATA error translation to SCSI.
GLOBAL bit32 satWriteSame10_3(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext, bit32 lba)
void satNonChainedVerifyCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satWriteAndVerify12(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satWriteAndVerify12.
void satWriteBufferCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
bit32 satComputeCDB16LBA(satIOContext_t *satIOContext)
GLOBAL bit32 satRequestSense_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI REQUEST SENSE.
GLOBAL void satInquiryPage80(bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData)
SAT implementation for SCSI INQUIRY page 80.
GLOBAL bit32 satWriteBuffer(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satWriteBuffer.
GLOBAL bit32 tdsaDiscoverySendIDDev(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satRead16(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI READ16.
osGLOBAL bit32 satTmResetLUN(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext, tiLUN_t *lun)
void satReadBufferCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
void satPacketCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, void *agParam, void *ioContext)
GLOBAL bit32 satWriteSame10_2(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext, bit32 lba)
GLOBAL bit32 satWrite6(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI WRITE6.
GLOBAL bit32 satChainedWriteNVerify_Start_Verify(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
osGLOBAL void ossaSATADeviceResetCB(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, bit32 resetStatus, void *resetparm)
Definition: ossacmnapi.c:9054
void satRequestSenseForATAPICB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, void *agParam, void *ioContext)
osGLOBAL bit32 satTmWarmReset(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
void satInquiryIntCB(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satRead10_2(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satVerify16(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI VERIFY (16).
GLOBAL bit32 satLogSense_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satLogSense_1.
osGLOBAL void osSatIOCompleted(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, agsaFisHeader_t *agFirstDword, bit32 respFisLen, agsaFrameHandle_t agFrameHandle, satIOContext_t *satIOContext, bit32 interruptContext)
void satNonChainedDataIOCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satSendDiagnostic_2(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satSendDiagnostic_2.
void satAddSATAIDDevCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
void itdsatDelayedProcessAbnormalCompletion(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, satIOContext_t *satIOContext)
GLOBAL bit32 sataLLIOStart(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satNonChainedWriteNVerify_Verify(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
osGLOBAL bit32 satTDInternalTmReset(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satWriteAndVerify16(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satWriteAndVerify16.
void satSynchronizeCache10n16CB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satDeviceReset(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for satDeviceReset.
GLOBAL bit32 satStartIDDev(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satResetDevice(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satAddSATASendIDDev(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
void satChainedVerifyCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
bit32 satCompareLBALimitbit(bit8 *lba)
void satRequestSenseCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
osGLOBAL void tdssRemoveSATAFromSharedcontext(tdsaPortContext_t *tdsaPortContext_Ins, tdsaDeviceData_t *tdsaDeviceData_ins, agsaRoot_t *agRoot)
GLOBAL bit32 satReadCapacity16(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satReadCapacity16.
GLOBAL bit32 satRead10(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI READ10.
void satLogSenseCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioCotext)
GLOBAL bit32 satVerify10(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI VERIFY (10).
GLOBAL bit32 satModeSelect6(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satModeSelect6.
void itdsatProcessAbnormalCompletion(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, satIOContext_t *satIOContext)
GLOBAL bit32 satSynchronizeCache16(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satSynchronizeCache16.
GLOBAL bit32 satRead12(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI READ12.
GLOBAL bit32 satRequestSense(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI REQUEST SENSE.
GLOBAL bit32 satSendDiagnostic_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satSendDiagnostic_1.
GLOBAL void satInquiryPage0(bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData)
SAT implementation for SCSI INQUIRY page 0.
GLOBAL bit32 satWrite_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
void satStartStopUnitCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 tdsaDiscoveryIntStartIDDev(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satVerify12(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI VERIFY (12).
GLOBAL bit32 satWriteSame10_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext, bit32 lba)
GLOBAL bit32 satTestUnitReady(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI TEST UNIT READY.
void satSMARTEnableCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL void satInquiryPage83(bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData, satDeviceData_t *pSatDevData)
SAT implementation for SCSI INQUIRY page 83.
GLOBAL bit32 satReassignBlocks_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext, satIOContext_t *satOrgIOContext)
SAT implementation for SCSI satReassignBlocks_1.
GLOBAL void satAbort(agsaRoot_t *agRoot, satIOContext_t *satIOContext)
GLOBAL bit32 satReadBuffer(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satReadBuffer.
GLOBAL bit32 satRead_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satRead10_1.
void satReadLogExtCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL void satInquiryStandard(bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData, tiIniScsiCmnd_t *scsiCmnd)
SAT implementation for SCSI STANDARD INQUIRY.
GLOBAL bit32 satWrite12(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI WRITE12.
GLOBAL bit32 satWriteSame16(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satWriteSame16.
GLOBAL bit32 satReassignBlocks_2(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext, bit8 *LBA)
SAT implementation for SCSI satReassignBlocks_2.
GLOBAL bit32 satChainedVerify16(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
void satReadMediaSerialNumberCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satStartStopUnit_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satStartStopUnit_1.
GLOBAL bit32 satAddSATAStartIDDev(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
void satModeSelect6n10CB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satWriteAndVerify10(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satWriteAndVerify10.
bit32 satComputeCDB16TL(satIOContext_t *satIOContext)
GLOBAL void satTranslateATAPIErrorsToSCSIErrors(bit8 bCommand, bit8 bATAStatus, bit8 bATAError, bit8 *pSenseKey, bit16 *pSenseCodeInfo)
bit32 satAddNComparebit64(bit8 *a, bit8 *b)
void satExecuteDeviceDiagnosticCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, void *agParam, void *ioContext)
GLOBAL bit32 satSynchronizeCache10(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satSynchronizeCache10.
GLOBAL bit32 satSendDiagnostic(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satSendDiagnostic.
GLOBAL bit32 satReadMediaSerialNumber(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satReadMediaSerialNumber.
GLOBAL bit32 satFormatUnit(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satFormatUnit.
osGLOBAL bit32 satSubTM(tiRoot_t *tiRoot, tiDeviceHandle_t *tiDeviceHandle, bit32 task, tiLUN_t *lun, tiIORequest_t *taskTag, tiIORequest_t *currentTaskTag, bit32 NotifyOS)
osGLOBAL void itdsatDifHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
bit32 satComputeCDB12TL(satIOContext_t *satIOContext)
GLOBAL void satCheckPowerModeCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
void tdsaDiscoveryStartIDDevCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
void satSetFeaturesCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, void *agParam, void *ioContext)
GLOBAL satInternalIo_t * satAllocIntIoResource(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, satDeviceData_t *satDevData, bit32 dmaAllocLength, satInternalIo_t *satIntIo)
Allocate resource for SAT intervally generated I/O.
GLOBAL bit32 satLogSense_2(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satLogSense_2.
GLOBAL void satResetDeviceCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satLogSense_3(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satLogSense_3.
GLOBAL bit32 satStartDeResetDevice(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satCheckPowerMode(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satSetFeatures(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext, bit8 bTransferMode)
SAT implementation for satSetFeatures.
GLOBAL bit32 satModeSelect6n10_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
void satSetFeaturesPIOCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, void *agParam, void *ioContext)
osGLOBAL void osSatResetCB(tiRoot_t *tiRoot, tiDeviceHandle_t *tiDeviceHandle, bit32 resetStatus, void *respFis)
void satTestUnitReadyCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satRequestSenseForATAPI(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI REQUEST SENSE to ATAPI device.
bit32 satComputeCDB12LBA(satIOContext_t *satIOContext)
GLOBAL bit32 satInquiry(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
void satChainedDataIOCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
osGLOBAL bit32 satTmAbortTask(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext, tiIORequest_t *taskTag)
GLOBAL void satDeResetDeviceCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satTagRelease(tiRoot_t *tiRoot, satDeviceData_t *pSatDevData, bit8 tag)
release an SATA tag
void satAddSATAIDDevCBCleanup(agsaRoot_t *agRoot, tdsaDeviceData_t *oneDeviceData, satIOContext_t *satIOContext, tdIORequestBody_t *tdIORequestBody)
void satDeviceResetCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, void *agParam, void *ioContext)
void satVerify10CB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContex)
void satSendDiagnosticCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satSendReadLogExt(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
Send READ LOG EXT ATA PAGE 10h command to sata drive.
void satProcessAbort(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, satIOContext_t *satIOContext)
GLOBAL bit32 satModeSense10(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI MODE SENSE (10).
void satReassignBlocksCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
void satAddSATAIDDevCBReset(agsaRoot_t *agRoot, tdsaDeviceData_t *oneDeviceData, satIOContext_t *satIOContext, tdIORequestBody_t *tdIORequestBody)
GLOBAL bit32 satWrite16(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI WRITE16.
GLOBAL bit32 satTagAlloc(tiRoot_t *tiRoot, satDeviceData_t *pSatDevData, bit8 *pTag)
allocate an available SATA tag
void satInquiryCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL bit32 satExecuteDeviceDiagnostic(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for satExecuteDeviceDiagnostic.
GLOBAL void satDecrementPendingIO(tiRoot_t *tiRoot, tdsaContext_t *tdsaAllShared, satIOContext_t *satIOContext)
GLOBAL satIOContext_t * satPrepareNewIO(satInternalIo_t *satNewIntIo, tiIORequest_t *tiOrgIORequest, satDeviceData_t *satDevData, tiIniScsiCmnd_t *scsiCmnd, satIOContext_t *satOrgIOContext)
SAT implementation for SCSI satPrepareNewIO.
GLOBAL bit32 satDeResetDevice(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satReassignBlocks(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satReassignBlocks.
GLOBAL bit32 satTestUnitReady_1(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satTestUnitReady_1.
bit32 satComputeCDB10TL(satIOContext_t *satIOContext)
GLOBAL bit32 satModeSense6(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI MODE SENSE (6).
void itdsatEncryptionHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void satSATADeviceReset(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData, bit32 flag)
void satNonChainedWriteNVerifyCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
bit32 satComputeCDB10LBA(satIOContext_t *satIOContext)
GLOBAL bit32 satWrite10(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI WRITE10.
GLOBAL void satBitSet(bit8 *data, bit32 index)
bit32 satComputeLoopNum(bit32 a, bit32 b)
GLOBAL bit32 satSMARTEnable(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satSMARTEnable.
void satSetDeferredSensePayload(scsiRspSense_t *pSense, bit8 SnsKey, bit32 SnsInfo, bit16 SnsCode, satIOContext_t *satIOContext)
Setup up the SCSI Sense response.
GLOBAL bit32 satChainedWriteNVerify_Write(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satSendIDDev(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satModeSelect10(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satModeSelect10.
void satSetSensePayload(scsiRspSense_t *pSense, bit8 SnsKey, bit32 SnsInfo, bit16 SnsCode, satIOContext_t *satIOContext)
Setup up the SCSI Sense response.
GLOBAL bit32 satLogSense(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satLogSense.
void satWriteSame10CB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
GLOBAL agBOOLEAN satBitTest(bit8 *data, bit32 index)
GLOBAL bit32 satPacket(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for ATAPI Packet Command.
GLOBAL void satInquiryPage89(bit8 *pInquiry, agsaSATAIdentifyData_t *pSATAIdData, satDeviceData_t *pSatDevData)
SAT implementation for SCSI INQUIRY page 89.
GLOBAL bit32 satChainedWriteNVerify_Verify(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL void satBitClear(bit8 *data, bit32 index)
GLOBAL bit32 sataLLIOAbort(tiRoot_t *tiRoot, tiIORequest_t *taskTag)
void satSetDevInfo(satDeviceData_t *satDevData, agsaSATAIdentifyData_t *SATAIdData)
GLOBAL bit32 satStartStopUnit(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satStartStopUnit.
GLOBAL bit32 satChainedVerify(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satRead6(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI READ6.
GLOBAL bit32 satStartCheckPowerMode(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satStartResetDevice(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
GLOBAL bit32 satWriteSame10(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, tiScsiInitiatorRequest_t *tiScsiRequest, satIOContext_t *satIOContext)
SAT implementation for SCSI satWriteSame10.
void satChainedWriteNVerifyCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, agsaFisHeader_t *agFirstDword, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle, void *ioContext)
data structure stores OS specific and LL specific context
Definition: sa.h:1658
data structure provides the identify data of the SATA device
Definition: sa_spec.h:530
data structure for SAS SSP IO reuqest body This structure contains IO related fields....
Definition: tdtypes.h:587
data structure for SAS/SATA context at TD layer
Definition: tdsatypes.h:199
data structure for SAS device list This structure maintains the device as a list and information abou...
Definition: tdtypes.h:322
data structure for TD port context This structure maintains information about the port such as ID add...
Definition: tdtypes.h:412
Definition: titypes.h:374
Definition: titypes.h:61