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

📄 bstream.c.htm

📁 光驱cdrom读写源代码,scsi命令解析
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<a class="l" name="181">    181 </a><b>static</b> <b>int</b><a class="l" name="182">    182 </a><a href="/source/s?defs=wav_write_stream_close">wav_write_stream_close</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="183">    183 </a>{<a class="l" name="184">    184 </a>	<a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=sz">sz</a>;<a class="l" name="185">    185 </a>	<a href="/source/s?defs=Wave_filehdr">Wave_filehdr</a> <a href="/source/s?defs=wav">wav</a>;<a class="l" name="186">    186 </a><a class="l" name="187">    187 </a>	<a href="/source/s?defs=str_errno">str_errno</a> = <span class="n">0</span>;<a class="l" name="188">    188 </a>	(<b>void</b>) <a href="/source/s?defs=memset">memset</a>(&amp;<a href="/source/s?defs=wav">wav</a>, <span class="n">0</span>, <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>));<a class="l" name="189">    189 </a>	<a href="/source/s?defs=sz">sz</a> = <a href="/source/s?defs=lseek">lseek</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_END">SEEK_END</a>);<a class="hl" name="190">    190 </a>	(<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="191">    191 </a>	<b>if</b> (<a href="/source/s?defs=read">read</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, &amp;<a href="/source/s?defs=wav">wav</a>, <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>)) != <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>)) {<a class="l" name="192">    192 </a>		<b>return</b> (<span class="n">1</span>);<a class="l" name="193">    193 </a>	}<a class="l" name="194">    194 </a>	<a href="/source/s?defs=wav">wav</a>.<a href="/source/s?defs=total_chunk_size">total_chunk_size</a> = <a href="/source/s?defs=CPU_TO_LE32">CPU_TO_LE32</a>(<a href="/source/s?defs=sz">sz</a> - <span class="n">8</span>);<a class="l" name="195">    195 </a>	<a href="/source/s?defs=wav">wav</a>.<a href="/source/s?defs=data_size">data_size</a> = <a href="/source/s?defs=CPU_TO_LE32">CPU_TO_LE32</a>(<a href="/source/s?defs=sz">sz</a> - <span class="n">44</span>);<a class="l" name="196">    196 </a>	(<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="197">    197 </a>	<b>if</b> (<a href="/source/s?defs=write">write</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, &amp;<a href="/source/s?defs=wav">wav</a>, <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>)) != <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>)) {<a class="l" name="198">    198 </a>		<b>return</b> (<span class="n">1</span>);<a class="l" name="199">    199 </a>	}<a class="hl" name="200">    200 </a>	(<b>void</b>) <a href="/source/s?defs=close">close</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>);<a class="l" name="201">    201 </a>	<a href="/source/s?defs=free">free</a>(h);<a class="l" name="202">    202 </a>	<b>return</b> (<span class="n">0</span>);<a class="l" name="203">    203 </a>}<a class="l" name="204">    204 </a><a class="l" name="205">    205 </a><b>static</b> <b>int</b><a class="l" name="206">    206 </a><a href="/source/s?defs=au_write_stream_close">au_write_stream_close</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="207">    207 </a>{<a class="l" name="208">    208 </a>	<a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=sz">sz</a>;<a class="l" name="209">    209 </a><a class="hl" name="210">    210 </a>	<a href="/source/s?defs=str_errno">str_errno</a> = <span class="n">0</span>;<a class="l" name="211">    211 </a>	<a href="/source/s?defs=sz">sz</a> = <a href="/source/s?defs=lseek">lseek</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_END">SEEK_END</a>);<a class="l" name="212">    212 </a>	<a href="/source/s?defs=sz">sz</a> -= <a href="/source/s?defs=PRE_DEF_AU_HDR_LEN">PRE_DEF_AU_HDR_LEN</a>;<a class="l" name="213">    213 </a>	<a href="/source/s?defs=sz">sz</a> = <a href="/source/s?defs=CPU_TO_BE32">CPU_TO_BE32</a>(<a href="/source/s?defs=sz">sz</a>);<a class="l" name="214">    214 </a>	<b>if</b> (<a href="/source/s?defs=lseek">lseek</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">8</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>) &lt; <span class="n">0</span>)<a class="l" name="215">    215 </a>		<b>return</b> (<span class="n">1</span>);<a class="l" name="216">    216 </a><a class="l" name="217">    217 </a>	<b>if</b> (<a href="/source/s?defs=write">write</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, &amp;<a href="/source/s?defs=sz">sz</a>, <span class="n">4</span>) &lt; <span class="n">0</span>)<a class="l" name="218">    218 </a>		<b>return</b> (<span class="n">1</span>);<a class="l" name="219">    219 </a><a class="hl" name="220">    220 </a>	(<b>void</b>) <a href="/source/s?defs=close">close</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>);<a class="l" name="221">    221 </a>	<a href="/source/s?defs=free">free</a>(h);<a class="l" name="222">    222 </a>	<b>return</b> (<span class="n">0</span>);<a class="l" name="223">    223 </a>}<a class="l" name="224">    224 </a><a class="l" name="225">    225 </a><span class="c">/* ARGSUSED */</span><a class="l" name="226">    226 </a><b>static</b> <b>void</b><a class="l" name="227">    227 </a><a href="/source/s?defs=stdin_stream_rewind">stdin_stream_rewind</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="228">    228 </a>{<a class="l" name="229">    229 </a>}<a class="hl" name="230">    230 </a><a class="l" name="231">    231 </a><b>static</b> <b>void</b><a class="l" name="232">    232 </a><a href="/source/s?defs=file_stream_rewind">file_stream_rewind</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="233">    233 </a>{<a class="l" name="234">    234 </a>	(<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="235">    235 </a>}<a class="l" name="236">    236 </a><a class="l" name="237">    237 </a><b>static</b> <b>void</b><a class="l" name="238">    238 </a><a href="/source/s?defs=au_stream_rewind">au_stream_rewind</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="239">    239 </a>{<a class="hl" name="240">    240 </a>	<a href="/source/s?defs=au_filehdr_t">au_filehdr_t</a> <a href="/source/s?defs=au">au</a>;<a class="l" name="241">    241 </a><a class="l" name="242">    242 </a>	(<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="243">    243 </a>	<b>if</b> (<a href="/source/s?defs=read">read</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, &amp;<a href="/source/s?defs=au">au</a>, <b>sizeof</b> (<a href="/source/s?defs=au">au</a>)) != <b>sizeof</b> (<a href="/source/s?defs=au">au</a>)) {<a class="l" name="244">    244 </a>		<b>return</b>;<a class="l" name="245">    245 </a>	}<a class="l" name="246">    246 </a><a class="l" name="247">    247 </a>	<b>if</b> (<a href="/source/s?defs=lseek">lseek</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, (<b>long</b>)(<a href="/source/s?defs=BE32_TO_CPU">BE32_TO_CPU</a>(<a href="/source/s?defs=au">au</a>.<a href="/source/s?defs=au_offset">au_offset</a>)),<a class="l" name="248">    248 </a>	    <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>) &lt; <span class="n">0</span>) {<a class="l" name="249">    249 </a>		<b>return</b>;<a class="hl" name="250">    250 </a>	}<a class="l" name="251">    251 </a>}<a class="l" name="252">    252 </a><a class="l" name="253">    253 </a><b>static</b> <b>void</b><a class="l" name="254">    254 </a><a href="/source/s?defs=wav_stream_rewind">wav_stream_rewind</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="255">    255 </a>{<a class="l" name="256">    256 </a>	(<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a>, (<b>long</b>)(<b>sizeof</b> (<a href="/source/s?defs=Wave_filehdr">Wave_filehdr</a>)), <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="257">    257 </a>}<a class="l" name="258">    258 </a><a class="l" name="259">    259 </a><a href="/source/s?defs=bstreamhandle">bstreamhandle</a><a class="hl" name="260">    260 </a><a href="/source/s?defs=open_file_read_stream">open_file_read_stream</a>(<b>char</b> *<a href="/source/s?defs=file">file</a>)<a class="l" name="261">    261 </a>{<a class="l" name="262">    262 </a>	<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h;<a class="l" name="263">    263 </a>	<b>int</b> <a href="/source/s?defs=fd">fd</a>;<a class="l" name="264">    264 </a>	<b>struct</b> <a href="/source/s?defs=stat">stat</a> <a href="/source/s?defs=st">st</a>;<a class="l" name="265">    265 </a><a class="l" name="266">    266 </a>	<a href="/source/s?defs=str_errno">str_errno</a> = <span class="n">0</span>;<a class="l" name="267">    267 </a>	<b>if</b> (<a href="/source/s?defs=stat">stat</a>(<a href="/source/s?defs=file">file</a>, &amp;<a href="/source/s?defs=st">st</a>) &lt; <span class="n">0</span>)<a class="l" name="268">    268 </a>		<b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="269">    269 </a>	<b>if</b> ((<a href="/source/s?defs=st">st</a>.<a href="/source/s?defs=st_mode">st_mode</a> &amp; <a href="/source/s?defs=S_IFMT">S_IFMT</a>) == <a href="/source/s?defs=S_IFDIR">S_IFDIR</a>) {<a class="hl" name="270">    270 </a>		<a href="/source/s?defs=str_errno">str_errno</a> = <a href="/source/s?defs=STR_ERR_NO_REG_FILE">STR_ERR_NO_REG_FILE</a>;<a class="l" name="271">    271 </a>		<b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="272">    272 </a>	}<a class="l" name="273">    273 </a>	<a href="/source/s?defs=fd">fd</a> = <a href="/source/s?defs=open">open</a>(<a href="/source/s?defs=file">file</a>, <a href="/source/s?defs=O_RDONLY">O_RDONLY</a>);<a class="l" name="274">    274 </a>	<b>if</b> (<a href="/source/s?defs=fd">fd</a> &lt; <span class="n">0</span>)<a class="l" name="275">    275 </a>		<b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="276">    276 </a>	h = (<a href="/source/s?defs=bstreamhandle">bstreamhandle</a>)<a href="/source/s?defs=my_zalloc">my_zalloc</a>(<b>sizeof</b> (*h));<a class="l" name="277">    277 </a>	h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a> = <a href="/source/s?defs=fd">fd</a>;<a class="l" name="278">    278 </a>	h-&gt;<a href="/source/s?defs=bstr_read">bstr_read</a> = <a href="/source/s?defs=file_stream_read">file_stream_read</a>;<a class="l" name="279">    279 </a>	h-&gt;<a href="/source/s?defs=bstr_close">bstr_close</a> = <a href="/source/s?defs=file_stream_close">file_stream_close</a>;<a class="hl" name="280">    280 </a>	h-&gt;<a href="/source/s?defs=bstr_size">bstr_size</a> = <a href="/source/s?defs=file_stream_size">file_stream_size</a>;<a class="l" name="281">    281 </a>	h-&gt;<a href="/source/s?defs=bstr_rewind">bstr_rewind</a> = <a href="/source/s?defs=file_stream_rewind">file_stream_rewind</a>;<a class="l" name="282">    282 </a><a class="l" name="283">    283 </a>	<b>return</b> (h);<a class="l" name="284">    284 </a>}<a class="l" name="285">    285 </a><a class="l" name="286">    286 </a><a href="/source/s?defs=bstreamhandle">bstreamhandle</a><a class="l" name="287">    287 </a><a href="/source/s?defs=open_iso_read_stream">open_iso_read_stream</a>(<b>char</b> *<a href="/source/s?defs=fname">fname</a>)<a class="l" name="288">    288 </a>{<a class="l" name="289">    289 </a>	<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h;<a class="hl" name="290">    290 </a>	<a href="/source/s?defs=off_t">off_t</a> <a href="/source/s?defs=iso_size">iso_size</a> = <span class="n">0</span>;<a class="l" name="291">    291 </a>	<b>char</b> <a href="/source/s?defs=iso_desc">iso_desc</a>[<a href="/source/s?defs=ISO9660_PRIMARY_DESC_SIZE">ISO9660_PRIMARY_DESC_SIZE</a>];<a class="l" name="292">    292 </a><a class="l" name="293">    293 </a>	h = <a href="/source/s?defs=open_file_read_stream">open_file_read_stream</a>(<a href="/source/s?defs=fname">fname</a>);<a class="l" name="294">    294 </a><a class="l" name="295">    295 </a>	<span class="c">/* If we don't have a valid handle immediately return NULL */</span><a class="l" name="296">    296 </a>	<b>if</b> (h == <a href="/source/s?defs=NULL">NULL</a>)<a class="l" name="297">    297 </a>		<b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="298">    298 </a><a class="l" name="299">    299 </a>	<b>if</b> (<a href="/source/s?defs=debug">debug</a>)<a class="hl" name="300">    300 </a>		(<b>void</b>) <a href="/source/s?defs=printf">printf</a>(<span class="s">"Checking the ISO 9660 file header\n"</span>);<a class="l" name="301">    301 </a><a class="l" name="302">    302 </a>	<span class="c">/* Check to see if we have a valid sized ISO image */</span><a class="l" name="303">    303 </a>	h-&gt;<a href="/source/s?defs=bstr_size">bstr_size</a>(h, &amp;<a href="/source/s?defs=iso_size">iso_size</a>);<a class="l" name="304">    304 </a>	<b>if</b> (<a href="/source/s?defs=iso_size">iso_size</a> &lt; <a href="/source/s?defs=ISO9660_HEADER_SIZE">ISO9660_HEADER_SIZE</a>) {

⌨️ 快捷键说明

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