?? cross reference -onnv-onnv-gate-usr-src-cmd-cdrw-mmc_c.htm
字號:
<A class=l name=105> 105 </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=pc">pc</A>;
<A class=l name=106> 106 </A> <SPAN class=c>/* allocation length */</SPAN>
<A class=l name=107> 107 </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=page_len">page_len</A> >> <SPAN class=n>8</SPAN>) & <SPAN class=n>0xff</SPAN>;
<A class=l name=108> 108 </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=page_len">page_len</A> & <SPAN class=n>0xff</SPAN>;
<A class=l name=109> 109 </A>
<A class=hl name=110> 110 </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=111> 111 </A> <B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=112> 112 </A> <B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=113> 113 </A>}
<A class=l name=114> 114 </A>
<A class=l name=115> 115 </A><B>int</B>
<A class=l name=116> 116 </A><A href="http://cvs.opensolaris.org/source/s?defs=mode_select">mode_select</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=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=l name=117> 117 </A>{
<A class=l name=118> 118 </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=119> 119 </A>
<A class=hl name=120> 120 </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=121> 121 </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=122> 122 </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=page_len">page_len</A>;
<A class=l name=123> 123 </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=buffer">buffer</A>;
<A class=l name=124> 124 </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=125> 125 </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>0xa</SPAN>;
<A class=l name=126> 126 </A>
<A class=l name=127> 127 </A> <SPAN class=c>/* mode select (10) command */</SPAN>
<A class=l name=128> 128 </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=MODE_SELECT_10_CMD">MODE_SELECT_10_CMD</A>;
<A class=l name=129> 129 </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>0x10</SPAN>;
<A class=hl name=130> 130 </A>
<A class=l name=131> 131 </A> <SPAN class=c>/* parameter list length */</SPAN>
<A class=l name=132> 132 </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=page_len">page_len</A> >> <SPAN class=n>8</SPAN>) & <SPAN class=n>0xff</SPAN>;
<A class=l name=133> 133 </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=page_len">page_len</A> & <SPAN class=n>0xff</SPAN>;
<A class=l name=134> 134 </A>
<A class=l name=135> 135 </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=136> 136 </A> <B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=137> 137 </A> <B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=138> 138 </A>}
<A class=l name=139> 139 </A>
<A class=hl name=140> 140 </A><B>int</B>
<A class=l name=141> 141 </A><A href="http://cvs.opensolaris.org/source/s?defs=read_track_info">read_track_info</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>, <A href="http://cvs.opensolaris.org/source/s?defs=uchar_t">uchar_t</A> *<A href="http://cvs.opensolaris.org/source/s?defs=ti">ti</A>)
<A class=l name=142> 142 </A>{
<A class=l name=143> 143 </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=144> 144 </A>
<A class=l name=145> 145 </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=146> 146 </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=147> 147 </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=148> 148 </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_TRACK_CMD">READ_TRACK_CMD</A>;
<A class=l name=149> 149 </A>
<A class=hl name=150> 150 </A> <SPAN class=c>/* tell device we are giving it a track number */</SPAN>
<A class=l name=151> 151 </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=152> 152 </A>
<A class=l name=153> 153 </A> <SPAN class=c>/* track number to read */</SPAN>
<A class=l name=154> 154 </A> <B>if</B> (<A href="http://cvs.opensolaris.org/source/s?defs=trackno">trackno</A> == -<SPAN class=n>1</SPAN>)
<A class=l name=155> 155 </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=CD_RW">CD_RW</A>) {
<A class=l name=156> 156 </A> ((<A href="http://cvs.opensolaris.org/source/s?defs=uchar_t">uchar_t</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>0xff</SPAN>;
<A class=l name=157> 157 </A> } <B>else</B> {
<A class=l name=158> 158 </A> <SPAN class=c>/* only 1 track is allowed on DVD media */</SPAN>
<A class=l name=159> 159 </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>0</SPAN>;
<A class=hl name=160> 160 </A> ((<A href="http://cvs.opensolaris.org/source/s?defs=uchar_t">uchar_t</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>0</SPAN>;
<A class=l name=161> 161 </A> }
<A class=l name=162> 162 </A> <B>else</B>
<A class=l name=163> 163 </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=uchar_t">uchar_t</A>)<A href="http://cvs.opensolaris.org/source/s?defs=trackno">trackno</A>;
<A class=l name=164> 164 </A>
<A class=l name=165> 165 </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=TRACK_INFO_SIZE">TRACK_INFO_SIZE</A>;
<A class=l name=166> 166 </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=167> 167 </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=ti">ti</A>;
<A class=l name=168> 168 </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=TRACK_INFO_SIZE">TRACK_INFO_SIZE</A>;
<A class=l name=169> 169 </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=hl name=170> 170 </A> <B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=171> 171 </A> <B>return</B> (<SPAN class=n>1</SPAN>);
<A class=l name=172> 172 </A>}
<A class=l name=173> 173 </A>
<A class=l name=174> 174 </A><B>int</B>
<A class=l name=175> 175 </A><A href="http://cvs.opensolaris.org/source/s?defs=read_toc">read_toc</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=format">format</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=buflen">buflen</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=176> 176 </A>{
<A class=l name=177> 177 </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=178> 178 </A>
<A class=l name=179> 179 </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=hl name=180> 180 </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=181> 181 </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=182> 182 </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_TOC_CMD">READ_TOC_CMD</A>;
<A class=l name=183> 183 </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=format">format</A> & <SPAN class=n>0xf</SPAN>;
<A class=l name=184> 184 </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>6</SPAN>] = <A href="http://cvs.opensolaris.org/source/s?defs=trackno">trackno</A>;
<A class=l name=185> 185 </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=buflen">buflen</A> & <SPAN class=n>0xff</SPAN>;
<A class=l name=186> 186 </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=buflen">buflen</A> >> <SPAN class=n>8</SPAN>) & <SPAN class=n>0xff</SPAN>;
<A class=l name=187> 187 </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=188> 188 </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=189> 189 </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=buflen">buflen</A>;
<A class=hl name=190> 190 </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=191> 191 </A> <B>return</B> (<SPAN class=n>0</SPAN>);
<A class=l name=192> 192 </A>
<A class=l name=193> 193 </A> <SPAN class=c>/* Fix for old SONY drives */</SPAN>
<A class=l name=194> 194 </A> <B>if</B> ((<A href="http://cvs.opensolaris.org/source/s?defs=format">format</A> == <SPAN class=n>0</SPAN>) && (<A href="http://cvs.opensolaris.org/source/s?defs=buflen">buflen</A> == <SPAN class=n>4</SPAN>) && (<A href="http://cvs.opensolaris.org/source/s?defs=buf">buf</A>[<SPAN class=n>0</SPAN>] == <SPAN class=n>0</SPAN>) && (<A href="http://cvs.opensolaris.org/source/s?defs=buf">buf</A>[<SPAN class=n>1</SPAN>] == <SPAN class=n>2</SPAN>)) {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -