⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cross reference -onnv-onnv-gate-usr-src-cmd-cdrw-mmc_c.htm

📁 光驱cdrom读写源代码,scsi命令解析
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<A class=l name=195>    195 </A>		<A href="http://cvs.opensolaris.org/source/s?defs=uint16_t">uint16_t</A> <A href="http://cvs.opensolaris.org/source/s?defs=toc_size">toc_size</A>;
<A class=l name=196>    196 </A>
<A class=l name=197>    197 </A>		<A href="http://cvs.opensolaris.org/source/s?defs=toc_size">toc_size</A> = (((<A href="http://cvs.opensolaris.org/source/s?defs=uint16_t">uint16_t</A>)(<A href="http://cvs.opensolaris.org/source/s?defs=buf">buf</A>[<SPAN class=n>3</SPAN>] + <SPAN class=n>1</SPAN>)) * <SPAN class=n>8</SPAN>) + <SPAN class=n>2</SPAN>;
<A class=l name=198>    198 </A>		<A href="http://cvs.opensolaris.org/source/s?defs=load_scsi16">load_scsi16</A>(<A href="http://cvs.opensolaris.org/source/s?defs=buf">buf</A>, <A href="http://cvs.opensolaris.org/source/s?defs=toc_size">toc_size</A>);
<A class=l name=199>    199 </A>	}
<A class=hl name=200>    200 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=201>    201 </A>}
<A class=l name=202>    202 </A>
<A class=l name=203>    203 </A><B>int</B>
<A class=l name=204>    204 </A><A href="http://cvs.opensolaris.org/source/s?defs=read_header">read_header</A>(<B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=fd">fd</A>, <A href="http://cvs.opensolaris.org/source/s?defs=uint32_t">uint32_t</A> <A href="http://cvs.opensolaris.org/source/s?defs=lba">lba</A>, <A href="http://cvs.opensolaris.org/source/s?defs=uchar_t">uchar_t</A> *<A href="http://cvs.opensolaris.org/source/s?defs=buf">buf</A>)
<A class=l name=205>    205 </A>{
<A class=l name=206>    206 </A>	<B>struct</B> <A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cmd">uscsi_cmd</A> *<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>;
<A class=l name=207>    207 </A>
<A class=l name=208>    208 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A> = <A href="http://cvs.opensolaris.org/source/s?defs=get_uscsi_cmd">get_uscsi_cmd</A>();
<A class=l name=209>    209 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_flags">uscsi_flags</A> = <A href="http://cvs.opensolaris.org/source/s?defs=USCSI_READ">USCSI_READ</A>|<A href="http://cvs.opensolaris.org/source/s?defs=USCSI_SILENT">USCSI_SILENT</A>;
<A class=hl name=210>    210 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_timeout">uscsi_timeout</A> = <A href="http://cvs.opensolaris.org/source/s?defs=DEFAULT_SCSI_TIMEOUT">DEFAULT_SCSI_TIMEOUT</A>;
<A class=l name=211>    211 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>0</SPAN>] = <A href="http://cvs.opensolaris.org/source/s?defs=READ_HDR_CMD">READ_HDR_CMD</A>;
<A class=l name=212>    212 </A>
<A class=l name=213>    213 </A>	<SPAN class=c>/* Logical block address */</SPAN>
<A class=l name=214>    214 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=load_scsi32">load_scsi32</A>(&amp;<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>2</SPAN>], <A href="http://cvs.opensolaris.org/source/s?defs=lba">lba</A>);
<A class=l name=215>    215 </A>
<A class=l name=216>    216 </A>	<SPAN class=c>/* allocation length */</SPAN>
<A class=l name=217>    217 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>8</SPAN>] = <SPAN class=n>8</SPAN>;
<A class=l name=218>    218 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdblen">uscsi_cdblen</A> = <SPAN class=n>10</SPAN>;
<A class=l name=219>    219 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_bufaddr">uscsi_bufaddr</A> = (<B>char</B> *)<A href="http://cvs.opensolaris.org/source/s?defs=buf">buf</A>;
<A class=hl name=220>    220 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_buflen">uscsi_buflen</A> = <SPAN class=n>8</SPAN>;
<A class=l name=221>    221 </A>	<B>if</B> ((<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_error">uscsi_error</A> = <A href="http://cvs.opensolaris.org/source/s?defs=uscsi">uscsi</A>(<A href="http://cvs.opensolaris.org/source/s?defs=fd">fd</A>, <A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>)) &lt; <SPAN class=n>0</SPAN>)
<A class=l name=222>    222 </A>		<B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=223>    223 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=224>    224 </A>}
<A class=l name=225>    225 </A>
<A class=l name=226>    226 </A><B>int</B>
<A class=l name=227>    227 </A><A href="http://cvs.opensolaris.org/source/s?defs=read_disc_info">read_disc_info</A>(<B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=fd">fd</A>, <A href="http://cvs.opensolaris.org/source/s?defs=uchar_t">uchar_t</A> *<A href="http://cvs.opensolaris.org/source/s?defs=di">di</A>)
<A class=l name=228>    228 </A>{
<A class=l name=229>    229 </A>	<B>struct</B> <A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cmd">uscsi_cmd</A> *<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>;
<A class=hl name=230>    230 </A>
<A class=l name=231>    231 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A> = <A href="http://cvs.opensolaris.org/source/s?defs=get_uscsi_cmd">get_uscsi_cmd</A>();
<A class=l name=232>    232 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_flags">uscsi_flags</A> = <A href="http://cvs.opensolaris.org/source/s?defs=USCSI_READ">USCSI_READ</A>|<A href="http://cvs.opensolaris.org/source/s?defs=USCSI_SILENT">USCSI_SILENT</A>;
<A class=l name=233>    233 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_timeout">uscsi_timeout</A> = <A href="http://cvs.opensolaris.org/source/s?defs=DEFAULT_SCSI_TIMEOUT">DEFAULT_SCSI_TIMEOUT</A>;
<A class=l name=234>    234 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>0</SPAN>] = <A href="http://cvs.opensolaris.org/source/s?defs=READ_INFO_CMD">READ_INFO_CMD</A>;
<A class=l name=235>    235 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>8</SPAN>] = <A href="http://cvs.opensolaris.org/source/s?defs=DISC_INFO_BLOCK_SIZE">DISC_INFO_BLOCK_SIZE</A>;
<A class=l name=236>    236 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdblen">uscsi_cdblen</A> = <SPAN class=n>10</SPAN>;
<A class=l name=237>    237 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_bufaddr">uscsi_bufaddr</A> = (<B>char</B> *)<A href="http://cvs.opensolaris.org/source/s?defs=di">di</A>;
<A class=l name=238>    238 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_buflen">uscsi_buflen</A> = <A href="http://cvs.opensolaris.org/source/s?defs=DISC_INFO_BLOCK_SIZE">DISC_INFO_BLOCK_SIZE</A>;
<A class=l name=239>    239 </A>	<B>if</B> ((<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_error">uscsi_error</A> = <A href="http://cvs.opensolaris.org/source/s?defs=uscsi">uscsi</A>(<A href="http://cvs.opensolaris.org/source/s?defs=fd">fd</A>, <A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>)) &lt; <SPAN class=n>0</SPAN>)
<A class=hl name=240>    240 </A>		<B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=241>    241 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=242>    242 </A>}
<A class=l name=243>    243 </A>
<A class=l name=244>    244 </A><SPAN class=c>/* Get information about the Logical Unit's capabilities */</SPAN>
<A class=l name=245>    245 </A><B>int</B>
<A class=l name=246>    246 </A><A href="http://cvs.opensolaris.org/source/s?defs=get_configuration">get_configuration</A>(<B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=fd">fd</A>, <A href="http://cvs.opensolaris.org/source/s?defs=uint16_t">uint16_t</A> <A href="http://cvs.opensolaris.org/source/s?defs=feature">feature</A>, <B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=bufsize">bufsize</A>, <A href="http://cvs.opensolaris.org/source/s?defs=uchar_t">uchar_t</A> *<A href="http://cvs.opensolaris.org/source/s?defs=buf">buf</A>)
<A class=l name=247>    247 </A>{
<A class=l name=248>    248 </A>	<B>struct</B> <A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cmd">uscsi_cmd</A> *<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>;
<A class=l name=249>    249 </A>
<A class=hl name=250>    250 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A> = <A href="http://cvs.opensolaris.org/source/s?defs=get_uscsi_cmd">get_uscsi_cmd</A>();
<A class=l name=251>    251 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_flags">uscsi_flags</A> = <A href="http://cvs.opensolaris.org/source/s?defs=USCSI_READ">USCSI_READ</A>|<A href="http://cvs.opensolaris.org/source/s?defs=USCSI_SILENT">USCSI_SILENT</A>;
<A class=l name=252>    252 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_timeout">uscsi_timeout</A> = <A href="http://cvs.opensolaris.org/source/s?defs=DEFAULT_SCSI_TIMEOUT">DEFAULT_SCSI_TIMEOUT</A>;
<A class=l name=253>    253 </A>
<A class=l name=254>    254 </A>	<SPAN class=c>/* Set OPERATION CODE in CDB */</SPAN>
<A class=l name=255>    255 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>0</SPAN>] = <A href="http://cvs.opensolaris.org/source/s?defs=GET_CONFIG_CMD">GET_CONFIG_CMD</A>;
<A class=l name=256>    256 </A>
<A class=l name=257>    257 </A>	<SPAN class=c>/*
<A class=l name=258>    258 </A>	 * Set RT field in CDB, currently need at most one
<A class=l name=259>    259 </A>	 * Feature Descriptor
<A class=hl name=260>    260 </A>	 */</SPAN>
<A class=l name=261>    261 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>1</SPAN>] = <SPAN class=n>0x2</SPAN>;
<A class=l name=262>    262 </A>
<A class=l name=263>    263 </A>	<SPAN class=c>/* Set Starting Feature Number in CDB */</SPAN>
<A class=l name=264>    264 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>2</SPAN>] = (<A href="http://cvs.opensolaris.org/source/s?defs=feature">feature</A> &gt;&gt; <SPAN class=n>8</SPAN>) &amp; <SPAN class=n>0xff</SPAN>;
<A class=l name=265>    265 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>3</SPAN>] = <A href="http://cvs.opensolaris.org/source/s?defs=feature">feature</A> &amp; <SPAN class=n>0xff</SPAN>;
<A class=l name=266>    266 </A>
<A class=l name=267>    267 </A>	<SPAN class=c>/* Set Allocation Length in CDB */</SPAN>
<A class=l name=268>    268 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>7</SPAN>] = (<A href="http://cvs.opensolaris.org/source/s?defs=bufsize">bufsize</A> &gt;&gt; <SPAN class=n>8</SPAN>) &amp; <SPAN class=n>0xff</SPAN>;
<A class=l name=269>    269 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdb">uscsi_cdb</A>[<SPAN class=n>8</SPAN>] = <A href="http://cvs.opensolaris.org/source/s?defs=bufsize">bufsize</A> &amp; <SPAN class=n>0xff</SPAN>;
<A class=hl name=270>    270 </A>
<A class=l name=271>    271 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cdblen">uscsi_cdblen</A> = <SPAN class=n>10</SPAN>;
<A class=l name=272>    272 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_bufaddr">uscsi_bufaddr</A> = (<B>char</B> *)<A href="http://cvs.opensolaris.org/source/s?defs=buf">buf</A>;
<A class=l name=273>    273 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-&gt;<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_buflen">uscsi_buflen</A> = <A href="http://cvs.opensolaris.org/source/s?defs=bufsize">bufsize</A>;
<A class=l name=274>    274 </A>	<B>if</B> ((<A href="http://cvs.opensolaris.org/source/s?defs=uscsi_error">uscsi_error</A> = <A href="http://cvs.opensolaris.org/source/s?defs=uscsi">uscsi</A>(<A href="http://cvs.opensolaris.org/source/s?defs=fd">fd</A>, <A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>)) &lt; <SPAN class=n>0</SPAN>)
<A class=l name=275>    275 </A>		<B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=276>    276 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=277>    277 </A>}
<A class=l name=278>    278 </A>
<A class=l name=279>    279 </A><B>int</B>
<A class=hl name=280>    280 </A><A href="http://cvs.opensolaris.org/source/s?defs=read10">read10</A>(<B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=fd">fd</A>, <A href="http://cvs.opensolaris.org/source/s?defs=uint32_t">uint32_t</A> <A href="http://cvs.opensolaris.org/source/s?defs=start_blk">start_blk</A>, <A href="http://cvs.opensolaris.org/source/s?defs=uint16_t">uint16_t</A> <A href="http://cvs.opensolaris.org/source/s?defs=nblk">nblk</A>, <A href="http://cvs.opensolaris.org/source/s?defs=uchar_t">uchar_t</A> *<A href="http://cvs.opensolaris.org/source/s?defs=buf">buf</A>,
<A class=l name=281>    281 </A>	<A href="http://cvs.opensolaris.org/source/s?defs=uint32_t">uint32_t</A> <A href="http://cvs.opensolaris.org/source/s?defs=bufsize">bufsize</A>)
<A class=l name=282>    282 </A>{
<A class=l name=283>    283 </A>	<B>struct</B> <A href="http://cvs.opensolaris.org/source/s?defs=uscsi_cmd">uscsi_cmd</A> *<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>;
<A class=l name=284>    284 </A>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -