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 + -
显示快捷键?