32.html
来自「linux 0.11中文版 有注释」· HTML 代码 · 共 108 行
HTML
108 行
<html>
<head>
<title>include/linux/hdreg.h</title>
<meta name='robots' content='noindex,nofollow'>
<meta name='generator' content='GLOBAL-5.4.1'>
</head>
<body text='#191970' bgcolor='#f5f5dc' vlink='gray'>
<a name='TOP'><h2><a href='../mains.html'>root</a>/<a href='../files/99.html'>include</a>/<a href='../files/101.html'>linux</a>/hdreg.h</h2>
<i><font color='green'>/* [<][>][^][v][top]<a href='#BOTTOM'>[bottom]</a><a href='../mains.html'>[index]</a><a href='../help.html'>[help]</a> */</font></i>
<hr>
<h2><a href='56.html#L26' title='Included from 26 in kernel/blk_drv/hd.c.'>INCLUDED FROM</a></h2>
<hr>
<pre>
<a name='L1'><i><font color='green'>/*</font></i>
<a name='L2'><i><font color='green'>* This file contains some defines for the AT-hd-controller.</font></i>
<a name='L3'><i><font color='green'>* Various sources. Check out some definitions (see comments with</font></i>
<a name='L4'><i><font color='green'>* a ques).</font></i>
<a name='L5'><i><font color='green'>*/</font></i>
<a name='L6'><i><font color='green'>/*</font></i>
<a name='L7'><i><font color='green'>* 本文件含有一些AT 硬盘控制器的定义。来自各种资料。请查证某些</font></i>
<a name='L8'><i><font color='green'>* 定义(带有问号的注释)。</font></i>
<a name='L9'><i><font color='green'>*/</font></i>
<a name='L10'><font color='darkred'>#ifndef</font> <a href='../S/32.html#L11' title='Defined at 11 in include/linux/hdreg.h.'>_HDREG_H</a>
<a name='L11'><font color='darkred'>#define</font> <a href='../S/32.html#L10' title='Refered from 10 in include/linux/hdreg.h.'>_HDREG_H</a>
<a name='L12'>
<a name='L13'><i><font color='green'>/* Hd controller regs. Ref: IBM AT Bios-listing */</font></i>
<a name='L14'><i><font color='green'>/* 硬盘控制器寄存器端口。参见:IBM AT Bios 程序 */</font></i>
<a name='L15'><font color='darkred'>#define</font> <a href='../R/83.html' title='Multiple refered from 4 places.'>HD_DATA</a> 0x1f0 <i><font color='green'>/* _CTL when writing */</font></i>
<a name='L16'><font color='darkred'>#define</font> <a href='../R/84.html' title='Multiple refered from 3 places.'>HD_ERROR</a> 0x1f1 <i><font color='green'>/* see err-bits */</font></i>
<a name='L17'><font color='darkred'>#define</font> HD_NSECTOR 0x1f2 <i><font color='green'>/* nr of sectors to read/write */</font></i>
<a name='L18'><font color='darkred'>#define</font> HD_SECTOR 0x1f3 <i><font color='green'>/* starting sector */</font></i>
<a name='L19'><font color='darkred'>#define</font> HD_LCYL 0x1f4 <i><font color='green'>/* starting cylinder */</font></i>
<a name='L20'><font color='darkred'>#define</font> HD_HCYL 0x1f5 <i><font color='green'>/* high byte of starting cyl */</font></i>
<a name='L21'><font color='darkred'>#define</font> HD_CURRENT 0x1f6 <i><font color='green'>/* 101dhhhh , d=drive, hhhh=head */</font></i>
<a name='L22'><font color='darkred'>#define</font> <a href='../R/85.html' title='Multiple refered from 6 places.'>HD_STATUS</a> 0x1f7 <i><font color='green'>/* see status-bits */</font></i>
<a name='L23'><font color='darkred'>#define</font> HD_PRECOMP <a href='../S/32.html#L16' title='Defined at 16 in include/linux/hdreg.h.'>HD_ERROR</a> <i><font color='green'>/* same io address, read=error, write=precomp */</font></i>
<a name='L24'><font color='darkred'>#define</font> HD_COMMAND <a href='../S/32.html#L22' title='Defined at 22 in include/linux/hdreg.h.'>HD_STATUS</a> <i><font color='green'>/* same io address, read=status, write=cmd */</font></i>
<a name='L25'>
<a name='L26'><font color='darkred'>#define</font> <a href='../R/82.html' title='Multiple refered from 3 places.'>HD_CMD</a> 0x3f6 <i><font color='green'>// 控制寄存器端口。</font></i>
<a name='L27'>
<a name='L28'><i><font color='green'>/* Bits of HD_STATUS */</font></i>
<a name='L29'><i><font color='green'>/* 硬盘状态寄存器各位的定义(HD_STATUS) */</font></i>
<a name='L30'><font color='darkred'>#define</font> <a href='../S/56.html#L241' title='Refered from 241 in kernel/blk_drv/hd.c.'>ERR_STAT</a> 0x01 <i><font color='green'>// 命令执行错误。</font></i>
<a name='L31'><font color='darkred'>#define</font> INDEX_STAT 0x02 <i><font color='green'>// 收到索引。</font></i>
<a name='L32'><font color='darkred'>#define</font> ECC_STAT 0x04 <i><font color='green'>/* Corrected error */</font></i> <i><font color='green'>// ECC 校验错。</font></i>
<a name='L33'><font color='darkred'>#define</font> <a href='../S/56.html#L442' title='Refered from 442 in kernel/blk_drv/hd.c.'>DRQ_STAT</a> 0x08 <i><font color='green'>// 请求服务。</font></i>
<a name='L34'><font color='darkred'>#define</font> <a href='../R/215.html' title='Multiple refered from 4 places.'>SEEK_STAT</a> 0x10 <i><font color='green'>// 寻道结束。</font></i>
<a name='L35'><font color='darkred'>#define</font> <a href='../S/56.html#L241' title='Refered from 241 in kernel/blk_drv/hd.c.'>WRERR_STAT</a> 0x20 <i><font color='green'>// 驱动器故障。</font></i>
<a name='L36'><font color='darkred'>#define</font> <a href='../R/210.html' title='Multiple refered from 5 places.'>READY_STAT</a> 0x40 <i><font color='green'>// 驱动器准备好(就绪)。</font></i>
<a name='L37'><font color='darkred'>#define</font> <a href='../R/10.html' title='Multiple refered from 3 places.'>BUSY_STAT</a> 0x80 <i><font color='green'>// 控制器忙碌。</font></i>
<a name='L38'>
<a name='L39'><i><font color='green'>/* Values for HD_COMMAND */</font></i>
<a name='L40'><i><font color='green'>/* 硬盘命令值(HD_CMD) */</font></i>
<a name='L41'><font color='darkred'>#define</font> <a href='../S/56.html#L434' title='Refered from 434 in kernel/blk_drv/hd.c.'>WIN_RESTORE</a> 0x10 <i><font color='green'>// 驱动器重新校正(驱动器复位)。</font></i>
<a name='L42'><font color='darkred'>#define</font> <a href='../S/56.html#L456' title='Refered from 456 in kernel/blk_drv/hd.c.'>WIN_READ</a> 0x20 <i><font color='green'>// 读扇区。</font></i>
<a name='L43'><font color='darkred'>#define</font> <a href='../S/56.html#L441' title='Refered from 441 in kernel/blk_drv/hd.c.'>WIN_WRITE</a> 0x30 <i><font color='green'>// 写扇区。</font></i>
<a name='L44'><font color='darkred'>#define</font> WIN_VERIFY 0x40 <i><font color='green'>// 扇区检验。</font></i>
<a name='L45'><font color='darkred'>#define</font> WIN_FORMAT 0x50 <i><font color='green'>// 格式化磁道。</font></i>
<a name='L46'><font color='darkred'>#define</font> WIN_INIT 0x60 <i><font color='green'>// 控制器初始化。</font></i>
<a name='L47'><font color='darkred'>#define</font> WIN_SEEK 0x70 <i><font color='green'>// 寻道。</font></i>
<a name='L48'><font color='darkred'>#define</font> WIN_DIAGNOSE 0x90 <i><font color='green'>// 控制器诊断。</font></i>
<a name='L49'><font color='darkred'>#define</font> <a href='../S/56.html#L314' title='Refered from 314 in kernel/blk_drv/hd.c.'>WIN_SPECIFY</a> 0x91 <i><font color='green'>// 建立驱动器参数。</font></i>
<a name='L50'>
<a name='L51'><i><font color='green'>/* Bits for HD_ERROR */</font></i>
<a name='L52'><i><font color='green'>/* 错误寄存器各比特位的含义(HD_ERROR) */</font></i>
<a name='L53'><i><font color='green'>// 执行控制器诊断命令时含义与其它命令时的不同。下面分别列出:</font></i>
<a name='L54'><i><font color='green'>// ==================================================</font></i>
<a name='L55'><i><font color='green'>// 诊断命令时 其它命令时</font></i>
<a name='L56'><i><font color='green'>// --------------------------------------------------</font></i>
<a name='L57'><i><font color='green'>// 0x01 无错误 数据标志丢失</font></i>
<a name='L58'><i><font color='green'>// 0x02 控制器出错 磁道0 错</font></i>
<a name='L59'><i><font color='green'>// 0x03 扇区缓冲区错</font></i>
<a name='L60'><i><font color='green'>// 0x04 ECC 部件错 命令放弃</font></i>
<a name='L61'><i><font color='green'>// 0x05 控制处理器错</font></i>
<a name='L62'><i><font color='green'>// 0x10 ID 未找到</font></i>
<a name='L63'><i><font color='green'>// 0x40 ECC 错误</font></i>
<a name='L64'><i><font color='green'>// 0x80 坏扇区</font></i>
<a name='L65'><i><font color='green'>//---------------------------------------------------</font></i>
<a name='L66'><font color='darkred'>#define</font> MARK_ERR 0x01 <i><font color='green'>/* Bad address mark ? */</font></i>
<a name='L67'><font color='darkred'>#define</font> TRK0_ERR 0x02 <i><font color='green'>/* couldn't find track 0 */</font></i>
<a name='L68'><font color='darkred'>#define</font> ABRT_ERR 0x04 <i><font color='green'>/* ? */</font></i>
<a name='L69'><font color='darkred'>#define</font> ID_ERR 0x10 <i><font color='green'>/* ? */</font></i>
<a name='L70'><font color='darkred'>#define</font> ECC_ERR 0x40 <i><font color='green'>/* ? */</font></i>
<a name='L71'><font color='darkred'>#define</font> BBD_ERR 0x80 <i><font color='green'>/* ? */</font></i>
<a name='L72'>
<a name='L73'><i><font color='green'>// 硬盘分区表结构。参见下面列表后信息。</font></i>
<a name='L74'><b>struct</b> partition
<a name='L75'><font color='red'>{</font>
<a name='L76'> <b>unsigned</b> <b>char</b> boot_ind; <i><font color='green'>/* 0x80 - active (unused) */</font></i>
<a name='L77'> <b>unsigned</b> <b>char</b> head; <i><font color='green'>/* ? */</font></i>
<a name='L78'> <b>unsigned</b> <b>char</b> sector; <i><font color='green'>/* ? */</font></i>
<a name='L79'> <b>unsigned</b> <b>char</b> cyl; <i><font color='green'>/* ? */</font></i>
<a name='L80'> <b>unsigned</b> <b>char</b> sys_ind; <i><font color='green'>/* ? */</font></i>
<a name='L81'> <b>unsigned</b> <b>char</b> end_head; <i><font color='green'>/* ? */</font></i>
<a name='L82'> <b>unsigned</b> <b>char</b> end_sector; <i><font color='green'>/* ? */</font></i>
<a name='L83'> <b>unsigned</b> <b>char</b> end_cyl; <i><font color='green'>/* ? */</font></i>
<a name='L84'> <b>unsigned</b> <b>int</b> start_sect; <i><font color='green'>/* starting sector counting from 0 */</font></i>
<a name='L85'> <b>unsigned</b> <b>int</b> nr_sects; <i><font color='green'>/* nr of sectors in partition */</font></i>
<a name='L86'><font color='red'>}</font>;
<a name='L87'>
<a name='L88'><font color='darkred'>#endif</font>
</pre>
<hr>
<a name='BOTTOM'>
<i><font color='green'>/* [<][>][^][v]<a href='#TOP'>[top]</a>[bottom]<a href='../mains.html'>[index]</a><a href='../help.html'>[help]</a> */</font></i>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?