esp32-s2_dfu/0.4/group___class_driver___m_s_...

536 lines
47 KiB
HTML

<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>tinyusb: Common Definitions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table width="100%" cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">tinyusb
&#160;<span id="projectnumber">0.4</span>
</div>
</td>
<td align="right">
<a href="https://pledgie.com/campaigns/24694"><img border="0" src="https://pledgie.com/campaigns/24694.png?skin_name=chrome" alt="Click here to lend your support to tinyusb donation and make a donation at pledgie.com"></a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group___class_driver___m_s_c___common.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Common Definitions<div class="ingroups"><a class="el" href="group___class_driver___m_s_c.html">MassStorage (MSC)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmsc__cmd__block__wrapper__t.html">msc_cmd_block_wrapper_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command Block Wrapper. <a href="structmsc__cmd__block__wrapper__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmsc__cmd__status__wrapper__t.html">msc_cmd_status_wrapper_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command Status Wrapper. <a href="structmsc__cmd__status__wrapper__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__test__unit__ready__t.html">scsi_test_unit_ready_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCSI Test Unit Ready Command. <a href="structscsi__test__unit__ready__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__inquiry__t.html">scsi_inquiry_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCSI Inquiry Command. <a href="structscsi__inquiry__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__inquiry__data__t.html">scsi_inquiry_data_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCSI Inquiry Response Data. <a href="structscsi__inquiry__data__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__sense__fixed__data__t.html">scsi_sense_fixed_data_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__mode__sense__6__t.html">scsi_mode_sense_6_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__mode__parameters__t.html">scsi_mode_parameters_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__prevent__allow__medium__removal__t.html">scsi_prevent_allow_medium_removal_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__read__format__capacity__t.html">scsi_read_format_capacity_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCSI Read Format Capacity: Write Capacity. <a href="structscsi__read__format__capacity__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__read__format__capacity__data__t.html">scsi_read_format_capacity_data_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__read__capacity10__t.html">scsi_read_capacity10_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCSI Read Capacity 10 Command: Read Capacity. <a href="structscsi__read__capacity10__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__read__capacity10__data__t.html">scsi_read_capacity10_data_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCSI Read Capacity 10 Response Data. <a href="structscsi__read__capacity10__data__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscsi__read10__t.html">scsi_read10_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCSI Read 10 Command. <a href="structscsi__read10__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga710df5611e0eb464662ee3afddfd797d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga710df5611e0eb464662ee3afddfd797d"></a>
typedef struct <a class="el" href="structscsi__inquiry__t.html">scsi_inquiry_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>scsi_request_sense_t</b></td></tr>
<tr class="separator:ga710df5611e0eb464662ee3afddfd797d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91abaf0aed33ee7d717038e1694643bc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91abaf0aed33ee7d717038e1694643bc"></a>
typedef struct <a class="el" href="structscsi__read10__t.html">scsi_read10_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>scsi_write10_t</b></td></tr>
<tr class="separator:ga91abaf0aed33ee7d717038e1694643bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga26bc41b71a6b4d66b10c8649163caa21"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___class_driver___m_s_c___common.html#ga26bc41b71a6b4d66b10c8649163caa21">msc_subclass_type_t</a> { <br/>
&#160;&#160;<a class="el" href="group___class_driver___m_s_c___common.html#gga26bc41b71a6b4d66b10c8649163caa21a17dd1074a9e2e0dd5b7fb04ccf93eef5">MSC_SUBCLASS_RBC</a> = 1,
<a class="el" href="group___class_driver___m_s_c___common.html#gga26bc41b71a6b4d66b10c8649163caa21aea214cb6cbebd772dd6f369330b80783">MSC_SUBCLASS_SFF_MMC</a>,
<a class="el" href="group___class_driver___m_s_c___common.html#gga26bc41b71a6b4d66b10c8649163caa21a531078b1e8d44d892397a241925471cd">MSC_SUBCLASS_QIC</a>,
<a class="el" href="group___class_driver___m_s_c___common.html#gga26bc41b71a6b4d66b10c8649163caa21a671b4e9a3c91a1f5d1d0baa68b9d937c">MSC_SUBCLASS_UFI</a>,
<br/>
&#160;&#160;<a class="el" href="group___class_driver___m_s_c___common.html#gga26bc41b71a6b4d66b10c8649163caa21a4c50de5ae13afdbf4dc44c659823672e">MSC_SUBCLASS_SFF</a>,
<a class="el" href="group___class_driver___m_s_c___common.html#gga26bc41b71a6b4d66b10c8649163caa21ac81abb5906ba3b8543001a8f3b2d62f5">MSC_SUBCLASS_SCSI</a>
<br/>
}</td></tr>
<tr class="memdesc:ga26bc41b71a6b4d66b10c8649163caa21"><td class="mdescLeft">&#160;</td><td class="mdescRight">MassStorage Subclass. <a href="group___class_driver___m_s_c___common.html#ga26bc41b71a6b4d66b10c8649163caa21">More...</a><br/></td></tr>
<tr class="separator:ga26bc41b71a6b4d66b10c8649163caa21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0411cd49bb5b71852cecd93bcbf0ca2d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___class_driver___m_s_c___common.html#gga0411cd49bb5b71852cecd93bcbf0ca2da1d7a1491e63c8fa476a37677bd4defa9">MSC_CBW_SIGNATURE</a> = 0x43425355,
<a class="el" href="group___class_driver___m_s_c___common.html#gga0411cd49bb5b71852cecd93bcbf0ca2da6a3e02fda8ecf085a11ec330d9a09d1a">MSC_CSW_SIGNATURE</a> = 0x53425355
}</td></tr>
<tr class="separator:ga0411cd49bb5b71852cecd93bcbf0ca2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09dab9a66502b8e228c8640678f97867"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___class_driver___m_s_c___common.html#ga09dab9a66502b8e228c8640678f97867">msc_protocol_type_t</a> { <a class="el" href="group___class_driver___m_s_c___common.html#gga09dab9a66502b8e228c8640678f97867ab04e8cf10f7051f073921a9177cd1dd9">MSC_PROTOCOL_CBI</a> = 0,
<a class="el" href="group___class_driver___m_s_c___common.html#gga09dab9a66502b8e228c8640678f97867a7b86ece435e956868a9eab981705f018">MSC_PROTOCOL_CBI_NO_INTERRUPT</a> = 1,
<a class="el" href="group___class_driver___m_s_c___common.html#gga09dab9a66502b8e228c8640678f97867a3fe931957ba4eea5705debeb1eb286df">MSC_PROTOCOL_BOT</a> = 0x50
}</td></tr>
<tr class="memdesc:ga09dab9a66502b8e228c8640678f97867"><td class="mdescLeft">&#160;</td><td class="mdescRight">MassStorage Protocol. <a href="group___class_driver___m_s_c___common.html#ga09dab9a66502b8e228c8640678f97867">More...</a><br/></td></tr>
<tr class="separator:ga09dab9a66502b8e228c8640678f97867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf0f486b972468c53352266648012bf2f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___class_driver___m_s_c___common.html#gaf0f486b972468c53352266648012bf2f">msc_request_type_t</a> { <a class="el" href="group___class_driver___m_s_c___common.html#ggaf0f486b972468c53352266648012bf2fada9868798c37d9170cc132bbf64ed8ad">MSC_REQUEST_GET_MAX_LUN</a> = 254,
<a class="el" href="group___class_driver___m_s_c___common.html#ggaf0f486b972468c53352266648012bf2fa8907560978586c8e695055c9126d44f0">MSC_REQUEST_RESET</a> = 255
}</td></tr>
<tr class="memdesc:gaf0f486b972468c53352266648012bf2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">MassStorage Class-Specific Control Request. <a href="group___class_driver___m_s_c___common.html#gaf0f486b972468c53352266648012bf2f">More...</a><br/></td></tr>
<tr class="separator:gaf0f486b972468c53352266648012bf2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab78ea3586ce0c7a8bb2680d7fbcca3ae"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___class_driver___m_s_c___common.html#gab78ea3586ce0c7a8bb2680d7fbcca3ae">msc_csw_status_t</a> { <a class="el" href="group___class_driver___m_s_c___common.html#ggab78ea3586ce0c7a8bb2680d7fbcca3aeafeaad74e991e7bbc602c60cfb2fef201">MSC_CSW_STATUS_PASSED</a> = 0,
<a class="el" href="group___class_driver___m_s_c___common.html#ggab78ea3586ce0c7a8bb2680d7fbcca3aea0a54ee9dea6d496ba86ce54b0a5bc390">MSC_CSW_STATUS_FAILED</a>,
<a class="el" href="group___class_driver___m_s_c___common.html#ggab78ea3586ce0c7a8bb2680d7fbcca3aea468aa5999b40fc91fe73b73e2e1fd4f3">MSC_CSW_STATUS_PHASE_ERROR</a>
}</td></tr>
<tr class="memdesc:gab78ea3586ce0c7a8bb2680d7fbcca3ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command Block Status Values. <a href="group___class_driver___m_s_c___common.html#gab78ea3586ce0c7a8bb2680d7fbcca3ae">More...</a><br/></td></tr>
<tr class="separator:gab78ea3586ce0c7a8bb2680d7fbcca3ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad5f995e6aa7f3c4cf01e369dae83ddd4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___class_driver___m_s_c___common.html#gad5f995e6aa7f3c4cf01e369dae83ddd4">scsi_cmd_type_t</a> { <br/>
&#160;&#160;<a class="el" href="group___class_driver___m_s_c___common.html#ggad5f995e6aa7f3c4cf01e369dae83ddd4a117340f6f7e567543b031f4cd311e7b1">SCSI_CMD_TEST_UNIT_READY</a> = 0x00,
<a class="el" href="group___class_driver___m_s_c___common.html#ggad5f995e6aa7f3c4cf01e369dae83ddd4adaaa451130fe92c126a5a7031de1a25f">SCSI_CMD_INQUIRY</a> = 0x12,
<a class="el" href="group___class_driver___m_s_c___common.html#ggad5f995e6aa7f3c4cf01e369dae83ddd4a68ae8c502e73b3c6e85b17efbbf7f8d9">SCSI_CMD_MODE_SELECT_6</a> = 0x15,
<a class="el" href="group___class_driver___m_s_c___common.html#ggad5f995e6aa7f3c4cf01e369dae83ddd4ad1eae0b1b180693ce3dc6645d1935152">SCSI_CMD_MODE_SENSE_6</a> = 0x1A,
<br/>
&#160;&#160;<b>SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL</b> = 0x1E,
<a class="el" href="group___class_driver___m_s_c___common.html#ggad5f995e6aa7f3c4cf01e369dae83ddd4a7a8b5c7b6db011cb6244012e21c02115">SCSI_CMD_READ_CAPACITY_10</a> = 0x25,
<a class="el" href="group___class_driver___m_s_c___common.html#ggad5f995e6aa7f3c4cf01e369dae83ddd4a5cf192d1e89d1553d238f67024d84fd9">SCSI_CMD_REQUEST_SENSE</a> = 0x03,
<a class="el" href="group___class_driver___m_s_c___common.html#ggad5f995e6aa7f3c4cf01e369dae83ddd4a1c7c2d9842ea20accf2333d2a320f1c4">SCSI_CMD_READ_FORMAT_CAPACITY</a> = 0x23,
<br/>
&#160;&#160;<a class="el" href="group___class_driver___m_s_c___common.html#ggad5f995e6aa7f3c4cf01e369dae83ddd4a896bb16014025d5ee9c30767c37bb429">SCSI_CMD_READ_10</a> = 0x28,
<a class="el" href="group___class_driver___m_s_c___common.html#ggad5f995e6aa7f3c4cf01e369dae83ddd4a64f64e86275d0618cc06512cac43e5e0">SCSI_CMD_WRITE_10</a> = 0x2A
<br/>
}</td></tr>
<tr class="memdesc:gad5f995e6aa7f3c4cf01e369dae83ddd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCSI Command Operation Code. <a href="group___class_driver___m_s_c___common.html#gad5f995e6aa7f3c4cf01e369dae83ddd4">More...</a><br/></td></tr>
<tr class="separator:gad5f995e6aa7f3c4cf01e369dae83ddd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85a3840e452fea9fd0f9ca4874b86e36"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___class_driver___m_s_c___common.html#ga85a3840e452fea9fd0f9ca4874b86e36">scsi_sense_key_type_t</a> { <br/>
&#160;&#160;<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36ad3a6524b4a5b76de37e81186a18c2f70">SCSI_SENSEKEY_NONE</a> = 0x00,
<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36a9f4f8e06049d66cf654782d6b1c409df">SCSI_SENSEKEY_RECOVERED_ERROR</a> = 0x01,
<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36a871335871fc3b91b8fb839d42d87c4ef">SCSI_SENSEKEY_NOT_READY</a> = 0x02,
<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36a142c683f77b745f263f0f9ea2a3600f3">SCSI_SENSEKEY_MEDIUM_ERROR</a> = 0x03,
<br/>
&#160;&#160;<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36aeeae70550e0ca645d6700750aea16c77">SCSI_SENSEKEY_HARDWARE_ERROR</a> = 0x04,
<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36ab106fd8f2c1999df32b54c936390574a">SCSI_SENSEKEY_ILLEGLA_REQUEST</a> = 0x05,
<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36a7509d4d844a79f2efb1391a91429a4a1">SCSI_SENSEKEY_UNIT_ATTENTION</a> = 0x06,
<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36a107c8068339a7ada2c48bde04164451a">SCSI_SENSEKEY_DATA_PROTECT</a> = 0x07,
<br/>
&#160;&#160;<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36a879b509f9200ecca5b50d277d28487dc">SCSI_SENSEKEY_FIRMWARE_ERROR</a> = 0x08,
<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36a39f74b15b7cd42748c1252efebd2b4b5">SCSI_SENSEKEY_ABORTED_COMMAND</a> = 0x0b,
<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36a98995bae55818194fa2431cecea2be4b">SCSI_SENSEKEY_EQUAL</a> = 0x0c,
<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36a46b245f6ce9f248b10fd5ef3f85c0132">SCSI_SENSEKEY_VOLUME_OVERFLOW</a> = 0x0d,
<br/>
&#160;&#160;<a class="el" href="group___class_driver___m_s_c___common.html#gga85a3840e452fea9fd0f9ca4874b86e36aaec06e9dfbda537fe7d922e13e2f3022">SCSI_SENSEKEY_MISCOMPARE</a> = 0x0e
<br/>
}</td></tr>
<tr class="memdesc:ga85a3840e452fea9fd0f9ca4874b86e36"><td class="mdescLeft">&#160;</td><td class="mdescRight">SCSI Sense Key. <a href="group___class_driver___m_s_c___common.html#ga85a3840e452fea9fd0f9ca4874b86e36">More...</a><br/></td></tr>
<tr class="separator:ga85a3840e452fea9fd0f9ca4874b86e36"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga91393b81f8445a39deadcbc478d60bd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91393b81f8445a39deadcbc478d60bd4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structmsc__cmd__block__wrapper__t.html">msc_cmd_block_wrapper_t</a>)==31,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga91393b81f8445a39deadcbc478d60bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88674854449ef05a113af7904f771277"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88674854449ef05a113af7904f771277"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structmsc__cmd__status__wrapper__t.html">msc_cmd_status_wrapper_t</a>)==13,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga88674854449ef05a113af7904f771277"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3540fc3eafe5b42cc27276773d7b4f82"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3540fc3eafe5b42cc27276773d7b4f82"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__test__unit__ready__t.html">scsi_test_unit_ready_t</a>)==6,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga3540fc3eafe5b42cc27276773d7b4f82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga147d81232a11b36458d401c33446a459"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga147d81232a11b36458d401c33446a459"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__inquiry__t.html">scsi_inquiry_t</a>)==6,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga147d81232a11b36458d401c33446a459"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac38cf794447f19d1621b119de749ad5a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac38cf794447f19d1621b119de749ad5a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__inquiry__data__t.html">scsi_inquiry_data_t</a>)==36,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:gac38cf794447f19d1621b119de749ad5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb70d0c92c2cb117dc0dd547a0decad5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadb70d0c92c2cb117dc0dd547a0decad5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__sense__fixed__data__t.html">scsi_sense_fixed_data_t</a>)==18,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:gadb70d0c92c2cb117dc0dd547a0decad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2dad9e10872ca8910147a50a544531d5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2dad9e10872ca8910147a50a544531d5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__mode__sense__6__t.html">scsi_mode_sense_6_t</a>)==6,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga2dad9e10872ca8910147a50a544531d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga431f581a59079446af18b68f92401c23"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga431f581a59079446af18b68f92401c23"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__mode__parameters__t.html">scsi_mode_parameters_t</a>)==4,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga431f581a59079446af18b68f92401c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace5781a69952e0f2691fece56c845729"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace5781a69952e0f2691fece56c845729"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__prevent__allow__medium__removal__t.html">scsi_prevent_allow_medium_removal_t</a>)==6,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:gace5781a69952e0f2691fece56c845729"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97be97ef7e541fef86115000daf35f99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga97be97ef7e541fef86115000daf35f99"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__read__format__capacity__t.html">scsi_read_format_capacity_t</a>)==10,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga97be97ef7e541fef86115000daf35f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d8897976a78bbe404a2de254d0dc0a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4d8897976a78bbe404a2de254d0dc0a4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__read__format__capacity__data__t.html">scsi_read_format_capacity_data_t</a>)==12,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga4d8897976a78bbe404a2de254d0dc0a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga649c72e787246bf11520f80c899aeebf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga649c72e787246bf11520f80c899aeebf"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__read__capacity10__t.html">scsi_read_capacity10_t</a>)==10,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga649c72e787246bf11520f80c899aeebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad51fe396f9dd435ddfffa28966582ada"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad51fe396f9dd435ddfffa28966582ada"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__read__capacity10__data__t.html">scsi_read_capacity10_data_t</a>)==8,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:gad51fe396f9dd435ddfffa28966582ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93fb2e4c678ba8bd94ef2490b534541a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga93fb2e4c678ba8bd94ef2490b534541a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>STATIC_ASSERT</b> (sizeof(<a class="el" href="structscsi__read10__t.html">scsi_read10_t</a>)==10,&quot;size is not correct&quot;)</td></tr>
<tr class="separator:ga93fb2e4c678ba8bd94ef2490b534541a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga0411cd49bb5b71852cecd93bcbf0ca2d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2da1d7a1491e63c8fa476a37677bd4defa9"></a>MSC_CBW_SIGNATURE</em>&#160;</td><td class="fielddoc">
<p>Constant value of 43425355h (little endian) </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2da6a3e02fda8ecf085a11ec330d9a09d1a"></a>MSC_CSW_SIGNATURE</em>&#160;</td><td class="fielddoc">
<p>Constant value of 53425355h (little endian) </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="msc_8h_source.html#l00068">68</a> of file <a class="el" href="msc_8h_source.html">msc.h</a>.</p>
</div>
</div>
<a class="anchor" id="gab78ea3586ce0c7a8bb2680d7fbcca3ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___class_driver___m_s_c___common.html#gab78ea3586ce0c7a8bb2680d7fbcca3ae">msc_csw_status_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command Block Status Values. </p>
<p>Indicates the success or failure of the command. The device shall set this byte to zero if the command completed successfully. A non-zero value shall indicate a failure during command execution according to the following </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggab78ea3586ce0c7a8bb2680d7fbcca3aeafeaad74e991e7bbc602c60cfb2fef201"></a>MSC_CSW_STATUS_PASSED</em>&#160;</td><td class="fielddoc">
<p>MSC_CSW_STATUS_PASSED. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab78ea3586ce0c7a8bb2680d7fbcca3aea0a54ee9dea6d496ba86ce54b0a5bc390"></a>MSC_CSW_STATUS_FAILED</em>&#160;</td><td class="fielddoc">
<p>MSC_CSW_STATUS_FAILED. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab78ea3586ce0c7a8bb2680d7fbcca3aea468aa5999b40fc91fe73b73e2e1fd4f3"></a>MSC_CSW_STATUS_PHASE_ERROR</em>&#160;</td><td class="fielddoc">
<p>MSC_CSW_STATUS_PHASE_ERROR. </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="msc_8h_source.html#l00090">90</a> of file <a class="el" href="msc_8h_source.html">msc.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga09dab9a66502b8e228c8640678f97867"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___class_driver___m_s_c___common.html#ga09dab9a66502b8e228c8640678f97867">msc_protocol_type_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>MassStorage Protocol. </p>
<p>CBI only approved to use with full-speed floopy disk &amp; should not used with highspeed or device other than floopy </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga09dab9a66502b8e228c8640678f97867ab04e8cf10f7051f073921a9177cd1dd9"></a>MSC_PROTOCOL_CBI</em>&#160;</td><td class="fielddoc">
<p>Control/Bulk/Interrupt protocol (with command completion interrupt) </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga09dab9a66502b8e228c8640678f97867a7b86ece435e956868a9eab981705f018"></a>MSC_PROTOCOL_CBI_NO_INTERRUPT</em>&#160;</td><td class="fielddoc">
<p>Control/Bulk/Interrupt protocol (without command completion interrupt) </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga09dab9a66502b8e228c8640678f97867a3fe931957ba4eea5705debeb1eb286df"></a>MSC_PROTOCOL_BOT</em>&#160;</td><td class="fielddoc">
<p>Bulk-Only Transport. </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="msc_8h_source.html#l00075">75</a> of file <a class="el" href="msc_8h_source.html">msc.h</a>.</p>
</div>
</div>
<a class="anchor" id="gaf0f486b972468c53352266648012bf2f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___class_driver___m_s_c___common.html#gaf0f486b972468c53352266648012bf2f">msc_request_type_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>MassStorage Class-Specific Control Request. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaf0f486b972468c53352266648012bf2fada9868798c37d9170cc132bbf64ed8ad"></a>MSC_REQUEST_GET_MAX_LUN</em>&#160;</td><td class="fielddoc">
<p>The Get Max LUN device request is used to determine the number of logical units supported by the device. Logical Unit Numbers on the device shall be numbered contiguously starting from LUN 0 to a maximum LUN of 15. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaf0f486b972468c53352266648012bf2fa8907560978586c8e695055c9126d44f0"></a>MSC_REQUEST_RESET</em>&#160;</td><td class="fielddoc">
<p>This request is used to reset the mass storage device and its associated interface. This class-specific request shall ready the device for the next CBW from the host. </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="msc_8h_source.html#l00082">82</a> of file <a class="el" href="msc_8h_source.html">msc.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga26bc41b71a6b4d66b10c8649163caa21"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___class_driver___m_s_c___common.html#ga26bc41b71a6b4d66b10c8649163caa21">msc_subclass_type_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>MassStorage Subclass. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga26bc41b71a6b4d66b10c8649163caa21a17dd1074a9e2e0dd5b7fb04ccf93eef5"></a>MSC_SUBCLASS_RBC</em>&#160;</td><td class="fielddoc">
<p>Reduced Block Commands (RBC) T10 Project 1240-D. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga26bc41b71a6b4d66b10c8649163caa21aea214cb6cbebd772dd6f369330b80783"></a>MSC_SUBCLASS_SFF_MMC</em>&#160;</td><td class="fielddoc">
<p>SFF-8020i, MMC-2 (ATAPI). Typically used by a CD/DVD device. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga26bc41b71a6b4d66b10c8649163caa21a531078b1e8d44d892397a241925471cd"></a>MSC_SUBCLASS_QIC</em>&#160;</td><td class="fielddoc">
<p>QIC-157. Typically used by a tape device. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga26bc41b71a6b4d66b10c8649163caa21a671b4e9a3c91a1f5d1d0baa68b9d937c"></a>MSC_SUBCLASS_UFI</em>&#160;</td><td class="fielddoc">
<p>UFI. Typically used by Floppy Disk Drive (FDD) device. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga26bc41b71a6b4d66b10c8649163caa21a4c50de5ae13afdbf4dc44c659823672e"></a>MSC_SUBCLASS_SFF</em>&#160;</td><td class="fielddoc">
<p>SFF-8070i. Can be used by Floppy Disk Drive (FDD) device. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga26bc41b71a6b4d66b10c8649163caa21ac81abb5906ba3b8543001a8f3b2d62f5"></a>MSC_SUBCLASS_SCSI</em>&#160;</td><td class="fielddoc">
<p>SCSI transparent command set. </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="msc_8h_source.html#l00059">59</a> of file <a class="el" href="msc_8h_source.html">msc.h</a>.</p>
</div>
</div>
<a class="anchor" id="gad5f995e6aa7f3c4cf01e369dae83ddd4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___class_driver___m_s_c___common.html#gad5f995e6aa7f3c4cf01e369dae83ddd4">scsi_cmd_type_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>SCSI Command Operation Code. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggad5f995e6aa7f3c4cf01e369dae83ddd4a117340f6f7e567543b031f4cd311e7b1"></a>SCSI_CMD_TEST_UNIT_READY</em>&#160;</td><td class="fielddoc">
<p>The SCSI Test Unit Ready command is used to determine if a device is ready to transfer data (read/write), i.e. if a disk has spun up, if a tape is loaded and ready etc. The device does not perform a self-test operation. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad5f995e6aa7f3c4cf01e369dae83ddd4adaaa451130fe92c126a5a7031de1a25f"></a>SCSI_CMD_INQUIRY</em>&#160;</td><td class="fielddoc">
<p>The SCSI Inquiry command is used to obtain basic information from a target device. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad5f995e6aa7f3c4cf01e369dae83ddd4a68ae8c502e73b3c6e85b17efbbf7f8d9"></a>SCSI_CMD_MODE_SELECT_6</em>&#160;</td><td class="fielddoc">
<p>provides a means for the application client to specify medium, logical unit, or peripheral device parameters to the device server. Device servers that implement the MODE SELECT(6) command shall also implement the MODE SENSE(6) command. Application clients should issue MODE SENSE(6) prior to each MODE SELECT(6) to determine supported mode pages, page lengths, and other parameters. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad5f995e6aa7f3c4cf01e369dae83ddd4ad1eae0b1b180693ce3dc6645d1935152"></a>SCSI_CMD_MODE_SENSE_6</em>&#160;</td><td class="fielddoc">
<p>provides a means for a device server to report parameters to an application client. It is a complementary command to the MODE SELECT(6) command. Device servers that implement the MODE SENSE(6) command shall also implement the MODE SELECT(6) command. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad5f995e6aa7f3c4cf01e369dae83ddd4a7a8b5c7b6db011cb6244012e21c02115"></a>SCSI_CMD_READ_CAPACITY_10</em>&#160;</td><td class="fielddoc">
<p>The SCSI Read Capacity command is used to obtain data capacity information from a target device. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad5f995e6aa7f3c4cf01e369dae83ddd4a5cf192d1e89d1553d238f67024d84fd9"></a>SCSI_CMD_REQUEST_SENSE</em>&#160;</td><td class="fielddoc">
<p>The SCSI Request Sense command is part of the SCSI computer protocol standard. This command is used to obtain sense data &ndash; status/error information &ndash; from a target device. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad5f995e6aa7f3c4cf01e369dae83ddd4a1c7c2d9842ea20accf2333d2a320f1c4"></a>SCSI_CMD_READ_FORMAT_CAPACITY</em>&#160;</td><td class="fielddoc">
<p>The command allows the Host to request a list of the possible format capacities for an installed writable media. This command also has the capability to report the writable capacity for a media when it is installed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad5f995e6aa7f3c4cf01e369dae83ddd4a896bb16014025d5ee9c30767c37bb429"></a>SCSI_CMD_READ_10</em>&#160;</td><td class="fielddoc">
<p>The READ (10) command requests that the device server read the specified logical block(s) and transfer them to the data-in buffer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad5f995e6aa7f3c4cf01e369dae83ddd4a64f64e86275d0618cc06512cac43e5e0"></a>SCSI_CMD_WRITE_10</em>&#160;</td><td class="fielddoc">
<p>The WRITE (10) command requests thatthe device server transfer the specified logical block(s) from the data-out buffer and write them. </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="msc_8h_source.html#l00124">124</a> of file <a class="el" href="msc_8h_source.html">msc.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga85a3840e452fea9fd0f9ca4874b86e36"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___class_driver___m_s_c___common.html#ga85a3840e452fea9fd0f9ca4874b86e36">scsi_sense_key_type_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>SCSI Sense Key. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36ad3a6524b4a5b76de37e81186a18c2f70"></a>SCSI_SENSEKEY_NONE</em>&#160;</td><td class="fielddoc">
<p>no specific Sense Key. This would be the case for a successful command </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36a9f4f8e06049d66cf654782d6b1c409df"></a>SCSI_SENSEKEY_RECOVERED_ERROR</em>&#160;</td><td class="fielddoc">
<p>ndicates the last command completed successfully with some recovery action performed by the disc drive. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36a871335871fc3b91b8fb839d42d87c4ef"></a>SCSI_SENSEKEY_NOT_READY</em>&#160;</td><td class="fielddoc">
<p>Indicates the logical unit addressed cannot be accessed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36a142c683f77b745f263f0f9ea2a3600f3"></a>SCSI_SENSEKEY_MEDIUM_ERROR</em>&#160;</td><td class="fielddoc">
<p>Indicates the command terminated with a non-recovered error condition. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36aeeae70550e0ca645d6700750aea16c77"></a>SCSI_SENSEKEY_HARDWARE_ERROR</em>&#160;</td><td class="fielddoc">
<p>Indicates the disc drive detected a nonrecoverable hardware failure while performing the command or during a self test. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36ab106fd8f2c1999df32b54c936390574a"></a>SCSI_SENSEKEY_ILLEGLA_REQUEST</em>&#160;</td><td class="fielddoc">
<p>Indicates an illegal parameter in the command descriptor block or in the additional parameters. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36a7509d4d844a79f2efb1391a91429a4a1"></a>SCSI_SENSEKEY_UNIT_ATTENTION</em>&#160;</td><td class="fielddoc">
<p>Indicates the disc drive may have been reset. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36a107c8068339a7ada2c48bde04164451a"></a>SCSI_SENSEKEY_DATA_PROTECT</em>&#160;</td><td class="fielddoc">
<p>Indicates that a command that reads or writes the medium was attempted on a block that is protected from this operation. The read or write operation is not performed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36a879b509f9200ecca5b50d277d28487dc"></a>SCSI_SENSEKEY_FIRMWARE_ERROR</em>&#160;</td><td class="fielddoc">
<p>Vendor specific sense key. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36a39f74b15b7cd42748c1252efebd2b4b5"></a>SCSI_SENSEKEY_ABORTED_COMMAND</em>&#160;</td><td class="fielddoc">
<p>Indicates the disc drive aborted the command. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36a98995bae55818194fa2431cecea2be4b"></a>SCSI_SENSEKEY_EQUAL</em>&#160;</td><td class="fielddoc">
<p>Indicates a SEARCH DATA command has satisfied an equal comparison. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36a46b245f6ce9f248b10fd5ef3f85c0132"></a>SCSI_SENSEKEY_VOLUME_OVERFLOW</em>&#160;</td><td class="fielddoc">
<p>Indicates a buffered peripheral device has reached the end of medium partition and data remains in the buffer that has not been written to the medium. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga85a3840e452fea9fd0f9ca4874b86e36aaec06e9dfbda537fe7d922e13e2f3022"></a>SCSI_SENSEKEY_MISCOMPARE</em>&#160;</td><td class="fielddoc">
<p>ndicates that the source data did not match the data read from the medium. </p>
</td></tr>
</table>
<p>Definition at line <a class="el" href="msc_8h_source.html#l00138">138</a> of file <a class="el" href="msc_8h_source.html">msc.h</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Thu Apr 17 2014 13:05:28 for tinyusb by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
</ul>
</div>
</body>
</html>