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

📄 misc_scsi.h.htm

📁 光驱cdrom读写源代码,scsi命令解析
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<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 &copy; 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 + -