📄 misc_scsi.h.htm
字号:
<a class="l" name="39"> 39 </a> <b>int</b> <a href="/source/s?defs=ti_track_no">ti_track_no</a>; <span class="c">/* Track number */</span><a class="hl" name="40"> 40 </a> <b>int</b> <a href="/source/s?defs=ti_session_no">ti_session_no</a>; <span class="c">/* session no. 0 if cannot find that */</span><a class="l" name="41"> 41 </a> <a href="/source/s?defs=uchar_t">uchar_t</a> <a href="/source/s?defs=ti_track_mode">ti_track_mode</a>; <span class="c">/* track ctrl nibble, see READ TOC */</span><a class="l" name="42"> 42 </a> <a href="/source/s?defs=uchar_t">uchar_t</a> <a href="/source/s?defs=ti_data_mode">ti_data_mode</a>; <span class="c">/* Mode 0,1,2 or FF */</span><a class="l" name="43"> 43 </a> <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=ti_start_address">ti_start_address</a>; <span class="c">/* Start LBA */</span><a class="l" name="44"> 44 </a> <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=ti_track_size">ti_track_size</a>; <span class="c">/* Size in blocks */</span><a class="l" name="45"> 45 </a> <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=ti_packet_size">ti_packet_size</a>; <span class="c">/* If a packet written track */</span><a class="l" name="46"> 46 </a> <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=ti_free_blocks">ti_free_blocks</a>; <span class="c">/* For an incomplete track */</span><a class="l" name="47"> 47 </a> <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=ti_lra">ti_lra</a>; <span class="c">/* LBA of Last written user datablock */</span><a class="l" name="48"> 48 </a> <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=ti_nwa">ti_nwa</a>; <span class="c">/* Next writable address */</span><a class="l" name="49"> 49 </a>};<a class="hl" name="50"> 50 </a><a class="l" name="51"> 51 </a><span class="c">/*<a class="l" name="52"> 52 </a> * track_info_flags<a class="l" name="53"> 53 </a> */</span><a class="l" name="54"> 54 </a>#<b>define</b> <a href="/source/s?defs=TI_FIXED_PACKET">TI_FIXED_PACKET</a> <span class="n">1</span><a class="l" name="55"> 55 </a>#<b>define</b> <a href="/source/s?defs=TI_PACKET_MODE">TI_PACKET_MODE</a> <span class="n">2</span><a class="l" name="56"> 56 </a>#<b>define</b> <a href="/source/s?defs=TI_BLANK_TRACK">TI_BLANK_TRACK</a> <span class="n">4</span><a class="l" name="57"> 57 </a>#<b>define</b> <a href="/source/s?defs=TI_RESERVED_TRACK">TI_RESERVED_TRACK</a> <span class="n">8</span><a class="l" name="58"> 58 </a>#<b>define</b> <a href="/source/s?defs=TI_COPY">TI_COPY</a> <span class="n">0x10</span><a class="l" name="59"> 59 </a>#<b>define</b> <a href="/source/s?defs=TI_DAMAGED_TRACK">TI_DAMAGED_TRACK</a> <span class="n">0x20</span><a class="hl" name="60"> 60 </a>#<b>define</b> <a href="/source/s?defs=TI_NWA_VALID">TI_NWA_VALID</a> <span class="n">0x100</span><a class="l" name="61"> 61 </a>#<b>define</b> <a href="/source/s?defs=TI_LRA_VALID">TI_LRA_VALID</a> <span class="n">0x200</span><a class="l" name="62"> 62 </a>#<b>define</b> <a href="/source/s?defs=TI_SESSION_NO_VALID">TI_SESSION_NO_VALID</a> <span class="n">0x1000</span><a class="l" name="63"> 63 </a>#<b>define</b> <a href="/source/s?defs=TI_FREE_BLOCKS_VALID">TI_FREE_BLOCKS_VALID</a> <span class="n">0x2000</span><a class="l" name="64"> 64 </a><a class="l" name="65"> 65 </a><span class="c">/*<a class="l" name="66"> 66 </a> * Track mode nibble<a class="l" name="67"> 67 </a> */</span><a class="l" name="68"> 68 </a>#<b>define</b> <a href="/source/s?defs=TRACK_MODE_DATA">TRACK_MODE_DATA</a> <span class="n">0x06</span><a class="l" name="69"> 69 </a>#<b>define</b> <a href="/source/s?defs=TRACK_MODE_AUDIO">TRACK_MODE_AUDIO</a> <span class="n">0x02</span><a class="hl" name="70"> 70 </a><a class="l" name="71"> 71 </a><span class="c">/* 74 minutes, each second is 75 blocks */</span><a class="l" name="72"> 72 </a>#<b>define</b> <a href="/source/s?defs=MAX_CD_BLKS">MAX_CD_BLKS</a> (<span class="n">74*60</span>*<span class="n">75</span>)<a class="l" name="73"> 73 </a>#<b>define</b> <a href="/source/s?defs=MAX_DVD_BLKS">MAX_DVD_BLKS</a> <span class="n">2295100</span><a class="l" name="74"> 74 </a><a class="l" name="75"> 75 </a><span class="c">/*<a class="l" name="76"> 76 </a> * Macros to translate between a bandwidth ("RATE") and a Speed ("X")<a class="l" name="77"> 77 </a> * for CDs. Eg, "1X == 176,400 <a href="/source/s?path=bytes/">bytes</a>/<a href="/source/s?path=bytes/second">second</a>".<a class="l" name="78"> 78 </a> *<a class="l" name="79"> 79 </a> * Some devices just multiply speed by 176. But more accurate ones<a class="hl" name="80"> 80 </a> * multiply speed by 176.4.<a class="l" name="81"> 81 </a> */</span><a class="l" name="82"> 82 </a>#<b>define</b> <a href="/source/s?defs=CD_RATE_TO_X">CD_RATE_TO_X</a>(r) ((r) % <span class="n">176</span> ? ((<a href="/source/s?defs=uint_t">uint_t</a>)(((<b>double</b>)(r)*<span class="n">10</span>)/<span class="n">1764</span> + <span class="n">0.5</span>)) :\<a class="l" name="83"> 83 </a> (r) / <span class="n">176</span>)<a class="l" name="84"> 84 </a>#<b>define</b> <a href="/source/s?defs=CD_X_TO_RATE">CD_X_TO_RATE</a>(s) ((((s)*<span class="n">1764</span>)+<span class="n">5</span>)/<span class="n">10</span>)<a class="l" name="85"> 85 </a><a class="l" name="86"> 86 </a><span class="c">/*<a class="l" name="87"> 87 </a> * Macros to translate between a bandwidth ("RATE") and a Speed ("X")<a class="l" name="88"> 88 </a> * for DVDs. Eg, "1X == 1,385,000 <a href="/source/s?path=bytes/">bytes</a>/<a href="/source/s?path=bytes/second">second</a>".<a class="l" name="89"> 89 </a> */</span><a class="hl" name="90"> 90 </a>#<b>define</b> <a href="/source/s?defs=DVD_RATE_TO_X">DVD_RATE_TO_X</a>(r) (((<a href="/source/s?defs=ulong_t">ulong_t</a>)(r)*<span class="n">1000</span>)/<span class="n">1385000</span>)<a class="l" name="91"> 91 </a>#<b>define</b> <a href="/source/s?defs=DVD_X_TO_RATE">DVD_X_TO_RATE</a>(s) (((s)*<span class="n">1385000</span>)/<span class="n">1000</span>)<a class="l" name="92"> 92 </a><a class="l" name="93"> 93 </a><a class="l" name="94"> 94 </a>#<b>define</b> <a href="/source/s?defs=FINALIZE_TIMEOUT">FINALIZE_TIMEOUT</a> (<span class="n">6</span> * <span class="n">12</span>) <span class="c">/* Six minutes */</span><a class="l" name="95"> 95 </a><a class="l" name="96"> 96 </a><a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=read_scsi32">read_scsi32</a>(<b>void</b> *<a href="/source/s?defs=addr">addr</a>);<a class="l" name="97"> 97 </a><a href="/source/s?defs=uint16_t">uint16_t</a> <a href="/source/s?defs=read_scsi16">read_scsi16</a>(<b>void</b> *<a href="/source/s?defs=addr">addr</a>);<a class="l" name="98"> 98 </a><b>void</b> <a href="/source/s?defs=load_scsi32">load_scsi32</a>(<b>void</b> *<a href="/source/s?defs=addr">addr</a>, <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=val">val</a>);<a class="l" name="99"> 99 </a><b>void</b> <a href="/source/s?defs=load_scsi16">load_scsi16</a>(<b>void</b> *<a href="/source/s?defs=addr">addr</a>, <a href="/source/s?defs=uint16_t">uint16_t</a> <a href="/source/s?defs=val">val</a>);<a class="hl" name="100"> 100 </a><a class="l" name="101"> 101 </a><b>int</b> <a href="/source/s?defs=get_mode_page">get_mode_page</a>(<b>int</b> <a href="/source/s?defs=fd">fd</a>, <b>int</b> <a href="/source/s?defs=page_no">page_no</a>, <b>int</b> <a href="/source/s?defs=pc">pc</a>, <b>int</b> <a href="/source/s?defs=buf_len">buf_len</a>, <a href="/source/s?defs=uchar_t">uchar_t</a> *<a href="/source/s?defs=buffer">buffer</a>);<a class="l" name="102"> 102 </a><b>int</b> <a href="/source/s?defs=set_mode_page">set_mode_page</a>(<b>int</b> <a href="/source/s?defs=fd">fd</a>, <a href="/source/s?defs=uchar_t">uchar_t</a> *<a href="/source/s?defs=buffer">buffer</a>);<a class="l" name="103"> 103 </a><b>int</b> <a href="/source/s?defs=build_track_info">build_track_info</a>(<a href="/source/s?defs=cd_device">cd_device</a> *<a href="/source/s?defs=dev">dev</a>, <b>int</b> <a href="/source/s?defs=trackno">trackno</a>, <b>struct</b> <a href="/source/s?defs=track_info">track_info</a> *<a href="/source/s?defs=t_info">t_info</a>);<a class="l" name="104"> 104 </a><a href="/source/s?defs=uchar_t">uchar_t</a> <a href="/source/s?defs=get_data_mode">get_data_mode</a>(<b>int</b> <a href="/source/s?defs=fd">fd</a>, <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=lba">lba</a>);<a class="l" name="105"> 105 </a><b>int</b> <a href="/source/s?defs=prepare_for_write">prepare_for_write</a>(<a href="/source/s?defs=cd_device">cd_device</a> *<a href="/source/s?defs=dev">dev</a>, <b>int</b> <a href="/source/s?defs=track_mode">track_mode</a>, <b>int</b> <a href="/source/s?defs=test_write">test_write</a>,<a class="l" name="106"> 106 </a> <b>int</b> <a href="/source/s?defs=keep_disc_open">keep_disc_open</a>);<a class="l" name="107"> 107 </a><b>int</b> <a href="/source/s?defs=finalize">finalize</a>(<a href="/source/s?defs=cd_device">cd_device</a> *<a href="/source/s?defs=dev">dev</a>);<a class="l" name="108"> 108 </a><a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=get_last_possible_lba">get_last_possible_lba</a>(<a href="/source/s?defs=cd_device">cd_device</a> *<a href="/source/s?defs=dev">dev</a>);<a class="l" name="109"> 109 </a><b>int</b> <a href="/source/s?defs=read_audio_through_read_cd">read_audio_through_read_cd</a>(<a href="/source/s?defs=cd_device">cd_device</a> *<a href="/source/s?defs=dev">dev</a>, <a href="/source/s?defs=uint_t">uint_t</a> <a href="/source/s?defs=start_lba">start_lba</a>, <a href="/source/s?defs=uint_t">uint_t</a> <a href="/source/s?defs=nblks">nblks</a>,<a class="hl" name="110"> 110 </a> <a href="/source/s?defs=uchar_t">uchar_t</a> *<a href="/source/s?defs=buf">buf</a>);<a class="l" name="111"> 111 </a><b>int</b> <a href="/source/s?defs=eject_media">eject_media</a>(<a href="/source/s?defs=cd_device">cd_device</a> *<a href="/source/s?defs=dev">dev</a>);<a class="l" name="112"> 112 </a><b>int</b> <a href="/source/s?defs=cd_speed_ctrl">cd_speed_ctrl</a>(<a href="/source/s?defs=cd_device">cd_device</a> *<a href="/source/s?defs=dev">dev</a>, <b>int</b> <a href="/source/s?defs=cmd">cmd</a>, <b>int</b> <a href="/source/s?defs=speed">speed</a>);<a class="l" name="113"> 113 </a><b>int</b> <a href="/source/s?defs=rt_streaming_ctrl">rt_streaming_ctrl</a>(<a href="/source/s?defs=cd_device">cd_device</a> *<a href="/source/s?defs=dev">dev</a>, <b>int</b> <a href="/source/s?defs=cmd">cmd</a>, <b>int</b> <a href="/source/s?defs=speed">speed</a>);<a class="l" name="114"> 114 </a><a class="l" name="115"> 115 </a><b>void</b> <a href="/source/s?defs=tao_init">tao_init</a>(<b>int</b> <a href="/source/s?defs=mode">mode</a>);<a class="l" name="116"> 116 </a><b>void</b> <a href="/source/s?defs=tao_fini">tao_fini</a>(<b>void</b>);<a class="l" name="117"> 117 </a><b>void</b> <a href="/source/s?defs=write_init">write_init</a>(<b>int</b> <a href="/source/s?defs=mode">mode</a>);<a class="l" name="118"> 118 </a><b>void</b> <a href="/source/s?defs=write_fini">write_fini</a>(<b>void</b>);<a class="l" name="119"> 119 </a><a class="hl" name="120"> 120 </a>#<b>ifdef</b> <a href="/source/s?defs=__cplusplus">__cplusplus</a><a class="l" name="121"> 121 </a>}<a class="l" name="122"> 122 </a>#<b>endif</b><a class="l" name="123"> 123 </a><a class="l" name="124"> 124 </a>#<b>endif</b> <span class="c">/* _MISC_SCSI_H */</span><a class="l" name="125"> 125 </a></pre></div><div id="Footer"><p class="Center"><a href="http://www.opensolaris.org/os/project/opengrok/"><img src="/source/default/img/servedby.png" alt="Served by OpenGrok" title="Served by OpenGrok"/></a></p><p class="Center"><a href="http://www.opensolaris.org/os/tou/">Terms of Use</a> |<a href="http://www.sun.com/privacy/">Privacy</a> |<a href="http://www.opensolaris.org/os/trademark/">Trademarks</a> |<a href="http://www.opensolaris.org/os/copyrights/">Copyright Policy</a> |<a href="http://www.opensolaris.org/os/site_guidelines/">Site Guidelines</a> |<a href="http://www.opensolaris.org/os/about/help/">Help</a><br />Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.<br />Copyright © 1995-2008 Sun Microsystems, Inc.<br /></p><script type="text/javascript" src="http://www.opensolaris.org/js/s_code_remote.js"></script></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -