command.jp
5.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
TMessage4dd にセットするメッセ−ジコマンド一覧
コマンド LEOCMD_GETID
パラメータ
param.hi : LEODiskID へのポインタ
param.lo : メディア確認フラグ
説明
ディスクの挿入確認を行います。
ディスクが挿入されていなければ挿入されるまで dd_getStatus()->mode
に DDSTAT_DIALOGUE ビットが立ちますので、アプリケーション側で
適切なメッセ−ジを表示してください。詳しくは64DDプログラミング
マニュアル10章「10.1.6 エラーメッセ−ジの描画」を見てください。
param.lo が 0 の時は、カレントのディスクIDと一致するメディア
を確認するまで処理を続け、その後カレントディスクIDを返します。
最初のカレントディスクIDはブート時、もしくは最初に挿されたディ
スクIDです。dd_saveID() を使用してカレントIDを変更すること
が出来ます。
param.lo が 1 の時は、メディアが交換されたかどうかに関係なく、
現在挿入されているディスクIDを返します。ディスクを交換させた
いときはこのフラグを0にして新しいディスクのIDを取得します。
続いてIDをチェックし、問題なければ dd_saveID() を使用してこ
のIDを新しいカレントのIDとしてセットします。
param.hi が NULLでなければ param.hi の差すアドレスにディスクI
Dの値が入ります。
コマンド LEOCMD_LBAREAD
パラメータ
param.hi : 読み取り開始LBA
param.lo : 読み取りブロック数
param.rw : バッファアドレス(should be aligned by 16)
返り値
param.rw : バッファアドレス(aligned by 16)
retVal : 読み取ったデータサイズ (byte)
説明
param.hi で表されるLBAから param.lo 個のブロック を バッ
ファに読み込みます。バッファが16バイトアライメントされていな
い場合param.rwの値が変更される可能性があります。(関数内部で自
動補正するため)コマンド実行に失敗すると retVal に0が入ります。
バッファアドレスに NULL を指定するとデフォルトの内部バッファを使用します。
param.rwにはデフォルトバッファのアドレスがセットされます。
デフォルトバッファのサイズは READWRITE_BYTESIZE です。
これ以上の大きさを指定するとディスクスレッドは
errno=LEO_ERROR_BUFFER_OVERFLOW として異常終了します。
バッファを指定したときはサイズのチェックはおこないません。
コマンド LEOCMD_BYTEREAD
パラメータ
param.hi : 読み取り 開始 位置(ディスク先頭からのオフセット)
param.lo : 読み取り バイト数
param.rw : バッファアドレス (should be aligned by 16)
返り値
param.rw : バッファアドレス(aligned by 16)
param.offs : 指定データが読み込まれたバッファ位置までのオフセット
retVal : 実際に読み込んだデータサイズ (byte) ( >= param.lo )
説明
param.hi 表される位置から param.lo バイトを param.rw で指定し
たバッファに読み込みます。param.hi, param.lo を バイト数として
扱う以外は LEOCMD_LBAREADと同じです。 必要なバッファのサイズは
指定したバイトサイズより最大約2ブロック分大きくなります。指定
したデータは param.rw + param.offs から格納されている点に注意
してください。
コマンド LEOCMD_LBAWRITE
パラメータ
param.hi : 書きこみ開始LBA
param.lo : 書きこみブロック数
param.rw : バッファアドレス (should be aligned by 16)
返り値
param.rw : バッファアドレス(aligned by 16)
retVal : 書きこんだデータサイズ (byte)
説明
param.rwで指定したバッファ から param.lo 個のブロックを
param.hi で指定されるLBAに書きこみます。
必要なバッファのサイズは指定したサイズより最大1ブロック分大きくなります。
バッファは16バイトアライメントされている必要があります。
コマンド LEOCMD_BYTEWRITE
実装していません。
コマンド LEOCMD_ACTIVE LEOCMD_STANDBY LEOCMD_SLEEP LEOCMD_BRAKE
パラメータ なし
説明
LeoSpdlMotor をそれぞれのモードで実行します。 詳しくは
64DDプログラミングマニュアル7章の LeoSpdlMotor の説明を見てく
ださい。
コマンド LEOCMD_EJECT
パラメータ なし
説明
ディスクのイジェクト操作を行います。
イジェクトが確認されるまで dd_getStatus()->mode に
DDSTAT_DIALOGUE ビットが立ちますので、アプリケーション側で
適切なメッセ−ジを表示してください。詳しくは64DDプログラミング
マニュアル10章「10.1.6 エラーメッセ−ジの描画」を見てください。
コマンド LEOCMD_GETRTC
返り値
param (8byte)
説明
¶m から sizeof(LEODiskTime) の領域をバッファとして
LEODiskTime の値を格納します。
¶mを LEODiskTime * にキャストして値を取得します。
コマンド LEOCMD_SETRTC
パラメータ
param (8byte) LEODiskTime の値
説明
指定した LEODiskTime の値を RTC にセットします。
コマンド LEOCMD_SEEK
パラメータ
param.hi = 移動先LBA
説明
読み取りヘッダを移動させます。詳しくは64DDプログラミングマニュ
アル7章の LeoSeek の説明を見てください。
コマンド LEOCMD_REZERO
パラメータ
なし
説明
リゼロを実行します。詳しくは64DDプログラミングマニュアル7章の
LeoRezero の説明を見てください。
コマンド LEOCMD_TESTUNIT
パラメータ
なし
返り値
retval = LEOStatus の値 | 0x100
説明
64DDの状態を調べます。詳しくは64DDプログラミングマニュアル7章
の LeoTestUnitReady の説明を見てください。実行に失敗すると
retvalには0が入ります。
コマンド LEOCMD_SETMOTORTIME
パラメータ
param.hi : Active -> Standby への移行時間
param.lo : Standby -> Sleep への移行時間
説明
詳しくは64DDプログラミングマニュアル7章の LeoModeSelectAsync
の説明を見てください。
コマンド LEOCMD_INITIALIZE
説明
dd_create() を呼び出したとき内部でこのコマンドを発行します。
アプリケーションからは使用しないでください。
・retValの説明がないものは成功時が -1 実行失敗時は 0 を返します。