?? cross reference -onnv-onnv-gate-usr-src-cmd-cdrw-mmc_c.htm
字號:
<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>-><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>-><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>-><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>(&<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-><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>-><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> & <SPAN class=n>0xff</SPAN>;
<A class=l name=291> 291 </A> <A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-><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> >> <SPAN class=n>8</SPAN>) & <SPAN class=n>0xff</SPAN>;
<A class=l name=292> 292 </A> <A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-><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>-><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>-><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>)) < <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>-><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>-><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>-><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>(&<A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-><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>-><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> & <SPAN class=n>0xff</SPAN>;
<A class=l name=317> 317 </A> <A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-><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> >> <SPAN class=n>8</SPAN>) & <SPAN class=n>0xff</SPAN>;
<A class=l name=318> 318 </A> <A href="http://cvs.opensolaris.org/source/s?defs=scmd">scmd</A>-><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>-><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>-><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>)) < <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>-><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>-><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>-><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>-><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>-><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>-><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>-><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>-><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> & <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>-><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>-><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>-><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>-><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>)) < <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 + -