📄 ata_8h-source.html
字号:
00085 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_SECTORS 6 // number of sectors per track</span>00086 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_SERIAL 10 // drive model name (20 characters)</span>00087 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_MODEL 27 // drive model name (40 characters)</span>00088 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_FIELDVALID 53 // indicates field validity of higher words (bit0: words54-58, bit1: words 64-70)</span>00089 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_LBASECTORS 60 // number of sectors in LBA translation mode</span>00090 <span class="preprocessor"></span>00091 <span class="comment">// drive mode defines (for ataSetDrivePowerMode() )</span>00092 <span class="preprocessor">#define ATA_DISKMODE_SPINDOWN 0</span>00093 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKMODE_SPINUP 1</span>00094 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKMODE_SETTIMEOUT 2</span>00095 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKMODE_SLEEP 3</span>00096 <span class="preprocessor"></span>00097 <span class="comment">// typedefs</span>00098 <span class="comment">// drive info structure</span>00099 <span class="keyword">typedef</span> <span class="keyword">struct </span>00100 <span class="keyword"></span>{00101 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cylinders;00102 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> heads;00103 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sectors;00104 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sizeinsectors;00105 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> LBAsupport;00106 <span class="keywordtype">char</span> model[41];00107 } typeDriveInfo;00108 00109 00110 <span class="comment">// Prototypes</span>00111 <span class="keywordtype">void</span> ataInit(<span class="keywordtype">void</span>);00112 <span class="keywordtype">void</span> ataDriveInit(<span class="keywordtype">void</span>);00113 <span class="keywordtype">void</span> ataDriveSelect(u08 DriveNo);00114 <span class="keywordtype">void</span> ataSetDrivePowerMode(u08 DriveNo, u08 mode, u08 timeout);00115 u08 ataReadByte(u16 reg);00116 <span class="keywordtype">void</span> ataWriteByte(u16 reg, u08 data);00117 <span class="keywordtype">void</span> ataShowRegisters(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> DriveNo);00118 u08 ataSWReset(<span class="keywordtype">void</span>);00119 <span class="keywordtype">void</span> ataDiskErr(<span class="keywordtype">void</span>);00120 <span class="keywordtype">void</span> ataPrintSector( u08 *Buffer);00121 <span class="keywordtype">void</span> ataReadDataBuffer(u08 *Buffer, u16 numBytes);00122 <span class="keywordtype">void</span> ataWriteDataBuffer(u08 *Buffer, u16 numBytes);00123 u08 ataStatusWait(u08 mask, u08 waitStatus);00124 00125 <span class="comment">// read and write routines for CHS based drives</span>00126 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataReadSectorsCHS( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00127 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Head, 00128 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Track,00129 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Sector,00130 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00131 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00132 00133 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataWriteSectorsCHS( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00134 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Head, 00135 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Track,00136 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Sector,00137 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00138 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00139 00140 <span class="comment">// read and write routines for LBA based drives</span>00141 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataReadSectorsLBA( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00142 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00143 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00144 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00145 00146 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataWriteSectorsLBA( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00147 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00148 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00149 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00150 00151 <span class="comment">// generic read and write routines using LBA</span>00152 <span class="comment">// uses native or translated LBA addressing</span>00153 <span class="comment">// given autodetected drive type</span>00154 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataReadSectors( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00155 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00156 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00157 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00158 00159 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataWriteSectors( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00160 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00161 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00162 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00163 00164 <span class="comment">//unsigned char IdentifyDrive(unsigned char DriveNo, unsigned char *Buffer, tdefDriveInfo *DriveInfo);</span>00165 <span class="comment">//unsigned char SetMode(unsigned char DriveNo, unsigned char Mode, unsigned char PwrDown);</span>00166 <span class="comment">//unsigned char ATA_Idle(unsigned char Drive);</span>00167 00168 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 13 03:38:11 2004 for Procyon ARMlib-LPC2100 by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.6 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -