Sophie

Sophie

distrib > CentOS > 6 > i386 > by-pkgid > 2c51d8eb79f8810ada971ee8c30ce1e5 > files > 2274

kernel-doc-2.6.32-71.14.1.el6.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!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/html; charset=ANSI_X3.4-1968" /><title>libATA Developer's Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="libATA Developer's Guide" /><link rel="next" href="ch01.html" title="Chapter&#160;1.&#160;Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">libATA Developer's Guide</th></tr><tr><td width="20%" align="left">&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="ch01.html">Next</a></td></tr></table><hr /></div><div class="book" title="libATA Developer's Guide"><div class="titlepage"><div><div><h1 class="title"><a id="libataDevGuide"></a>libATA Developer's Guide</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Jeff</span> <span class="surname">Garzik</span></h3></div></div></div><div><p class="copyright">Copyright &#169; 2003-2006 Jeff Garzik</p></div><div><div class="legalnotice" title="Legal Notice"><a id="id2882570"></a><p>
   The contents of this file are subject to the Open
   Software License version 1.1 that can be found at
   <a class="ulink" href="http://www.opensource.org/licenses/osl-1.1.txt" target="_top">http://www.opensource.org/licenses/osl-1.1.txt</a> and is included herein
   by reference.
   </p><p>
   Alternatively, the contents of this file may be used under the terms
   of the GNU General Public License version 2 (the "GPL") as distributed
   in the kernel source COPYING file, in which case the provisions of
   the GPL are applicable instead of the above.  If you wish to allow
   the use of your version of this file only under the terms of the
   GPL and not to allow others to use your version of this file under
   the OSL, indicate your decision by deleting the provisions above and
   replace them with the notice and other provisions required by the GPL.
   If you do not delete the provisions above, a recipient may use your
   version of this file under either the OSL or the GPL.
   </p></div></div></div><hr /></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="ch01.html">1. Introduction</a></span></dt><dt><span class="chapter"><a href="ch02.html">2. libata Driver API</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#id2882610">struct ata_port_operations</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#id2882616">Disable ATA port</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2882642">Post-IDENTIFY device configuration</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843368">Set PIO/DMA mode</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843412">Taskfile read/write</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843434">PIO data read/write</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843455">ATA command execute</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843474">Per-cmd ATAPI DMA capabilities filter</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843497">Read specific ATA shadow registers</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843524">Select ATA device on bus</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843550">Private tuning method</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843582">Control PCI IDE BMDMA engine</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2843632">High-level taskfile hooks</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2847997">Exception and probe handling (EH)</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2848084">Hardware interrupt handling</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2848122">SATA phy read/write</a></span></dt><dt><span class="sect2"><a href="ch02.html#id2848142">Init and shutdown</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Error handling</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#id2848207">Origins of commands</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">How commands are issued</a></span></dt><dt><span class="sect1"><a href="ch03s03.html">How commands are processed</a></span></dt><dt><span class="sect1"><a href="ch03s04.html">How commands are completed</a></span></dt><dt><span class="sect1"><a href="ch03s05.html">ata_scsi_error()</a></span></dt><dt><span class="sect1"><a href="ch03s06.html">Problems with the current EH</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4. libata Library</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="re01.html"><span>ata_link_next</span></a></span><span class="refpurpose"> &#8212; 
  link iteration helper
 </span></dt><dt><span class="refentrytitle"><a href="re02.html"><span>ata_dev_next</span></a></span><span class="refpurpose"> &#8212; 
     device iteration helper
 </span></dt><dt><span class="refentrytitle"><a href="re03.html"><span>atapi_cmd_type</span></a></span><span class="refpurpose"> &#8212; 
     Determine ATAPI command type from SCSI opcode
 </span></dt><dt><span class="refentrytitle"><a href="re04.html"><span>ata_tf_to_fis</span></a></span><span class="refpurpose"> &#8212; 
     Convert ATA taskfile to SATA FIS structure
 </span></dt><dt><span class="refentrytitle"><a href="re05.html"><span>ata_tf_from_fis</span></a></span><span class="refpurpose"> &#8212; 
     Convert SATA FIS to ATA taskfile
 </span></dt><dt><span class="refentrytitle"><a href="re06.html"><span>ata_pack_xfermask</span></a></span><span class="refpurpose"> &#8212; 
     Pack pio, mwdma and udma masks into xfer_mask
 </span></dt><dt><span class="refentrytitle"><a href="re07.html"><span>ata_unpack_xfermask</span></a></span><span class="refpurpose"> &#8212; 
     Unpack xfer_mask into pio, mwdma and udma masks
 </span></dt><dt><span class="refentrytitle"><a href="re08.html"><span>ata_xfer_mask2mode</span></a></span><span class="refpurpose"> &#8212; 
     Find matching XFER_* for the given xfer_mask
 </span></dt><dt><span class="refentrytitle"><a href="re09.html"><span>ata_xfer_mode2mask</span></a></span><span class="refpurpose"> &#8212; 
     Find matching xfer_mask for XFER_*
 </span></dt><dt><span class="refentrytitle"><a href="re10.html"><span>ata_xfer_mode2shift</span></a></span><span class="refpurpose"> &#8212; 
     Find matching xfer_shift for XFER_*
 </span></dt><dt><span class="refentrytitle"><a href="re11.html"><span>ata_mode_string</span></a></span><span class="refpurpose"> &#8212; 
     convert xfer_mask to string
 </span></dt><dt><span class="refentrytitle"><a href="re12.html"><span>ata_dev_classify</span></a></span><span class="refpurpose"> &#8212; 
     determine device type based on ATA-spec signature
 </span></dt><dt><span class="refentrytitle"><a href="re13.html"><span>ata_id_string</span></a></span><span class="refpurpose"> &#8212; 
     Convert IDENTIFY DEVICE page into string
 </span></dt><dt><span class="refentrytitle"><a href="re14.html"><span>ata_id_c_string</span></a></span><span class="refpurpose"> &#8212; 
     Convert IDENTIFY DEVICE page into C string
 </span></dt><dt><span class="refentrytitle"><a href="re15.html"><span>ata_id_xfermask</span></a></span><span class="refpurpose"> &#8212; 
     Compute xfermask from the given IDENTIFY data
 </span></dt><dt><span class="refentrytitle"><a href="re16.html"><span>ata_pio_queue_task</span></a></span><span class="refpurpose"> &#8212; 
     Queue port_task
 </span></dt><dt><span class="refentrytitle"><a href="re17.html"><span>ata_pio_need_iordy</span></a></span><span class="refpurpose"> &#8212; 
     check if iordy needed
 </span></dt><dt><span class="refentrytitle"><a href="re18.html"><span>ata_do_dev_read_id</span></a></span><span class="refpurpose"> &#8212; 
     default ID read method
 </span></dt><dt><span class="refentrytitle"><a href="re19.html"><span>ata_cable_40wire</span></a></span><span class="refpurpose"> &#8212; 
     return 40 wire cable type
 </span></dt><dt><span class="refentrytitle"><a href="re20.html"><span>ata_cable_80wire</span></a></span><span class="refpurpose"> &#8212; 
     return 80 wire cable type
 </span></dt><dt><span class="refentrytitle"><a href="re21.html"><span>ata_cable_unknown</span></a></span><span class="refpurpose"> &#8212; 
     return unknown PATA cable.
 </span></dt><dt><span class="refentrytitle"><a href="re22.html"><span>ata_cable_ignore</span></a></span><span class="refpurpose"> &#8212; 
     return ignored PATA cable.
 </span></dt><dt><span class="refentrytitle"><a href="re23.html"><span>ata_cable_sata</span></a></span><span class="refpurpose"> &#8212; 
     return SATA cable type
 </span></dt><dt><span class="refentrytitle"><a href="re24.html"><span>ata_port_probe</span></a></span><span class="refpurpose"> &#8212; 
     Mark port as enabled
 </span></dt><dt><span class="refentrytitle"><a href="re25.html"><span>ata_dev_pair</span></a></span><span class="refpurpose"> &#8212; 
     return other device on cable
 </span></dt><dt><span class="refentrytitle"><a href="re26.html"><span>ata_port_disable</span></a></span><span class="refpurpose"> &#8212; 
     Disable port.
 </span></dt><dt><span class="refentrytitle"><a href="re27.html"><span>sata_set_spd</span></a></span><span class="refpurpose"> &#8212; 
     set SATA spd according to spd limit
 </span></dt><dt><span class="refentrytitle"><a href="re28.html"><span>ata_timing_cycle2mode</span></a></span><span class="refpurpose"> &#8212; 
     find xfer mode for the specified cycle duration
 </span></dt><dt><span class="refentrytitle"><a href="re29.html"><span>ata_do_set_mode</span></a></span><span class="refpurpose"> &#8212; 
     Program timings and issue SET FEATURES - XFER
 </span></dt><dt><span class="refentrytitle"><a href="re30.html"><span>ata_wait_after_reset</span></a></span><span class="refpurpose"> &#8212; 
     wait for link to become ready after reset
 </span></dt><dt><span class="refentrytitle"><a href="re31.html"><span>sata_link_debounce</span></a></span><span class="refpurpose"> &#8212; 
     debounce SATA phy status
 </span></dt><dt><span class="refentrytitle"><a href="re32.html"><span>sata_link_resume</span></a></span><span class="refpurpose"> &#8212; 
     resume SATA link
 </span></dt><dt><span class="refentrytitle"><a href="re33.html"><span>ata_std_prereset</span></a></span><span class="refpurpose"> &#8212; 
     prepare for reset
 </span></dt><dt><span class="refentrytitle"><a href="re34.html"><span>sata_link_hardreset</span></a></span><span class="refpurpose"> &#8212; 
     reset link via SATA phy reset
 </span></dt><dt><span class="refentrytitle"><a href="re35.html"><span>sata_std_hardreset</span></a></span><span class="refpurpose"> &#8212; 
     COMRESET w/o waiting or classification
 </span></dt><dt><span class="refentrytitle"><a href="re36.html"><span>ata_std_postreset</span></a></span><span class="refpurpose"> &#8212; 
     standard postreset callback
 </span></dt><dt><span class="refentrytitle"><a href="re37.html"><span>ata_std_qc_defer</span></a></span><span class="refpurpose"> &#8212; 
     Check whether a qc needs to be deferred
 </span></dt><dt><span class="refentrytitle"><a href="re38.html"><span>ata_sg_init</span></a></span><span class="refpurpose"> &#8212; 
     Associate command with scatter-gather table.
 </span></dt><dt><span class="refentrytitle"><a href="re39.html"><span>ata_qc_complete</span></a></span><span class="refpurpose"> &#8212; 
     Complete an active ATA command
 </span></dt><dt><span class="refentrytitle"><a href="re40.html"><span>ata_qc_complete_multiple</span></a></span><span class="refpurpose"> &#8212; 
     Complete multiple qcs successfully
 </span></dt><dt><span class="refentrytitle"><a href="re41.html"><span>sata_scr_valid</span></a></span><span class="refpurpose"> &#8212; 
     test whether SCRs are accessible
 </span></dt><dt><span class="refentrytitle"><a href="re42.html"><span>sata_scr_read</span></a></span><span class="refpurpose"> &#8212; 
     read SCR register of the specified port
 </span></dt><dt><span class="refentrytitle"><a href="re43.html"><span>sata_scr_write</span></a></span><span class="refpurpose"> &#8212; 
     write SCR register of the specified port
 </span></dt><dt><span class="refentrytitle"><a href="re44.html"><span>sata_scr_write_flush</span></a></span><span class="refpurpose"> &#8212; 
     write SCR register of the specified port and flush
 </span></dt><dt><span class="refentrytitle"><a href="re45.html"><span>ata_link_online</span></a></span><span class="refpurpose"> &#8212; 
     test whether the given link is online
 </span></dt><dt><span class="refentrytitle"><a href="re46.html"><span>ata_link_offline</span></a></span><span class="refpurpose"> &#8212; 
     test whether the given link is offline
 </span></dt><dt><span class="refentrytitle"><a href="re47.html"><span>ata_host_suspend</span></a></span><span class="refpurpose"> &#8212; 
     suspend host
 </span></dt><dt><span class="refentrytitle"><a href="re48.html"><span>ata_host_resume</span></a></span><span class="refpurpose"> &#8212; 
     resume host
 </span></dt><dt><span class="refentrytitle"><a href="re49.html"><span>ata_port_start</span></a></span><span class="refpurpose"> &#8212; 
     Set port up for dma.
 </span></dt><dt><span class="refentrytitle"><a href="re50.html"><span>ata_host_alloc</span></a></span><span class="refpurpose"> &#8212; 
     allocate and init basic ATA host resources
 </span></dt><dt><span class="refentrytitle"><a href="re51.html"><span>ata_host_alloc_pinfo</span></a></span><span class="refpurpose"> &#8212; 
     alloc host and init with port_info array
 </span></dt><dt><span class="refentrytitle"><a href="re52.html"><span>ata_slave_link_init</span></a></span><span class="refpurpose"> &#8212; 
     initialize slave link
 </span></dt><dt><span class="refentrytitle"><a href="re53.html"><span>ata_host_start</span></a></span><span class="refpurpose"> &#8212; 
     start and freeze ports of an ATA host
 </span></dt><dt><span class="refentrytitle"><a href="re54.html"><span>ata_host_init</span></a></span><span class="refpurpose"> &#8212; 
     Initialize a host struct
 </span></dt><dt><span class="refentrytitle"><a href="re55.html"><span>ata_host_register</span></a></span><span class="refpurpose"> &#8212; 
     register initialized ATA host
 </span></dt><dt><span class="refentrytitle"><a href="re56.html"><span>ata_host_activate</span></a></span><span class="refpurpose"> &#8212; 
     start host, request IRQ and register it
 </span></dt><dt><span class="refentrytitle"><a href="re57.html"><span>ata_host_detach</span></a></span><span class="refpurpose"> &#8212; 
     Detach all ports of an ATA host
 </span></dt><dt><span class="refentrytitle"><a href="re58.html"><span>ata_pci_remove_one</span></a></span><span class="refpurpose"> &#8212; 
     PCI layer callback for device removal
 </span></dt><dt><span class="refentrytitle"><a href="re59.html"><span>ata_wait_register</span></a></span><span class="refpurpose"> &#8212; 
     wait until register value changes
 </span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. libata Core Internals</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="re60.html"><span>ata_dev_phys_link</span></a></span><span class="refpurpose"> &#8212; 
  find physical link for a device
 </span></dt><dt><span class="refentrytitle"><a href="re61.html"><span>ata_force_cbl</span></a></span><span class="refpurpose"> &#8212; 
     force cable type according to libata.force
 </span></dt><dt><span class="refentrytitle"><a href="re62.html"><span>ata_force_link_limits</span></a></span><span class="refpurpose"> &#8212; 
     force link limits according to libata.force
 </span></dt><dt><span class="refentrytitle"><a href="re63.html"><span>ata_force_xfermask</span></a></span><span class="refpurpose"> &#8212; 
     force xfermask according to libata.force
 </span></dt><dt><span class="refentrytitle"><a href="re64.html"><span>ata_force_horkage</span></a></span><span class="refpurpose"> &#8212; 
     force horkage according to libata.force
 </span></dt><dt><span class="refentrytitle"><a href="re65.html"><span>ata_rwcmd_protocol</span></a></span><span class="refpurpose"> &#8212; 
     set taskfile r/w commands and protocol
 </span></dt><dt><span class="refentrytitle"><a href="re66.html"><span>ata_tf_read_block</span></a></span><span class="refpurpose"> &#8212; 
     Read block address from ATA taskfile
 </span></dt><dt><span class="refentrytitle"><a href="re67.html"><span>ata_build_rw_tf</span></a></span><span class="refpurpose"> &#8212; 
     Build ATA taskfile for given read/write request
 </span></dt><dt><span class="refentrytitle"><a href="re68.html"><span>ata_dev_enable_pm</span></a></span><span class="refpurpose"> &#8212; 
     enable SATA interface power management
 </span></dt><dt><span class="refentrytitle"><a href="re69.html"><span>ata_dev_disable_pm</span></a></span><span class="refpurpose"> &#8212; 
     disable SATA interface power management
 </span></dt><dt><span class="refentrytitle"><a href="re70.html"><span>ata_read_native_max_address</span></a></span><span class="refpurpose"> &#8212; 
     Read native max address
 </span></dt><dt><span class="refentrytitle"><a href="re71.html"><span>ata_set_max_sectors</span></a></span><span class="refpurpose"> &#8212; 
     Set max sectors
 </span></dt><dt><span class="refentrytitle"><a href="re72.html"><span>ata_hpa_resize</span></a></span><span class="refpurpose"> &#8212; 
     Resize a device with an HPA set
 </span></dt><dt><span class="refentrytitle"><a href="re73.html"><span>ata_dump_id</span></a></span><span class="refpurpose"> &#8212; 
     IDENTIFY DEVICE info debugging output
 </span></dt><dt><span class="refentrytitle"><a href="re74.html"><span>ata_port_flush_task</span></a></span><span class="refpurpose"> &#8212; 
     Flush port_task
 </span></dt><dt><span class="refentrytitle"><a href="re75.html"><span>ata_exec_internal_sg</span></a></span><span class="refpurpose"> &#8212; 
     execute libata internal command
 </span></dt><dt><span class="refentrytitle"><a href="re76.html"><span>ata_exec_internal</span></a></span><span class="refpurpose"> &#8212; 
     execute libata internal command
 </span></dt><dt><span class="refentrytitle"><a href="re77.html"><span>ata_do_simple_cmd</span></a></span><span class="refpurpose"> &#8212; 
     execute simple internal command
 </span></dt><dt><span class="refentrytitle"><a href="re78.html"><span>ata_pio_mask_no_iordy</span></a></span><span class="refpurpose"> &#8212; 
     Return the non IORDY mask
 </span></dt><dt><span class="refentrytitle"><a href="re79.html"><span>ata_dev_read_id</span></a></span><span class="refpurpose"> &#8212; 
     Read ID data from the specified device
 </span></dt><dt><span class="refentrytitle"><a href="re80.html"><span>ata_dev_configure</span></a></span><span class="refpurpose"> &#8212; 
     Configure the specified ATA/ATAPI device
 </span></dt><dt><span class="refentrytitle"><a href="re81.html"><span>ata_bus_probe</span></a></span><span class="refpurpose"> &#8212; 
     Reset and probe ATA bus
 </span></dt><dt><span class="refentrytitle"><a href="re82.html"><span>sata_print_link_status</span></a></span><span class="refpurpose"> &#8212; 
     Print SATA link status
 </span></dt><dt><span class="refentrytitle"><a href="re83.html"><span>sata_down_spd_limit</span></a></span><span class="refpurpose"> &#8212; 
     adjust SATA spd limit downward
 </span></dt><dt><span class="refentrytitle"><a href="re84.html"><span>sata_set_spd_needed</span></a></span><span class="refpurpose"> &#8212; 
     is SATA spd configuration needed
 </span></dt><dt><span class="refentrytitle"><a href="re85.html"><span>ata_down_xfermask_limit</span></a></span><span class="refpurpose"> &#8212; 
     adjust dev xfer masks downward
 </span></dt><dt><span class="refentrytitle"><a href="re86.html"><span>ata_wait_ready</span></a></span><span class="refpurpose"> &#8212; 
     wait for link to become ready
 </span></dt><dt><span class="refentrytitle"><a href="re87.html"><span>ata_dev_same_device</span></a></span><span class="refpurpose"> &#8212; 
     Determine whether new ID matches configured device
 </span></dt><dt><span class="refentrytitle"><a href="re88.html"><span>ata_dev_reread_id</span></a></span><span class="refpurpose"> &#8212; 
     Re-read IDENTIFY data
 </span></dt><dt><span class="refentrytitle"><a href="re89.html"><span>ata_dev_revalidate</span></a></span><span class="refpurpose"> &#8212; 
     Revalidate ATA device
 </span></dt><dt><span class="refentrytitle"><a href="re90.html"><span>ata_is_40wire</span></a></span><span class="refpurpose"> &#8212; 
     check drive side detection
 </span></dt><dt><span class="refentrytitle"><a href="re91.html"><span>cable_is_40wire</span></a></span><span class="refpurpose"> &#8212; 
     40/80/SATA decider
 </span></dt><dt><span class="refentrytitle"><a href="re92.html"><span>ata_dev_xfermask</span></a></span><span class="refpurpose"> &#8212; 
     Compute supported xfermask of the given device
 </span></dt><dt><span class="refentrytitle"><a href="re93.html"><span>ata_dev_set_xfermode</span></a></span><span class="refpurpose"> &#8212; 
     Issue SET FEATURES - XFER MODE command
 </span></dt><dt><span class="refentrytitle"><a href="re94.html"><span>ata_dev_set_feature</span></a></span><span class="refpurpose"> &#8212; 
     Issue SET FEATURES - SATA FEATURES
 </span></dt><dt><span class="refentrytitle"><a href="re95.html"><span>ata_dev_init_params</span></a></span><span class="refpurpose"> &#8212; 
     Issue INIT DEV PARAMS command
 </span></dt><dt><span class="refentrytitle"><a href="re96.html"><span>ata_sg_clean</span></a></span><span class="refpurpose"> &#8212; 
     Unmap DMA memory associated with command
 </span></dt><dt><span class="refentrytitle"><a href="re97.html"><span>atapi_check_dma</span></a></span><span class="refpurpose"> &#8212; 
     Check whether ATAPI DMA can be supported
 </span></dt><dt><span class="refentrytitle"><a href="re98.html"><span>ata_sg_setup</span></a></span><span class="refpurpose"> &#8212; 
     DMA-map the scatter-gather table associated with a command.
 </span></dt><dt><span class="refentrytitle"><a href="re99.html"><span>swap_buf_le16</span></a></span><span class="refpurpose"> &#8212; 
     swap halves of 16-bit words in place
 </span></dt><dt><span class="refentrytitle"><a href="re100.html"><span>ata_qc_new</span></a></span><span class="refpurpose"> &#8212; 
     Request an available ATA command, for queueing
 </span></dt><dt><span class="refentrytitle"><a href="re101.html"><span>ata_qc_new_init</span></a></span><span class="refpurpose"> &#8212; 
     Request an available ATA command, and initialize it
 </span></dt><dt><span class="refentrytitle"><a href="re102.html"><span>ata_qc_free</span></a></span><span class="refpurpose"> &#8212; 
     free unused ata_queued_cmd
 </span></dt><dt><span class="refentrytitle"><a href="re103.html"><span>ata_qc_issue</span></a></span><span class="refpurpose"> &#8212; 
     issue taskfile to device
 </span></dt><dt><span class="refentrytitle"><a href="re104.html"><span>ata_phys_link_online</span></a></span><span class="refpurpose"> &#8212; 
     test whether the given link is online
 </span></dt><dt><span class="refentrytitle"><a href="re105.html"><span>ata_phys_link_offline</span></a></span><span class="refpurpose"> &#8212; 
     test whether the given link is offline
 </span></dt><dt><span class="refentrytitle"><a href="re106.html"><span>ata_dev_init</span></a></span><span class="refpurpose"> &#8212; 
     Initialize an ata_device structure
 </span></dt><dt><span class="refentrytitle"><a href="re107.html"><span>ata_link_init</span></a></span><span class="refpurpose"> &#8212; 
     Initialize an ata_link structure
 </span></dt><dt><span class="refentrytitle"><a href="re108.html"><span>sata_link_init_spd</span></a></span><span class="refpurpose"> &#8212; 
     Initialize link-&gt;sata_spd_limit
 </span></dt><dt><span class="refentrytitle"><a href="re109.html"><span>ata_port_alloc</span></a></span><span class="refpurpose"> &#8212; 
     allocate and initialize basic ATA port resources
 </span></dt><dt><span class="refentrytitle"><a href="re110.html"><span>ata_finalize_port_ops</span></a></span><span class="refpurpose"> &#8212; 
     finalize ata_port_operations
 </span></dt><dt><span class="refentrytitle"><a href="re111.html"><span>ata_port_detach</span></a></span><span class="refpurpose"> &#8212; 
     Detach ATA port in prepration of device removal
 </span></dt></dl></dd><dt><span class="chapter"><a href="ch06.html">6. libata SCSI translation/emulation</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="re112.html"><span>ata_std_bios_param</span></a></span><span class="refpurpose"> &#8212; 
  generic bios head/sector/cylinder calculator used by sd.
 </span></dt><dt><span class="refentrytitle"><a href="re113.html"><span>ata_scsi_slave_config</span></a></span><span class="refpurpose"> &#8212; 
     Set SCSI device attributes
 </span></dt><dt><span class="refentrytitle"><a href="re114.html"><span>ata_scsi_slave_destroy</span></a></span><span class="refpurpose"> &#8212; 
     SCSI device is about to be destroyed
 </span></dt><dt><span class="refentrytitle"><a href="re115.html"><span>ata_scsi_change_queue_depth</span></a></span><span class="refpurpose"> &#8212; 
     SCSI callback for queue depth config
 </span></dt><dt><span class="refentrytitle"><a href="re116.html"><span>ata_scsi_queuecmd</span></a></span><span class="refpurpose"> &#8212; 
     Issue SCSI cdb to libata-managed device
 </span></dt><dt><span class="refentrytitle"><a href="re117.html"><span>ata_scsi_simulate</span></a></span><span class="refpurpose"> &#8212; 
     simulate SCSI command on ATA device
 </span></dt><dt><span class="refentrytitle"><a href="re118.html"><span>ata_sas_port_alloc</span></a></span><span class="refpurpose"> &#8212; 
     Allocate port for a SAS attached SATA device
 </span></dt><dt><span class="refentrytitle"><a href="re119.html"><span>ata_sas_port_start</span></a></span><span class="refpurpose"> &#8212; 
     Set port up for dma.
 </span></dt><dt><span class="refentrytitle"><a href="re120.html"><span>ata_sas_port_stop</span></a></span><span class="refpurpose"> &#8212; 
     Undo <code class="function">ata_sas_port_start</code>
 </span></dt><dt><span class="refentrytitle"><a href="re121.html"><span>ata_sas_port_init</span></a></span><span class="refpurpose"> &#8212; 
     Initialize a SATA device
 </span></dt><dt><span class="refentrytitle"><a href="re122.html"><span>ata_sas_port_destroy</span></a></span><span class="refpurpose"> &#8212; 
     Destroy a SATA port allocated by ata_sas_port_alloc
 </span></dt><dt><span class="refentrytitle"><a href="re123.html"><span>ata_sas_slave_configure</span></a></span><span class="refpurpose"> &#8212; 
     Default slave_config routine for libata devices
 </span></dt><dt><span class="refentrytitle"><a href="re124.html"><span>ata_sas_queuecmd</span></a></span><span class="refpurpose"> &#8212; 
     Issue SCSI cdb to libata-managed device
 </span></dt><dt><span class="refentrytitle"><a href="re125.html"><span>ata_get_identity</span></a></span><span class="refpurpose"> &#8212; 
  Handler for HDIO_GET_IDENTITY ioctl
 </span></dt><dt><span class="refentrytitle"><a href="re126.html"><span>ata_cmd_ioctl</span></a></span><span class="refpurpose"> &#8212; 
     Handler for HDIO_DRIVE_CMD ioctl
 </span></dt><dt><span class="refentrytitle"><a href="re127.html"><span>ata_task_ioctl</span></a></span><span class="refpurpose"> &#8212; 
     Handler for HDIO_DRIVE_TASK ioctl
 </span></dt><dt><span class="refentrytitle"><a href="re128.html"><span>ata_scsi_qc_new</span></a></span><span class="refpurpose"> &#8212; 
     acquire new ata_queued_cmd reference
 </span></dt><dt><span class="refentrytitle"><a href="re129.html"><span>ata_dump_status</span></a></span><span class="refpurpose"> &#8212; 
     user friendly display of error info
 </span></dt><dt><span class="refentrytitle"><a href="re130.html"><span>ata_to_sense_error</span></a></span><span class="refpurpose"> &#8212; 
     convert ATA error to SCSI error
 </span></dt><dt><span class="refentrytitle"><a href="re131.html"><span>ata_gen_ata_sense</span></a></span><span class="refpurpose"> &#8212; 
     generate a SCSI fixed sense block
 </span></dt><dt><span class="refentrytitle"><a href="re132.html"><span>atapi_drain_needed</span></a></span><span class="refpurpose"> &#8212; 
     Check whether data transfer may overflow
 </span></dt><dt><span class="refentrytitle"><a href="re133.html"><span>ata_scsi_start_stop_xlat</span></a></span><span class="refpurpose"> &#8212; 
     Translate SCSI START STOP UNIT command
 </span></dt><dt><span class="refentrytitle"><a href="re134.html"><span>ata_scsi_flush_xlat</span></a></span><span class="refpurpose"> &#8212; 
     Translate SCSI SYNCHRONIZE CACHE command
 </span></dt><dt><span class="refentrytitle"><a href="re135.html"><span>scsi_6_lba_len</span></a></span><span class="refpurpose"> &#8212; 
     Get LBA and transfer length
 </span></dt><dt><span class="refentrytitle"><a href="re136.html"><span>scsi_10_lba_len</span></a></span><span class="refpurpose"> &#8212; 
     Get LBA and transfer length
 </span></dt><dt><span class="refentrytitle"><a href="re137.html"><span>scsi_16_lba_len</span></a></span><span class="refpurpose"> &#8212; 
     Get LBA and transfer length
 </span></dt><dt><span class="refentrytitle"><a href="re138.html"><span>ata_scsi_verify_xlat</span></a></span><span class="refpurpose"> &#8212; 
     Translate SCSI VERIFY command into an ATA one
 </span></dt><dt><span class="refentrytitle"><a href="re139.html"><span>ata_scsi_rw_xlat</span></a></span><span class="refpurpose"> &#8212; 
     Translate SCSI r/w command into an ATA one
 </span></dt><dt><span class="refentrytitle"><a href="re140.html"><span>ata_scsi_translate</span></a></span><span class="refpurpose"> &#8212; 
     Translate then issue SCSI command to ATA device
 </span></dt><dt><span class="refentrytitle"><a href="re141.html"><span>ata_scsi_rbuf_get</span></a></span><span class="refpurpose"> &#8212; 
     Map response buffer.
 </span></dt><dt><span class="refentrytitle"><a href="re142.html"><span>ata_scsi_rbuf_put</span></a></span><span class="refpurpose"> &#8212; 
     Unmap response buffer.
 </span></dt><dt><span class="refentrytitle"><a href="re143.html"><span>ata_scsi_rbuf_fill</span></a></span><span class="refpurpose"> &#8212; 
     wrapper for SCSI command simulators
 </span></dt><dt><span class="refentrytitle"><a href="re144.html"><span>ata_scsiop_inq_std</span></a></span><span class="refpurpose"> &#8212; 
     Simulate INQUIRY command
 </span></dt><dt><span class="refentrytitle"><a href="re145.html"><span>ata_scsiop_inq_00</span></a></span><span class="refpurpose"> &#8212; 
     Simulate INQUIRY VPD page 0, list of pages
 </span></dt><dt><span class="refentrytitle"><a href="re146.html"><span>ata_scsiop_inq_80</span></a></span><span class="refpurpose"> &#8212; 
     Simulate INQUIRY VPD page 80, device serial number
 </span></dt><dt><span class="refentrytitle"><a href="re147.html"><span>ata_scsiop_inq_83</span></a></span><span class="refpurpose"> &#8212; 
     Simulate INQUIRY VPD page 83, device identity
 </span></dt><dt><span class="refentrytitle"><a href="re148.html"><span>ata_scsiop_inq_89</span></a></span><span class="refpurpose"> &#8212; 
     Simulate INQUIRY VPD page 89, ATA info
 </span></dt><dt><span class="refentrytitle"><a href="re149.html"><span>ata_scsiop_noop</span></a></span><span class="refpurpose"> &#8212; 
     Command handler that simply returns success.
 </span></dt><dt><span class="refentrytitle"><a href="re150.html"><span>ata_msense_caching</span></a></span><span class="refpurpose"> &#8212; 
     Simulate MODE SENSE caching info page
 </span></dt><dt><span class="refentrytitle"><a href="re151.html"><span>ata_msense_ctl_mode</span></a></span><span class="refpurpose"> &#8212; 
     Simulate MODE SENSE control mode page
 </span></dt><dt><span class="refentrytitle"><a href="re152.html"><span>ata_msense_rw_recovery</span></a></span><span class="refpurpose"> &#8212; 
     Simulate MODE SENSE r/w error recovery page
 </span></dt><dt><span class="refentrytitle"><a href="re153.html"><span>ata_scsiop_mode_sense</span></a></span><span class="refpurpose"> &#8212; 
     Simulate MODE SENSE 6, 10 commands
 </span></dt><dt><span class="refentrytitle"><a href="re154.html"><span>ata_scsiop_read_cap</span></a></span><span class="refpurpose"> &#8212; 
     Simulate READ CAPACITY[ 16] commands
 </span></dt><dt><span class="refentrytitle"><a href="re155.html"><span>ata_scsiop_report_luns</span></a></span><span class="refpurpose"> &#8212; 
     Simulate REPORT LUNS command
 </span></dt><dt><span class="refentrytitle"><a href="re156.html"><span>atapi_xlat</span></a></span><span class="refpurpose"> &#8212; 
     Initialize PACKET taskfile
 </span></dt><dt><span class="refentrytitle"><a href="re157.html"><span>ata_scsi_find_dev</span></a></span><span class="refpurpose"> &#8212; 
     lookup ata_device from scsi_cmnd
 </span></dt><dt><span class="refentrytitle"><a href="re158.html"><span>ata_scsi_pass_thru</span></a></span><span class="refpurpose"> &#8212; 
     convert ATA pass-thru CDB to taskfile
 </span></dt><dt><span class="refentrytitle"><a href="re159.html"><span>ata_get_xlat_func</span></a></span><span class="refpurpose"> &#8212; 
     check if SCSI to ATA translation is possible
 </span></dt><dt><span class="refentrytitle"><a href="re160.html"><span>ata_scsi_dump_cdb</span></a></span><span class="refpurpose"> &#8212; 
     dump SCSI command contents to dmesg
 </span></dt><dt><span class="refentrytitle"><a href="re161.html"><span>ata_scsi_offline_dev</span></a></span><span class="refpurpose"> &#8212; 
     offline attached SCSI device
 </span></dt><dt><span class="refentrytitle"><a href="re162.html"><span>ata_scsi_remove_dev</span></a></span><span class="refpurpose"> &#8212; 
     remove attached SCSI device
 </span></dt><dt><span class="refentrytitle"><a href="re163.html"><span>ata_scsi_media_change_notify</span></a></span><span class="refpurpose"> &#8212; 
     send media change event
 </span></dt><dt><span class="refentrytitle"><a href="re164.html"><span>ata_scsi_hotplug</span></a></span><span class="refpurpose"> &#8212; 
     SCSI part of hotplug
 </span></dt><dt><span class="refentrytitle"><a href="re165.html"><span>ata_scsi_user_scan</span></a></span><span class="refpurpose"> &#8212; 
     indication for user-initiated bus scan
 </span></dt><dt><span class="refentrytitle"><a href="re166.html"><span>ata_scsi_dev_rescan</span></a></span><span class="refpurpose"> &#8212; 
     initiate <code class="function">scsi_rescan_device</code>
 </span></dt></dl></dd><dt><span class="chapter"><a href="ch07.html">7. ATA errors and exceptions</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch07.html#excat">Exception categories</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch07.html#excatHSMviolation">HSM violation</a></span></dt><dt><span class="sect2"><a href="ch07.html#excatDevErr">ATA/ATAPI device error (non-NCQ / non-CHECK CONDITION)</a></span></dt><dt><span class="sect2"><a href="ch07.html#excatATAPIcc">ATAPI device CHECK CONDITION</a></span></dt><dt><span class="sect2"><a href="ch07.html#excatNCQerr">ATA device error (NCQ)</a></span></dt><dt><span class="sect2"><a href="ch07.html#excatATAbusErr">ATA bus error</a></span></dt><dt><span class="sect2"><a href="ch07.html#excatPCIbusErr">PCI bus error</a></span></dt><dt><span class="sect2"><a href="ch07.html#excatLateCompletion">Late completion</a></span></dt><dt><span class="sect2"><a href="ch07.html#excatUnknown">Unknown error (timeout)</a></span></dt><dt><span class="sect2"><a href="ch07.html#excatHoplugPM">Hotplug and power management exceptions</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch07s02.html">EH recovery actions</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch07s02.html#exrecClr">Clearing error condition</a></span></dt><dt><span class="sect2"><a href="ch07s02.html#exrecRst">Reset</a></span></dt><dt><span class="sect2"><a href="ch07s02.html#exrecReconf">Reconfigure transport</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch08.html">8. ata_piix Internals</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="re167.html"><span>ich_pata_cable_detect</span></a></span><span class="refpurpose"> &#8212; 
  Probe host controller cable detect info
 </span></dt><dt><span class="refentrytitle"><a href="re168.html"><span>piix_pata_prereset</span></a></span><span class="refpurpose"> &#8212; 
     prereset for PATA host controller
 </span></dt><dt><span class="refentrytitle"><a href="re169.html"><span>piix_set_piomode</span></a></span><span class="refpurpose"> &#8212; 
     Initialize host controller PATA PIO timings
 </span></dt><dt><span class="refentrytitle"><a href="re170.html"><span>do_pata_set_dmamode</span></a></span><span class="refpurpose"> &#8212; 
     Initialize host controller PATA PIO timings
 </span></dt><dt><span class="refentrytitle"><a href="re171.html"><span>piix_set_dmamode</span></a></span><span class="refpurpose"> &#8212; 
     Initialize host controller PATA DMA timings
 </span></dt><dt><span class="refentrytitle"><a href="re172.html"><span>ich_set_dmamode</span></a></span><span class="refpurpose"> &#8212; 
     Initialize host controller PATA DMA timings
 </span></dt><dt><span class="refentrytitle"><a href="re173.html"><span>piix_check_450nx_errata</span></a></span><span class="refpurpose"> &#8212; 
     Check for problem 450NX setup
 </span></dt><dt><span class="refentrytitle"><a href="re174.html"><span>piix_init_one</span></a></span><span class="refpurpose"> &#8212; 
     Register PIIX ATA PCI device with kernel services
 </span></dt></dl></dd><dt><span class="chapter"><a href="ch09.html">9. sata_sil Internals</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="re175.html"><span>sil_set_mode</span></a></span><span class="refpurpose"> &#8212; 
  wrap set_mode functions
 </span></dt><dt><span class="refentrytitle"><a href="re176.html"><span>sil_dev_config</span></a></span><span class="refpurpose"> &#8212; 
     Apply device/host-specific errata fixups
 </span></dt></dl></dd><dt><span class="chapter"><a href="ch10.html">10. Thanks</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="ch01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right" valign="top">&#160;Chapter&#160;1.&#160;Introduction</td></tr></table></div></body></html>