LeoByteToLBA.htm 2.86 KB
<HTML>
<HEAD>
<TITLE>HTML 文書</TITLE>

<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.03j">
</HEAD>
<BODY>
<P>
<B><FONT FACE="Arial">LeoByteToLBA(3P) LeoLBAToByte(3P)<BR>
</FONT></B>
<P>
<B>関数名</B>
<P>
LeoByteToLBA, LeoLBAToByte
<P>
→ LBA, byte間の変換 <BR>
</FONT>
<P>
<B>構文</B>
<PRE>
<FONT SIZE=4>#include &lt;PR/leo.h&gt;

s32 LeoByteToLBA(s32 <U>startlba</U>, u32 <U>nbytes</U>, s32 *<U>lbas</U>);
s32 LeoLBAToByte(s32 <U>startlba</U>, u32 <U>nlbas</U>, s32 *<U>bytes</U>);
</FONT>
</PRE>
<P>
<B>説明</B>
<P>
LBA, byte間の変換をします。64DDでは1ブロックのサイズがブロックによって異なります
ので、これらの関数を呼ぶことで変換をしてください(ブロックサイズについては64DDプ
ログラミングマニュアル「第11章 64DDのハードに関するスペックの説明」参照)。<BR>
<P>
<B>注意:</B>LBAの計算はディスクタイプに依存するため、<b>LeoByteToLBA</b>, <b>
LeoLBAToByte</b>ではleoマネージャの内部変数を便宜的に使用しています。これはこの
コマンドを発行する直前にもしディスクタイプの異なる別のディスクに入れ替えられてい
た場合、結果得られるLBA数はそのとき挿入されているディスクで計算した値とは異なるこ
とになります。このコマンドで特に「DISK_MAY_HAVE_CHANGED」エラーが返ってくることは
ないことに注意してください。ここで計算した値を元にディスクに対してリード/ライト
/シーク等の操作をする場合、その操作に対するコマンドがもし「DISK_MAY_HAVE_CHANGED」
エラーを返してきたら、LBA-Byte変換から実行し直すように設計してください。くわしくは
64DDプログラミングマニュアル「第10章 エラー処理シーケンス」を参照してください。
<BR>
<P>
<b>LeoByteToLBA</b>( )はバイト数をLBA数に変換します。<U><FONT FACE="Courier">startlba
</FONT></U>で指定したブロックの先頭から<U><FONT FACE="Courier">nbytes</FONT></U>
は、何LBAになるかを、<U><FONT FACE="Courier">lbas</FONT></U>に返
します。
<BR>
<P>
<b>LeoLBAToByte</b>( )はLBA数をバイト数に変換します。<U><FONT FACE="Courier">
startlba</FONT></U>で指定したブロックの先頭から<U><FONT FACE="Courier">nlbas</FONT>
</U>ブロックは何バイトになるかを、<U><FONT FACE="Courier">bytes</FONT></U>に返します。
<BR>
<P>
返り値の意味は、以下のとおりです。
<P>
<B>-1</B>
<P>
leoマネージャが立ち上がっていません。変換に際しては現在挿入されているディスクのタイ
プが参照されますので、これらの関数は必ずleoマネージャを立ち上げた後に呼ぶようにして
ください。
<BR>
<P>
<B>LEO_ERROR_LBA_OUT_OF_RANGE</B>
<P>
指定されたLBA,あるいは結果のLBAが範囲外です。<BR>
<P>
<B>LEO_ERROR_GOOD</B>
<P>
正常終了です。<BR>
<P>
<B>参照</B>
<P>
<A HREF="../tool/byte2lba.htm">byte2lba</A>(1P), <A HREF="../tool/byte2lba.htm">lba2byte</A>(1P),
<A HREF="LeoCreateLeoManager.htm">Leo*CreateLeoManager</A>(3P),
<A HREF="LeoReadCapacity.htm">LeoReadCapacity</A>(3P)
<BR>
<HR>
<P>
<A HREF="64dd_INDEX.htm">64DDのマニュアルページのメニューへ</A>
<P>
<A HREF="../n64man.htm">N64のマニュアルページのトップメニューへ</A>
<P>
 
</BODY>
</HTML>