亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fat_in.c

?? ucos平臺(tái)下的文件系統(tǒng)的源代碼
?? C
字號(hào):
/*
**********************************************************************
*                          Micrium, Inc.
*                      949 Crestview Circle
*                     Weston,  FL 33327-1848
*
*                            uC/FS
*
*             (c) Copyright 2001 - 2003, Micrium, Inc.
*                      All rights reserved.
*
***********************************************************************

----------------------------------------------------------------------
File        : fat_in.c
Purpose     : FAT read routines
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
None.
---------------------------END-OF-HEADER------------------------------
*/

/*********************************************************************
*
*             #include Section
*
**********************************************************************
*/

#include "fs_conf.h"
#include "fs_port.h"
#include "fs_dev.h"
#include "fs_api.h"
#include "fs_fsl.h"
#include "fs_int.h"
#include "fs_os.h"
#include "fs_lbl.h"
#include "fs_fat.h"


/*********************************************************************
*
*             Global functions
*
**********************************************************************
*/

/*********************************************************************
*
*             FS__fat_fread
*
  Description:
  FS internal function. Read data from a file.

  Parameters:
  pData       - Pointer to a data buffer for storing data transferred
                from file. 
  Size        - Size of an element to be transferred from file to data
                buffer
  N           - Number of elements to be transferred from the file.
  pFile       - Pointer to a FS_FILE data structure.
  
  Return value:
  Number of elements read.
*/

FS_size_t FS__fat_fread(void *pData, FS_size_t Size, FS_size_t N, FS_FILE *pFile) {
  FS_size_t todo;
  FS_u32 i;
  FS_u32 j;
  FS_u32 fatsize;
  FS_u32 fileclustnum;
  FS_u32 diskclustnum;
  FS_u32 prevclust;
  FS_u32 dstart;
  FS_u32 dsize;
  FS_u32 datastart;
  char *buffer;
  int err;
                                            
  if (!pFile) {
      return 0;  /* No valid pointer to a FS_FILE structure */
  }
  /* Check if media is OK */
  err = FS__lb_status(FS__pDevInfo[pFile->dev_index].devdriver, pFile->fileid_lo);
  if (err == FS_LBL_MEDIACHANGED) {
    /* Media has changed */
    pFile->error = FS_ERR_DISKCHANGED;
    return 0;
  }
  else if (err < 0) {
    /* Media cannot be accessed */
    pFile->error = FS_ERR_READERROR;
    return 0;
  }
  buffer = FS__fat_malloc(FS_FAT_SEC_SIZE);
  if (!buffer) {
    return 0;
  }
  fatsize = FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].FATSz16;
  if (fatsize == 0) {
    /* FAT32 */
     fatsize = FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].FATSz32;
  }
  dstart    = FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].RsvdSecCnt + FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].NumFATs * fatsize;
  dsize     = ((FS_u32)((FS_u32)FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].RootEntCnt) * FS_FAT_DENTRY_SIZE) / FS_FAT_SEC_SIZE;
  datastart = dstart + dsize;
  prevclust = 0;
  todo = N * Size;
  while (todo) {
    if (pFile->filepos >= pFile->size) {
      /* EOF has been reached */
      pFile->error = FS_ERR_EOF;
      FS__fat_free(buffer);
      return ((N * Size - todo) / Size);
    }
    fileclustnum = pFile->filepos / (FS_FAT_SEC_SIZE * FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].SecPerClus);
    if (prevclust == 0) {
      diskclustnum = pFile->CurClust; 
      if (diskclustnum == 0) {
        /* Find current cluster by starting at 1st cluster of the file */
        diskclustnum = FS__fat_diskclust(pFile->dev_index, pFile->fileid_lo, pFile->fileid_hi, fileclustnum);
      }
    }
    else {
      /* Get next cluster of the file */
      diskclustnum = FS__fat_diskclust(pFile->dev_index, pFile->fileid_lo, prevclust, 1);
    }
    prevclust       = diskclustnum;
    pFile->CurClust = diskclustnum;
    if (diskclustnum == 0) {
      /* Could not find current cluster */
      pFile->error = FS_ERR_READERROR;
      FS__fat_free(buffer);
      return ((N * Size - todo) / Size);
    }
    diskclustnum -= 2;
    j = (pFile->filepos % (FS_FAT_SEC_SIZE * FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].SecPerClus))/ FS_FAT_SEC_SIZE;
    while (1) {
      if (!todo) {
        break;  /* Nothing more to write */
      }
      if (j >= (FS_u32)FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].SecPerClus) {
        break;  /* End of the cluster reached */
      }
      if (pFile->filepos >= pFile->size) {
        break;  /* End of the file reached */
      }
      err = FS__lb_read(FS__pDevInfo[pFile->dev_index].devdriver, pFile->fileid_lo,
                    datastart +
                    diskclustnum * FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].SecPerClus + j,
                    (void*)buffer);
      if (err < 0) {
        pFile->error = FS_ERR_READERROR;
        FS__fat_free(buffer);
        return ((N * Size - todo) / Size);
      }
      i = pFile->filepos % FS_FAT_SEC_SIZE;
      while (1) {
        if (!todo) {
          break;  /* Nothing more to write */
        }
        if (i >= FS_FAT_SEC_SIZE) {
          break;  /* End of the sector reached */
        }
        if (pFile->filepos >= pFile->size) {
          break;  /* End of the file reached */
        }
        *((char*)(((char*)pData) + N * Size - todo)) = buffer[i];
        i++;
        pFile->filepos++;
        todo--;
      }
      j++;
    }  /* Sector loop */
  }  /* Cluster loop */
  if (i >= FS_FAT_SEC_SIZE) {
    if (j >= FS__FAT_aBPBUnit[pFile->dev_index][pFile->fileid_lo].SecPerClus) {
      pFile->CurClust = FS__fat_diskclust(pFile->dev_index, pFile->fileid_lo, prevclust, 1);
    }
  }
  FS__fat_free(buffer);
  return ((N * Size - todo) / Size);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆一区二区三区| 欧美激情在线看| 樱花草国产18久久久久| 一本色道久久加勒比精品| 亚洲天天做日日做天天谢日日欢 | 久久综合久久综合久久| 国产一区二三区| 国产精品乱子久久久久| 欧美日韩视频在线观看一区二区三区| 日韩国产高清影视| 中文无字幕一区二区三区| 国产欧美日韩一区二区三区在线观看| 91久久精品一区二区二区| 久久精品国产精品亚洲红杏| 国产精品拍天天在线| 国产精品免费丝袜| 伊人夜夜躁av伊人久久| 亚洲成人中文在线| 国产日本亚洲高清| 国产精品天美传媒| 亚洲精品久久嫩草网站秘色| 亚洲国产欧美在线人成| 国产欧美一区二区三区鸳鸯浴| 国产三级欧美三级| 欧美一区二区三区小说| 91视频www| 国产福利不卡视频| 美女性感视频久久| eeuss影院一区二区三区| 美女mm1313爽爽久久久蜜臀| 国产suv一区二区三区88区| 热久久国产精品| 天堂蜜桃91精品| 亚洲一区二区在线视频| 国产精品蜜臀在线观看| 亚洲一区二区三区免费视频| 国产一区二区三区香蕉| 色一区在线观看| 欧美精品一区视频| 日韩午夜激情电影| 日韩丝袜美女视频| 亚洲少妇中出一区| 久草这里只有精品视频| 老司机免费视频一区二区三区| 高清久久久久久| 欧美绝品在线观看成人午夜影视| 欧美亚洲国产bt| 欧美性猛交xxxxxx富婆| 国产日韩成人精品| 麻豆专区一区二区三区四区五区| 99在线精品一区二区三区| 欧美va亚洲va香蕉在线| 久久天天做天天爱综合色| 亚洲综合在线免费观看| 丝袜美腿高跟呻吟高潮一区| 97久久超碰精品国产| 欧洲av在线精品| 91精品国产综合久久久蜜臀粉嫩| 7777女厕盗摄久久久| 亚洲免费在线观看视频| 午夜精品爽啪视频| 久久97超碰色| 欧美一区二区三区在线观看| 亚洲午夜久久久久久久久久久| 成人一区二区三区视频 | 国产精品色眯眯| 精品在线一区二区| 日韩一级免费观看| 日本在线观看不卡视频| 欧美日韩精品欧美日韩精品一| 日韩午夜小视频| 天天射综合影视| 91麻豆精品91久久久久久清纯| 亚洲人精品午夜| 日本乱码高清不卡字幕| 亚洲精品日韩一| 在线观看视频一区二区 | 欧美日产在线观看| 午夜精品免费在线| 欧美一级免费大片| 蜜桃一区二区三区在线| 欧美岛国在线观看| 亚洲精品水蜜桃| 欧美性一级生活| 午夜精品免费在线观看| 日韩三级伦理片妻子的秘密按摩| 另类欧美日韩国产在线| 欧美成人在线直播| 丁香桃色午夜亚洲一区二区三区 | 国产美女娇喘av呻吟久久| 欧美精品一区二区三区一线天视频| 精品亚洲porn| 中文字幕一区二区三区色视频 | 欧美国产精品一区| 97se亚洲国产综合在线| 亚洲午夜久久久久中文字幕久| 欧美日韩国产小视频| 蜜乳av一区二区| 国产片一区二区| 在线影院国内精品| 麻豆精品一区二区三区| 国产日产精品一区| 欧美系列日韩一区| 久久99精品久久久久久动态图| 国产精品青草综合久久久久99| 欧美中文一区二区三区| 经典一区二区三区| 亚洲欧洲综合另类| 精品成人佐山爱一区二区| 懂色av中文字幕一区二区三区| 亚洲国产综合在线| 久久精品一区八戒影视| 欧美日韩日日骚| 91在线精品秘密一区二区| 亚洲一卡二卡三卡四卡| 久久亚洲捆绑美女| 欧美午夜一区二区三区| 国产高清在线精品| 日日摸夜夜添夜夜添精品视频 | 在线国产亚洲欧美| 国产福利不卡视频| 奇米影视一区二区三区| 亚洲欧美日韩国产综合在线| 欧美xxx久久| 欧美日韩国产精品自在自线| 从欧美一区二区三区| 久久99久久99小草精品免视看| 亚洲精品你懂的| 国产日韩亚洲欧美综合| 欧美一区三区四区| 欧美性欧美巨大黑白大战| 成人99免费视频| 亚洲私人影院在线观看| 久久精品夜色噜噜亚洲a∨| 日韩一区二区三区电影| 欧美日韩视频在线第一区 | 免费日本视频一区| 一级中文字幕一区二区| 成人欧美一区二区三区白人| 久久亚区不卡日本| 精品国产a毛片| 欧美一二三四区在线| 欧美疯狂性受xxxxx喷水图片| 色狠狠一区二区三区香蕉| 福利一区二区在线| 国产精品亚洲成人| 亚洲欧美偷拍卡通变态| 中文一区在线播放| 国产精品私房写真福利视频| 久久精品亚洲精品国产欧美kt∨| 欧美成人一级视频| 精品久久久久久无| 欧美xxxxx裸体时装秀| 日韩欧美不卡一区| 久久色.com| 中文字幕免费不卡| 中文字幕日韩精品一区| 日韩伦理免费电影| 最新国产の精品合集bt伙计| 1000精品久久久久久久久| 亚洲欧美在线高清| 亚洲免费电影在线| 亚洲一二三四久久| 日韩国产成人精品| 国产乱码精品1区2区3区| 国产精品一二三在| 99国产精品一区| 欧美午夜电影网| 日韩三级中文字幕| 久久精品亚洲精品国产欧美 | 一区二区三区日韩在线观看| 亚洲精品美腿丝袜| 石原莉奈在线亚洲三区| 麻豆精品在线看| 成人不卡免费av| 色久综合一二码| 精品噜噜噜噜久久久久久久久试看| 亚洲精品一区二区三区福利| 一区在线播放视频| 日日夜夜免费精品视频| 国产成人精品免费在线| 国产三级久久久| 亚洲1区2区3区4区| 国产成人精品午夜视频免费| 色呦呦国产精品| 精品国产免费视频| 亚洲精品综合在线| 国产一区二区剧情av在线| 91香蕉国产在线观看软件| 欧美一区二区二区| 欧美国产欧美综合| 欧美a级理论片| 91日韩在线专区| 亚洲精品一区在线观看| 一区二区免费看| 国产超碰在线一区| 91精品国产综合久久小美女| 综合av第一页| 国模少妇一区二区三区| 精品一区二区综合|