sd.lst
来自「51环境下的FAT及FAT32文件系统源码」· LST 代码 · 共 1,605 行 · 第 1/5 页
LST
1,605 行
167 =1 UINT8 RES_5;
168 =1 UINT8 RES_6;
169 =1 UINT16 AllocationLen;
170 =1 UINT8 RES_7;
171 =1 UINT8 RES_8;
172 =1 UINT8 RES_9;
173 =1 }READ_LONG_CMD, *pREAD_LONG_CMD;
174 =1
175 =1 typedef struct _READ_LONG {
176 =1
177 =1 UINT8 RES_1;
178 =1 UINT8 RES_2;
179 =1 UINT8 RES_3;
180 =1 UINT8 CAP_LIST_LEN;
181 =1
182 =1 UINT8 LBA_3;
183 =1 UINT8 LBA_2;
184 =1 UINT8 LBA_1;
185 =1 UINT8 LBA_0;
186 =1
187 =1 UINT8 Descripter;
188 =1 UINT8 BlockLen_2;
189 =1 UINT8 BlockLen_1;
190 =1 UINT8 BlockLen_0;
191 =1 } READ_LONG, *pREAD_LONG;
192 =1 /*
193 =1 // Read Capacity command
194 =1 */
195 =1 typedef struct _READ_CAPACITY_RBC {
196 =1 UINT8 OperationCode; /* 10H */
197 =1 union {
198 =1 FLEXI_INT32 l0[2];
199 =1 UINT32 l[2];
200 =1 READ_CAPACITY_DATA CapData; /* Reserved area, here is used as temp*/
201 =1 } tmpVar;
202 =1
203 =1 UINT8 Control;
204 =1 } READ_CAPACITY_RBC, *pREAD_CAPACITY_RBC;
205 =1
206 =1 typedef struct _READ_CAPACITY_RSP {
207 =1 UINT32 LastLBA;
208 =1 UINT32 BlockSize;
209 =1
210 =1 } READ_CAPACITY_RSP, *pREAD_CAPACITY_RSP;
211 =1 /*
212 =1 // START_STOP_UNIT
213 =1 */
214 =1 typedef struct _START_STOP_RBC {
215 =1 UINT8 OperationCode; /*1BH*/
216 =1 UINT8 Immediate: 1;
217 =1 UINT8 Reserved1 : 7;
218 =1 UINT8 Reserved2[2];
219 =1 union _START_STOP_FLAGS
220 =1 {
221 =1 struct
222 =1 {
223 =1 UINT8 Start : 1;
224 =1 UINT8 LoadEject : 1;
225 =1 UINT8 Reserved3 : 2;
226 =1 UINT8 PowerConditions: 4;
227 =1 } bits0;
228 =1
C51 COMPILER V8.02 SD 09/19/2006 15:01:24 PAGE 12
229 =1 struct
230 =1 {
231 =1 UINT8 MediumState : 2;
232 =1 UINT8 Reserved3 : 2;
233 =1 UINT8 PowerConditions: 4;
234 =1 } bits1;
235 =1 } Flags;
236 =1 UINT8 Control;
237 =1 } START_STOP_RBC, *pSTART_STOP_RBC;
238 =1
239 =1 /*
240 =1 // Synchronize Cache
241 =1 */
242 =1
243 =1 typedef struct _SYNCHRONIZE_CACHE_RBC {
244 =1
245 =1 UINT8 OperationCode; // 0x35
246 =1 UINT8 Reserved[8];
247 =1 UINT8 Control;
248 =1
249 =1 } SYNCHRONIZE_CACHE_RBC, *pSYNCHRONIZE_CACHE_RBC;
250 =1
251 =1 /*
252 =1 // Write Command
253 =1 */
254 =1 typedef struct _WRITE_RBC {
255 =1 UINT8 OperationCode; // 2AH
256 =1 //UINT8 Reserved0 : 3;
257 =1 //UINT8 FUA : 1;
258 =1 //UINT8 Reserved1 : 4;
259 =1 UINT8 VendorSpecific;
260 =1 union{
261 =1 struct
262 =1 {
263 =1 UINT8 LBA_3;
264 =1 UINT8 LBA_2;
265 =1 UINT8 LBA_1;
266 =1 UINT8 LBA_0;
267 =1 } LBA_W8 ;
268 =1
269 =1 UINT32 LBA_W32;
270 =1 } LBA;
271 =1 UINT8 Reserved2;
272 =1 UINT16 XferLength;
273 =1 UINT8 Control;
274 =1 } WRITE_RBC, *pWRITE_RBC;
275 =1
276 =1 /*
277 =1 // VERIFY Command
278 =1 */
279 =1 typedef struct _VERIFY_RBC {
280 =1 UINT8 OperationCode; // 2FH
281 =1 UINT8 Reserved0;
282 =1 UINT8 LBA_3; // Big Endian
283 =1 UINT8 LBA_2;
284 =1 UINT8 LBA_1;
285 =1 UINT8 LBA_0;
286 =1 UINT8 Reserved1;
287 =1 UINT8 VerifyLength_1; // Big Endian
288 =1 UINT8 VerifyLength_0;
289 =1 UINT8 Control;
290 =1 } VERIFY_RBC, *pVERIFY_RBC;
C51 COMPILER V8.02 SD 09/19/2006 15:01:24 PAGE 13
291 =1
292 =1
293 =1 /*
294 =1 //***********************************************************************************
295 =1 // SPC-2 of SCSI-3 commands
296 =1 //***********************************************************************************
297 =1 */
298 =1
299 =1 /*
300 =1 // INQUIRY Command
301 =1 */
302 =1 typedef struct _INQUIRY_SPC {
303 =1 UINT8 OperationCode; // 12H
304 =1 UINT8 EnableVPD:1 ;
305 =1 UINT8 CmdSupportData:1 ;
306 =1 UINT8 Reserved0:6 ;
307 =1 UINT8 PageCode;
308 =1 UINT8 Reserved1;
309 =1 UINT8 AllocationLen;
310 =1 UINT8 Control;
311 =1 } INQUIRY_SPC, *pINQUIRY_SPC;
312 =1
313 =1 /*
314 =1 typedef struct _STD_INQUIRYDATA {
315 =1 UINT8 DeviceType : 5;
316 =1 UINT8 Reserved0 : 3;
317 =1
318 =1 UINT8 Reserved1 : 7;
319 =1 UINT8 RemovableMedia : 1;
320 =1
321 =1 UINT8 Reserved2;
322 =1
323 =1 UINT8 Reserved3 : 5;
324 =1 UINT8 NormACA : 1;
325 =1 UINT8 Obsolete0 : 1;
326 =1 UINT8 AERC : 1;
327 =1
328 =1 UINT8 Reserved4[3];
329 =1
330 =1 UINT8 SoftReset : 1;
331 =1 UINT8 CommandQueue : 1;
332 =1 UINT8 Reserved5 : 1;
333 =1 UINT8 LinkedCommands : 1;
334 =1 UINT8 Synchronous : 1;
335 =1 UINT8 Wide16Bit : 1;
336 =1 UINT8 Wide32Bit : 1;
337 =1 UINT8 RelativeAddressing : 1;
338 =1
339 =1 UINT8 VendorId[8];
340 =1
341 =1 UINT8 ProductId[16];
342 =1
343 =1 UINT8 ProductRevisionLevel[4];
344 =1
345 =1 // Above is 36 bytes
346 =1 // can be tranmitted by Bulk
347 =1
348 =1 UINT8 VendorSpecific[20];
349 =1 UINT8 InfoUnitSupport : 1;
350 =1 UINT8 QuickArbitSupport : 1;
351 =1 UINT8 Clocking : 2;
352 =1 UINT8 Reserved6 : 4;
C51 COMPILER V8.02 SD 09/19/2006 15:01:24 PAGE 14
353 =1
354 =1 UINT8 Reserved7 ;
355 =1 UINT16 VersionDescriptor[8] ;
356 =1
357 =1 UINT8 Reserved8[22];
358 =1 } STD_INQUIRYDATA, *pSTD_INQUIRYDATA;
359 =1 */
360 =1
361 =1 /*
362 =1 typedef struct _SERIALNUMBER_PAGE {
363 =1 UINT8 DeviceType : 5;
364 =1 UINT8 DeviceTypeQualifier : 3;
365 =1
366 =1 UINT8 PageCode ;
367 =1 UINT8 Reserved0 ;
368 =1
369 =1 UINT8 PageLength ;
370 =1 UINT8 SerialNumber[24] ;
371 =1
372 =1 }VPD_SERIAL_PAGE,*pVPD_SERIAL_PAGE;
373 =1 */
374 =1 /*
375 =1 #define ASCII_ID_STRING 32
376 =1 typedef struct _ID_DESCRIPTOR {
377 =1 UINT8 CodeSet : 4;
378 =1 UINT8 Reserved0 : 4;
379 =1
380 =1 UINT8 IDType : 4;
381 =1 UINT8 Association : 2;
382 =1 UINT8 Reserved1 : 2;
383 =1
384 =1 UINT8 Reserved2;
385 =1
386 =1 UINT8 IDLength ;
387 =1 UINT8 AsciiID[ASCII_ID_STRING];
388 =1 } ASCII_ID_DESCRIPTOR,*pASCII_ID_DESCRIPTOR;
389 =1 */
390 =1 /*
391 =1 typedef struct _DEVICE_ID_PAGE
392 =1 {
393 =1 UINT8 DeviceType : 5;
394 =1 UINT8 DeviceTypeQualifier : 3;
395 =1
396 =1 UINT8 PageCode ;
397 =1 UINT8 Reserved0 ;
398 =1
399 =1 UINT8 PageLength ;
400 =1
401 =1 ASCII_ID_DESCRIPTOR AsciiIdDescriptor[1];
402 =1 } VPD_DEVICE_ID_PAGE, *pVPD_DEVICE_ID_PAGE;
403 =1 */
404 =1 /*
405 =1 // Mode Select
406 =1 */
407 =1 typedef struct _MODE_SELECT_SPC {
408 =1 UINT8 OperationCode; // 15H
409 =1 UINT8 SavePage : 1 ;
410 =1 UINT8 Reseved0 : 3 ;
411 =1 UINT8 PageFormat : 1 ;
412 =1 UINT8 Reserved1 : 3 ;
413 =1 UINT8 Reserved2[2];
414 =1 UINT8 ParameterLen;
C51 COMPILER V8.02 SD 09/19/2006 15:01:24 PAGE 15
415 =1 UINT8 Control;
416 =1 } MODE_SELECT_SPC, *pMODE_SELECT_SPC;
417 =1
418 =1 typedef struct _MBR_BLOCK {
419 =1 UINT8 Res[454];
420 =1 unsigned long StartSector;
421 =1 unsigned long TotalSector;
422 =1 UINT8 Res1[50];
423 =1 } MBR_BLOCK,*pMBR_BLOCK;
424 =1
425 =1 typedef struct _BPB_BLOCK {
426 =1 UINT8 BS_jmpBoo[3];
427 =1 UINT8 BS_OEMName[8];
428 =1 UINT16 BPB_BytesPerSec;
429 =1 UINT8 BPB_SecPerClus;
430 =1 UINT16 BPB_RsvdSecCnt;
431 =1 UINT8 BPB_NumFATs;
432 =1 UINT16 BPB_RootEntCnt;
433 =1 UINT16 BPB_TotSec16;
434 =1 UINT8 BPB_Media;
435 =1 UINT16 BPB_FATSz16;
436 =1 UINT16 BPB_SecPerTrk;
437 =1 UINT16 BPB_NumHeads;
438 =1 unsigned long BPB_HiddSec;
439 =1 unsigned long BPB_TotSec32;
440 =1 UINT8 BS_DrvNum;
441 =1 UINT8 BS_Reserved1;
442 =1 UINT8 BS_BootSig;
443 =1 UINT8 BS_VolID[4];
444 =1 UINT8 BS_VolLab[11];
445 =1 UINT8 BS_FilSysType[8];
446 =1 UINT8 ExecutableCode[448];
447 =1 UINT8 Marker[2];
448 =1 } BPB_BLOCK,*pBPB_BLOCK;
449 =1
450 =1 typedef struct _BPB_BLOCK32 {
451 =1 UINT8 BS_jmpBoo[3];
452 =1 UINT8 BS_OEMName[8];
453 =1 UINT16 BPB_BytesPerSec;
454 =1 UINT8 BPB_SecPerClus;
455 =1 UINT16 BPB_RsvdSecCnt;
456 =1 UINT8 BPB_NumFATs;
457 =1 UINT16 BPB_RootEntCnt;
458 =1 UINT16 BPB_TotSec16;
459 =1 UINT8 BPB_Media;
460 =1 UINT16 BPB_FATSz16;
461 =1 UINT16 BPB_SecPerTrk;
462 =1 UINT16 BPB_NumHeads;
463 =1 unsigned long BPB_HiddSec;
464 =1 unsigned long BPB_TotSec32;
465 =1 UINT32 BPB_FATSz32;
466 =1 UINT16 BPB_ExtFlags;
467 =1 UINT16 BPB_FSVer;
468 =1 UINT32 BPB_RootClus;
469 =1 UINT16 BPB_FSInfo;
470 =1 UINT16 BPB_BkBootSec;
471 =1 UINT8 BPB_Reserved[12];
472 =1 UINT8 BS_DrvNum;
473 =1 UINT8 BS_Reserved1;
474 =1 UINT8 BS_BootSig;
475 =1 UINT32 BS_VolID;
476 =1 UINT8 BS_VolLab[11];
C51 COMPILER V8.02 SD 09/19/2006 15:01:24 PAGE 16
477 =1 UINT8 BS_FilSysType[8];
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?