📄 ata_8h-source.html
字号:
00092 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKPARM_SECTORS 0x11 // number of sectors per head per cylinder</span>00093 <span class="preprocessor"></span>00094 <span class="comment">// ATA Identity fields</span>00095 <span class="comment">// all offsets refer to word offset (2 byte increments)</span>00096 <span class="preprocessor">#define ATA_IDENT_DEVICETYPE 0 // specifies ATA/ATAPI, removable/non-removable</span>00097 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_CYLINDERS 1 // number of logical cylinders</span>00098 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_HEADS 3 // number of logical heads</span>00099 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_SECTORS 6 // number of sectors per track</span>00100 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_SERIAL 10 // drive model name (20 characters)</span>00101 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_MODEL 27 // drive model name (40 characters)</span>00102 <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>00103 <span class="preprocessor"></span><span class="preprocessor">#define ATA_IDENT_LBASECTORS 60 // number of sectors in LBA translation mode</span>00104 <span class="preprocessor"></span>00105 <span class="comment">// drive mode defines (for ataSetDrivePowerMode() )</span>00106 <span class="preprocessor">#define ATA_DISKMODE_SPINDOWN 0</span>00107 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKMODE_SPINUP 1</span>00108 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKMODE_SETTIMEOUT 2</span>00109 <span class="preprocessor"></span><span class="preprocessor">#define ATA_DISKMODE_SLEEP 3</span>00110 <span class="preprocessor"></span>00111 <span class="comment">// typedefs</span>00112 <span class="comment">// drive info structure</span>00113 <span class="keyword">typedef</span> <span class="keyword">struct </span>00114 <span class="keyword"></span>{00115 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cylinders;00116 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> heads;00117 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sectors;00118 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> sizeinsectors;00119 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> LBAsupport;00120 <span class="keywordtype">char</span> model[41];00121 } typeDriveInfo;00122 00123 00124 <span class="comment">// Prototypes</span>00125 <span class="keywordtype">void</span> ataInit(<span class="keywordtype">void</span>);00126 <span class="keywordtype">void</span> ataDriveInit(<span class="keywordtype">void</span>);00127 <span class="keywordtype">void</span> ataDriveSelect(u08 DriveNo);00128 <span class="keywordtype">void</span> ataSetDrivePowerMode(u08 DriveNo, u08 mode, u08 timeout);00129 u08 ataReadByte(u08 reg);00130 <span class="keywordtype">void</span> ataWriteByte(u08 reg, u08 data);00131 <span class="keywordtype">void</span> ataShowRegisters(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> DriveNo);00132 u08 ataSWReset(<span class="keywordtype">void</span>);00133 <span class="keywordtype">void</span> ataDiskErr(<span class="keywordtype">void</span>);00134 <span class="keywordtype">void</span> ataPrintSector( u08 *Buffer);00135 <span class="keywordtype">void</span> ataReadDataBuffer(u08 *Buffer, u16 numBytes);00136 <span class="keywordtype">void</span> ataWriteDataBuffer(u08 *Buffer, u16 numBytes);00137 u08 ataStatusWait(u08 mask, u08 waitStatus);00138 00139 <span class="comment">// read and write routines for CHS based drives</span>00140 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataReadSectorsCHS( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00141 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Head, 00142 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Track,00143 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Sector,00144 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00145 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00146 00147 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataWriteSectorsCHS( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00148 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Head, 00149 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Track,00150 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Sector,00151 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00152 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00153 00154 <span class="comment">// read and write routines for LBA based drives</span>00155 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataReadSectorsLBA( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00156 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00157 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00158 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00159 00160 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataWriteSectorsLBA( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00161 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00162 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00163 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00164 00165 <span class="comment">// generic read and write routines using LBA</span>00166 <span class="comment">// uses native or translated LBA addressing</span>00167 <span class="comment">// given autodetected drive type</span>00168 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataReadSectors( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00169 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00170 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00171 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00172 00173 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ataWriteSectors( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> Drive, 00174 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> lba,00175 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numsectors,00176 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Buffer);00177 00178 <span class="comment">//unsigned char IdentifyDrive(unsigned char DriveNo, unsigned char *Buffer, tdefDriveInfo *DriveInfo);</span>00179 <span class="comment">//unsigned char SetMode(unsigned char DriveNo, unsigned char Mode, unsigned char PwrDown);</span>00180 <span class="comment">//unsigned char ATA_Idle(unsigned char Drive);</span>00181 00182 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Oct 15 03:50:21 2004 for Procyon AVRlib 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 + -