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

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

📁 光驱cdrom读写源代码,scsi命令解析
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<A class=l name=285>    285 </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=286>    286 </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=287>    287 </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=288>    288 </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_10_CMD">READ_10_CMD</A>;
<A class=l name=289>    289 </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=start_blk">start_blk</A>);
<A class=hl name=290>    290 </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=nblk">nblk</A> &amp; <SPAN class=n>0xff</SPAN>;
<A class=l name=291>    291 </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=nblk">nblk</A> &gt;&gt; <SPAN class=n>8</SPAN>) &amp; <SPAN class=n>0xff</SPAN>;
<A class=l name=292>    292 </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=293>    293 </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=294>    294 </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=295>    295 </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=296>    296 </A>		<B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=297>    297 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=298>    298 </A>}
<A class=l name=299>    299 </A>
<A class=hl name=300>    300 </A><B>int</B>
<A class=l name=301>    301 </A><A href="http://cvs.opensolaris.org/source/s?defs=write10">write10</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=302>    302 </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=303>    303 </A>{
<A class=l name=304>    304 </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=305>    305 </A>
<A class=l name=306>    306 </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=307>    307 </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_WRITE">USCSI_WRITE</A>|<A href="http://cvs.opensolaris.org/source/s?defs=USCSI_SILENT">USCSI_SILENT</A>;
<A class=l name=308>    308 </A>	<SPAN class=c>/*
<A class=l name=309>    309 </A>	 * Some DVD drives take longer to write than
<A class=hl name=310>    310 </A>	 * the standard time, since they tend to generate
<A class=l name=311>    311 </A>	 * the media TOC on the fly when the cache is full
<A class=l name=312>    312 </A>	 */</SPAN>
<A class=l name=313>    313 </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> * <SPAN class=n>3</SPAN>;
<A class=l name=314>    314 </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=WRITE_10_CMD">WRITE_10_CMD</A>;
<A class=l name=315>    315 </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=start_blk">start_blk</A>);
<A class=l name=316>    316 </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=nblk">nblk</A> &amp; <SPAN class=n>0xff</SPAN>;
<A class=l name=317>    317 </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=nblk">nblk</A> &gt;&gt; <SPAN class=n>8</SPAN>) &amp; <SPAN class=n>0xff</SPAN>;
<A class=l name=318>    318 </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=319>    319 </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=320>    320 </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=321>    321 </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=322>    322 </A>		<B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=323>    323 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=324>    324 </A>}
<A class=l name=325>    325 </A>
<A class=l name=326>    326 </A><B>int</B>
<A class=l name=327>    327 </A><A href="http://cvs.opensolaris.org/source/s?defs=close_track">close_track</A>(<B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=fd">fd</A>, <B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=trackno">trackno</A>, <B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=close_session">close_session</A>, <B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=immediate">immediate</A>)
<A class=l name=328>    328 </A>{
<A class=l name=329>    329 </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=330>    330 </A>
<A class=l name=331>    331 </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=332>    332 </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_SILENT">USCSI_SILENT</A>;
<A class=l name=333>    333 </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=CLOSE_TRACK_CMD">CLOSE_TRACK_CMD</A>;
<A class=l name=334>    334 </A>	<B>if</B> (<A href="http://cvs.opensolaris.org/source/s?defs=immediate">immediate</A>) {
<A class=l name=335>    335 </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=336>    336 </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>1</SPAN>;
<A class=l name=337>    337 </A>	} <B>else</B> {
<A class=l name=338>    338 </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> = <SPAN class=n>240</SPAN>;
<A class=l name=339>    339 </A>	}
<A class=hl name=340>    340 </A>	<B>if</B> ((<A href="http://cvs.opensolaris.org/source/s?defs=close_session">close_session</A>) || (<A href="http://cvs.opensolaris.org/source/s?defs=device_type">device_type</A> == <A href="http://cvs.opensolaris.org/source/s?defs=DVD_PLUS">DVD_PLUS</A>) ||
<A class=l name=341>    341 </A>	    (<A href="http://cvs.opensolaris.org/source/s?defs=device_type">device_type</A> == <A href="http://cvs.opensolaris.org/source/s?defs=DVD_PLUS_W">DVD_PLUS_W</A>)) {
<A class=l name=342>    342 </A>		<SPAN class=c>/* close the session */</SPAN>
<A class=l name=343>    343 </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>] = <SPAN class=n>2</SPAN>;
<A class=l name=344>    344 </A>
<A class=l name=345>    345 </A>	} <B>else</B> {
<A class=l name=346>    346 </A>		<SPAN class=c>/* Close the track but leave session open */</SPAN>
<A class=l name=347>    347 </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>] = <SPAN class=n>1</SPAN>;
<A class=l name=348>    348 </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>5</SPAN>] = <A href="http://cvs.opensolaris.org/source/s?defs=trackno">trackno</A> &amp; <SPAN class=n>0xff</SPAN>;
<A class=l name=349>    349 </A>	}
<A class=hl name=350>    350 </A>
<A class=l name=351>    351 </A>	<SPAN class=c>/*
<A class=l name=352>    352 </A>	 * DVD+R media are already formatted, we are using
<A class=l name=353>    353 </A>	 * a special case to notify that drive to close
<A class=l name=354>    354 </A>	 * <A href="http://cvs.opensolaris.org/source/s?path=track/">track</A>/<A href="http://cvs.opensolaris.org/source/s?path=track/session">session</A> and null-fill the remaining space.
<A class=l name=355>    355 </A>	 */</SPAN>
<A class=l name=356>    356 </A>	<B>if</B> (<A href="http://cvs.opensolaris.org/source/s?defs=device_type">device_type</A> == <A href="http://cvs.opensolaris.org/source/s?defs=DVD_PLUS">DVD_PLUS</A>) {
<A class=l name=357>    357 </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>5</SPAN>] = <SPAN class=n>1</SPAN>; <SPAN class=c>/* only 1 track */</SPAN>
<A class=l name=358>    358 </A>
<A class=l name=359>    359 </A>		<B>if</B> (<A href="http://cvs.opensolaris.org/source/s?defs=close_session">close_session</A>) {
<A class=hl name=360>    360 </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>] = <SPAN class=n>6</SPAN>; <SPAN class=c>/* session */</SPAN>
<A class=l name=361>    361 </A>		} <B>else</B> {
<A class=l name=362>    362 </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>] = <SPAN class=n>1</SPAN>; <SPAN class=c>/* track */</SPAN>
<A class=l name=363>    363 </A>		}
<A class=l name=364>    364 </A>	}
<A class=l name=365>    365 </A>
<A class=l name=366>    366 </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=367>    367 </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=368>    368 </A>		<B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=369>    369 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=hl name=370>    370 </A>}
<A class=l name=371>    371 </A>
<A class=l name=372>    372 </A><B>int</B>
<A class=l name=373>    373 </A><A href="http://

⌨️ 快捷键说明

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