Advertisement
Guest User

Untitled

a guest
May 29th, 2015
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.64 KB | None | 0 0
  1. void readRoot()
  2. {
  3.         int counter = 0;
  4.         TMachineSignalState OldState;
  5.  
  6.         MachineFileSeek(fd, 512 * bpb->FirstRootSector, 0, MyMachineFileCallback, threads[curThreadID]);
  7.  
  8.         for (int i = 0; i < (bpb->RootEntCnt / 16); i++)
  9.         {
  10.         //      cout<<"i: "<<i<<endl;
  11.                 uint8_t* sharedLocation;
  12.                 void* buff;
  13.                 VMMemoryPoolAllocate(memPools[1]->PoolID, 512, &buff);                MachineSuspendSignals(&OldState);
  14.                 MachineFileRead(fd, buff, 512, MyMachineFileCallback, threads[curThreadID]);
  15.                 threads[curThreadID]->state = VM_THREAD_STATE_WAITING;
  16.                 Schedule();
  17.                 MachineResumeSignals(&OldState);
  18.  
  19.                 sharedLocation = (uint8_t*)buff;
  20.  
  21.        int innerOffset = 0;
  22.                 for (int i = 0; i < 16; i++)
  23.                 {
  24.                         //cout<<"what"<<endl;
  25.                         Root* rootEntry = new Root;
  26.  
  27.                 counter = 0;
  28.                 for (int i = 0 + innerOffset; i < 11 + innerOffset; i++)
  29.                 {
  30.                         rootEntry->dir_Name[counter] = sharedLocation[i];
  31.                         counter++;
  32.                 }
  33.  
  34.       rootEntry->dir_Attr = sharedLocation[11 + innerOffset];
  35.  
  36.                 rootEntry->dir_NTRes = sharedLocation[12 + innerOffset];
  37.  
  38.                 rootEntry->dir_CrtTimeTenth = sharedLocation[13 + innerOffset];
  39.  
  40.                 counter = 0;
  41.  
  42.                 for (int i = 14 + innerOffset; i < 16 + innerOffset; i++)
  43.                 {
  44.                         rootEntry->dir_CrtTime[counter] = sharedLocation[i];
  45.                         counter++;
  46.                 }
  47.  
  48.                 counter = 0;
  49.  
  50.                 for (int i = 16 + innerOffset; i < 18 + innerOffset; i++)
  51.                 {
  52.                         rootEntry->dir_CrtDate[counter] = sharedLocation[i];
  53.                         counter++;
  54.                 }
  55.  
  56.  
  57.                 counter = 0;
  58.  
  59.                 for (int i = 18 + innerOffset; i < 20 + innerOffset; i++)
  60.                 {
  61.                         rootEntry->dir_LstAccDate[counter] = sharedLocation[i];
  62.                         counter++;
  63.                 }
  64.  
  65.                 counter = 0;
  66.  
  67.                 for (int i = 20 + innerOffset; i < 22 + innerOffset; i++)
  68.                 {
  69.                         rootEntry->dir_FstClusHI[counter] = sharedLocation[i];
  70.                         counter++;
  71.                 }
  72.  
  73.  
  74.                 counter = 0;
  75.        for (int i = 22 + innerOffset; i < 24 + innerOffset; i++)
  76.                 {
  77.                         rootEntry->dir_WrtTime[counter] = sharedLocation[i];
  78.                         counter++;
  79.                 }
  80.  
  81.  
  82.                 counter = 0;
  83.  
  84.                 for (int i = 24 + innerOffset; i < 26 + innerOffset; i++)
  85.                 {
  86.                         rootEntry->dir_WrtDate[counter] = sharedLocation[i];
  87.                         counter++;
  88.                 }
  89.  
  90.                 counter = 0;
  91.  
  92.                 for (int i = 26 + innerOffset; i < 28 + innerOffset; i++)
  93.                 {
  94.                         rootEntry->dir_FstClusLO[counter] = sharedLocation[i];
  95.                         counter++;
  96.                 }
  97.                 counter = 0;
  98.  
  99.                 for (int i = 28 + innerOffset; i < 32 + innerOffset; i++)
  100.                 {
  101.                         rootEntry->dir_FileSize[counter] = sharedLocation[i];
  102.                         counter++;
  103.                 }
  104.  
  105.                         innerOffset += 32;
  106.  
  107.                 rootVector.push_back(rootEntry);
  108.  
  109.                 }
  110.  
  111.         }
  112.  
  113.         cout<<rootVector[0]<<endl;
  114.  
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement