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

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

📁 光驱cdrom读写源代码,scsi命令解析
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<A class=l name=15>     15 </A> * If applicable, add the following below this CDDL HEADER, with the
<A class=l name=16>     16 </A> * fields enclosed by brackets "[]" replaced with your own identifying
<A class=l name=17>     17 </A> * information: Portions Copyright [yyyy] [name of copyright owner]
<A class=l name=18>     18 </A> *
<A class=l name=19>     19 </A> * CDDL HEADER END
<A class=hl name=20>     20 </A> */</SPAN>
<A class=l name=21>     21 </A><SPAN class=c>/*
<A class=l name=22>     22 </A> * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
<A class=l name=23>     23 </A> * Use is subject to license terms.
<A class=l name=24>     24 </A> */</SPAN>
<A class=l name=25>     25 </A>
<A class=l name=26>     26 </A>#<B>pragma</B> <B>ident</B>	<SPAN class=s>"%Z%%M%	%I%	%E% SMI"</SPAN>
<A class=l name=27>     27 </A>
<A class=l name=28>     28 </A>#<B>include</B> &lt;<A href="http://cvs.opensolaris.org/source/s?path=sys/types.h">sys/types.h</A>&gt;
<A class=l name=29>     29 </A>#<B>include</B> &lt;<A href="http://cvs.opensolaris.org/source/s?path=stdlib.h">stdlib.h</A>&gt;
<A class=hl name=30>     30 </A>#<B>include</B> &lt;<A href="http://cvs.opensolaris.org/source/s?path=stdio.h">stdio.h</A>&gt;
<A class=l name=31>     31 </A>#<B>include</B> &lt;<A href="http://cvs.opensolaris.org/source/s?path=string.h">string.h</A>&gt;
<A class=l name=32>     32 </A>
<A class=l name=33>     33 </A>#<B>include</B> <SPAN class=s>"<A href="http://cvs.opensolaris.org/source/s?path=transport.h">transport.h</A>"</SPAN>
<A class=l name=34>     34 </A>#<B>include</B> <SPAN class=s>"<A href="http://cvs.opensolaris.org/source/s?path=mmc.h">mmc.h</A>"</SPAN>
<A class=l name=35>     35 </A>#<B>include</B> <SPAN class=s>"<A href="http://cvs.opensolaris.org/source/s?path=util.h">util.h</A>"</SPAN>
<A class=l name=36>     36 </A>#<B>include</B> <SPAN class=s>"<A href="http://cvs.opensolaris.org/source/s?path=main.h">main.h</A>"</SPAN>
<A class=l name=37>     37 </A>
<A class=l name=38>     38 </A><B>int</B>
<A class=l name=39>     39 </A><A href="http://cvs.opensolaris.org/source/s?defs=test_unit_ready">test_unit_ready</A>(<B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=fd">fd</A>)
<A class=hl name=40>     40 </A>{
<A class=l name=41>     41 </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=42>     42 </A>
<A class=l name=43>     43 </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=44>     44 </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=45>     45 </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=46>     46 </A>	<SPAN class=c>/* give length of cdb structure */</SPAN>
<A class=l name=47>     47 </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>6</SPAN>;
<A class=l name=48>     48 </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=49>     49 </A>		<B>return</B> (<SPAN class=n>0</SPAN>);
<A class=hl name=50>     50 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=51>     51 </A>}
<A class=l name=52>     52 </A>
<A class=l name=53>     53 </A><B>int</B>
<A class=l name=54>     54 </A><A href="http://cvs.opensolaris.org/source/s?defs=inquiry">inquiry</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=uchar_t">uchar_t</A> *<A href="http://cvs.opensolaris.org/source/s?defs=inq">inq</A>)
<A class=l name=55>     55 </A>{
<A class=l name=56>     56 </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=57>     57 </A>
<A class=l name=58>     58 </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=59>     59 </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=hl name=60>     60 </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=61>     61 </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=INQUIRY_CMD">INQUIRY_CMD</A>;
<A class=l name=62>     62 </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>4</SPAN>] = <A href="http://cvs.opensolaris.org/source/s?defs=INQUIRY_DATA_LENGTH">INQUIRY_DATA_LENGTH</A>;
<A class=l name=63>     63 </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>6</SPAN>;
<A class=l name=64>     64 </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=inq">inq</A>;
<A class=l name=65>     65 </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=INQUIRY_DATA_LENGTH">INQUIRY_DATA_LENGTH</A>;
<A class=l name=66>     66 </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=67>     67 </A>		<B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=68>     68 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=69>     69 </A>}
<A class=hl name=70>     70 </A>
<A class=l name=71>     71 </A><B>int</B>
<A class=l name=72>     72 </A><A href="http://cvs.opensolaris.org/source/s?defs=read_capacity">read_capacity</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=uchar_t">uchar_t</A> *<A href="http://cvs.opensolaris.org/source/s?defs=capbuf">capbuf</A>)
<A class=l name=73>     73 </A>{
<A class=l name=74>     74 </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=75>     75 </A>
<A class=l name=76>     76 </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=77>     77 </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=78>     78 </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=79>     79 </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_CAP_CMD">READ_CAP_CMD</A>;
<A class=hl name=80>     80 </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=81>     81 </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=capbuf">capbuf</A>;
<A class=l name=82>     82 </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> = <SPAN class=n>8</SPAN>;
<A class=l name=83>     83 </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=84>     84 </A>		<B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=85>     85 </A>	<B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=86>     86 </A>}
<A class=l name=87>     87 </A>
<A class=l name=88>     88 </A><B>int</B>
<A class=l name=89>     89 </A><A href="http://cvs.opensolaris.org/source/s?defs=mode_sense">mode_sense</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=uchar_t">uchar_t</A> <A href="http://cvs.opensolaris.org/source/s?defs=pc">pc</A>, <B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=dbd">dbd</A>, <B>int</B> <A href="http://cvs.opensolaris.org/source/s?defs=page_len">page_len</A>, <A href="http://cvs.opensolaris.org/source/s?defs=uchar_t">uchar_t</A> *<A href="http://cvs.opensolaris.org/source/s?defs=buffer">buffer</A>)
<A class=hl name=90>     90 </A>{
<A class=l name=91>     91 </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=92>     92 </A>
<A class=l name=93>     93 </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=94>     94 </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=95>     95 </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=page_len">page_len</A>;
<A class=l name=96>     96 </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=buffer">buffer</A>;
<A class=l name=97>     97 </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=98>     98 </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>0xa</SPAN>;
<A class=l name=99>     99 </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=MODE_SENSE_10_CMD">MODE_SENSE_10_CMD</A>;
<A class=hl name=100>    100 </A>	<B>if</B> (<A href="http://cvs.opensolaris.org/source/s?defs=dbd">dbd</A>) {
<A class=l name=101>    101 </A>		<SPAN class=c>/* don't return any block descriptors */</SPAN>
<A class=l name=102>    102 </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>0x8</SPAN>;
<A class=l name=103>    103 </A>	}
<A class=l name=104>    104 </A>	<SPAN class=c>/* the page code we want */</SPAN>

⌨️ 快捷键说明

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