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

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

?? fat_dir.c

?? 這套代碼已經(jīng)成功一直到S3C44B0X開發(fā)板上
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
**********************************************************************
*                          Micrium, Inc.
*                      949 Crestview Circle
*                     Weston,  FL 33327-1848
*
*                            uC/FS
*
*             (c) Copyright 2001 - 2003, Micrium, Inc.
*                      All rights reserved.
*
***********************************************************************

----------------------------------------------------------------------
File        : fat_dir.c
Purpose     : POSIX 1003.1 like directory support
----------------------------------------------------------------------
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"
#include "fs_clib.h"

#if FS_POSIX_DIR_SUPPORT


/*********************************************************************
*
*             _FS_fat_create_directory
*
  Description:
  FS internal function. Create a directory in the directory specified
  with DirStart. Do not call, if you have not checked before for 
  existing directory with name pDirName.

  Parameters:
  Idx         - Index of device in the device information table 
                referred by FS__pDevInfo.
  Unit        - Unit number, which is passed to the device driver.
  pDirName    - Directory name. 
  DirStart    - Start of directory, where to create pDirName.
  DirSize     - Size of the directory starting at DirStart.
  
  Return value:
  >=0         - Directory has been created.
  <0          - An error has occured.
*/

static int _FS_fat_create_directory(int Idx, FS_u32 Unit, const char *pDirName,
                                    FS_u32 DirStart, FS_u32 DirSize) {
  char *buffer;
  FS__fat_dentry_type *s;
  FS_u32 dirindex;
  FS_u32 dsec;
  FS_i32 cluster;
  FS_u16 val_time;
  FS_u16 val_date;
  int err;
  int len;
  int j;

  buffer = FS__fat_malloc(FS_FAT_SEC_SIZE);
  if (!buffer) {
    return -1;
  }
  len = FS__CLIB_strlen(pDirName);
  if (len > 11) {
    len = 11;
  }
  /* Read directory */
  for (dirindex = 0; dirindex < DirSize; dirindex++) {
    dsec = FS__fat_dir_realsec(Idx, Unit, DirStart, dirindex);
    if (dsec == 0) {
      /* Translation of relativ directory sector to an absolute sector failed */
      FS__fat_free(buffer);
      return -1;
    }
    err = FS__lb_read(FS__pDevInfo[Idx].devdriver, Unit, dsec, (void*)buffer); /* Read directory sector */
    if (err < 0) {
      /* Read error */
      FS__fat_free(buffer);
      return -1;
    }
    /* Scan the directory sector for a free or deleted entry */
    s = (FS__fat_dentry_type*)buffer;
    while (1) {
      if (s >= (FS__fat_dentry_type*)(buffer + FS_FAT_SEC_SIZE)) {
        break;  /* End of sector reached */
      }
      if (s->data[0] == 0x00) {
        break;  /* Found a free entry */
      }
      if (s->data[0] == (unsigned char)0xe5) {
        break;  /* Found a deleted entry */
      }
      s++;
    }
    if (s < (FS__fat_dentry_type*)(buffer + FS_FAT_SEC_SIZE)) {
      /* Free entry found. Make entry and return 1st block of the file. */
      FS__CLIB_strncpy((char*)s->data, pDirName, len);
       s->data[11] = FS_FAT_ATTR_DIRECTORY;
      cluster = FS__fat_FAT_alloc(Idx, Unit, -1);              /* Alloc block in FAT */
      if (cluster >= 0) {
        s->data[12]     = 0x00;                                /* Res */
        s->data[13]     = 0x00;                                /* CrtTimeTenth (optional, not supported) */
        s->data[14]     = 0x00;                                /* CrtTime (optional, not supported) */
        s->data[15]     = 0x00;
        s->data[16]     = 0x00;                                /* CrtDate (optional, not supported) */
        s->data[17]     = 0x00;
        s->data[18]     = 0x00;                                /* LstAccDate (optional, not supported) */
        s->data[19]     = 0x00;
        val_time        = FS_X_OS_GetTime();
        s->data[22]     = (unsigned char)(val_time & 0xff);   /* WrtTime */
        s->data[23]     = (unsigned char)(val_time / 256);
        val_date        = FS_X_OS_GetDate();
        s->data[24]     = (unsigned char)(val_date & 0xff);   /* WrtDate */
        s->data[25]     = (unsigned char)(val_date / 256);
        s->data[26]     = (unsigned char)(cluster & 0xff);    /* FstClusLo / FstClusHi */ 
        s->data[27]     = (unsigned char)((cluster / 256) & 0xff);
        s->data[20]     = (unsigned char)((cluster / 0x10000L) & 0xff);
        s->data[21]     = (unsigned char)((cluster / 0x1000000L) & 0xff);
        s->data[28]     = 0x00;                                /* FileSize */
        s->data[29]     = 0x00;
        s->data[30]     = 0x00;
        s->data[31]     = 0x00;
        err = FS__lb_write(FS__pDevInfo[Idx].devdriver, Unit, dsec, (void*)buffer); /* Write the modified directory sector */
        if (err < 0) {
          FS__fat_free(buffer);
          return -1;
        }
        /* Clear new directory and make '.' and '..' entries */
        /* Make "." entry */
        FS__CLIB_memset(buffer, 0x00, (FS_size_t)FS_FAT_SEC_SIZE);
        s = (FS__fat_dentry_type*)buffer;
        FS__CLIB_strncpy((char*)s->data, ".          ", 11);
        s->data[11]     = FS_FAT_ATTR_DIRECTORY;
        s->data[22]     = (unsigned char)(val_time & 0xff);   /* WrtTime */
        s->data[23]     = (unsigned char)(val_time / 256);
        s->data[24]     = (unsigned char)(val_date & 0xff);   /* WrtDate */
        s->data[25]     = (unsigned char)(val_date / 256);
        s->data[26]     = (unsigned char)(cluster & 0xff);    /* FstClusLo / FstClusHi */ 
        s->data[27]     = (unsigned char)((cluster / 256) & 0xff);
        s->data[20]     = (unsigned char)((cluster / 0x10000L) & 0xff);
        s->data[21]     = (unsigned char)((cluster / 0x1000000L) & 0xff);
        /* Make entry ".." */
        s++;
        FS__CLIB_strncpy((char*)s->data, "..         ", 11);
        s->data[11]     = FS_FAT_ATTR_DIRECTORY;
        s->data[22]     = (unsigned char)(val_time & 0xff);   /* WrtTime */
        s->data[23]     = (unsigned char)(val_time / 256);
        s->data[24]     = (unsigned char)(val_date & 0xff);   /* WrtDate */
        s->data[25]     = (unsigned char)(val_date / 256);
        s->data[26]     = (unsigned char)(DirStart & 0xff);    /* FstClusLo / FstClusHi */ 
        s->data[27]     = (unsigned char)((DirStart / 256) & 0xff);
        s->data[20]     = (unsigned char)((DirStart / 0x10000L) & 0xff);
        s->data[21]     = (unsigned char)((DirStart / 0x1000000L) & 0xff);
        dsec = FS__fat_dir_realsec(Idx, Unit, cluster, 0); /* Find 1st absolute sector of the new directory */
        if (dsec == 0) {
          FS__fat_free(buffer);
          return -1;
        }
        /* Write "." & ".." entries into the new directory */
        err = FS__lb_write(FS__pDevInfo[Idx].devdriver, Unit, dsec, (void*)buffer);
        if (err < 0) {
          FS__fat_free(buffer);
          return -1;
        }
        /* Clear rest of the directory cluster */
        FS__CLIB_memset(buffer, 0x00, (FS_size_t)FS_FAT_SEC_SIZE);
        for (j = 1; j < FS__FAT_aBPBUnit[Idx][Unit].SecPerClus; j++) {
          dsec = FS__fat_dir_realsec(Idx, Unit, cluster, j);
          err = FS__lb_write(FS__pDevInfo[Idx].devdriver, Unit, dsec, (void*)buffer);
          if (err < 0) {
            FS__fat_free(buffer);
            return -1;
          }
        }
        FS__fat_free(buffer);
        return 1;

      }
      FS__fat_free(buffer);
      return -1;
    }
  }
  FS__fat_free(buffer);
  return -2;  /* Directory is full */
}


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

/*********************************************************************
*
*             FS__fat_opendir
*
  Description:
  FS internal function. Open an existing directory for reading.

  Parameters:
  pDirName    - Directory name. 
  pDir        - Pointer to a FS_DIR data structure. 
  
  Return value:
  ==0         - Unable to open the directory.
  !=0         - Address of an FS_DIR data structure.
*/

FS_DIR *FS__fat_opendir(const char *pDirName, FS_DIR *pDir) {
  FS_size_t len;
  FS_u32 unit;
  FS_u32 dstart;
  FS_u32 dsize;
  FS_i32 i;
  char realname[12];
  char *filename;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久一区二区| 麻豆一区二区三| 国产亚洲欧美一区在线观看| 国产女主播在线一区二区| 91精品国产全国免费观看| 欧美亚日韩国产aⅴ精品中极品| eeuss影院一区二区三区 | 91福利精品第一导航| 91麻豆视频网站| 日本高清不卡aⅴ免费网站| 色婷婷亚洲精品| 在线成人午夜影院| 日韩精品一区二区三区swag| 久久久精品国产免费观看同学| 国产亚洲欧美激情| 自拍偷拍亚洲欧美日韩| 日韩美女久久久| 午夜激情综合网| 久久精品72免费观看| 国产一区免费电影| 99热这里都是精品| 欧美疯狂性受xxxxx喷水图片| 日韩视频国产视频| 国产欧美日韩三区| 欧美一区二区三区视频免费 | 国产成人免费视| 久久99精品久久久久久国产越南| 国内精品国产成人| 一本到一区二区三区| 91精品福利在线一区二区三区| 久久久另类综合| 一区二区三区小说| 久草在线在线精品观看| 午夜精品一区二区三区电影天堂| 美女一区二区在线观看| 99热精品一区二区| 精品国产91亚洲一区二区三区婷婷| 中文字幕av不卡| 青青草精品视频| 欧美区在线观看| 国产精品三级av| 久久福利视频一区二区| 91欧美一区二区| 国产亚洲一区二区三区四区| 亚洲一区二区三区国产| 成年人网站91| 亚洲精品在线观| 三级在线观看一区二区| 91在线观看视频| 久久午夜免费电影| 蜜桃精品视频在线观看| 91福利在线播放| 综合av第一页| www.欧美色图| 国产精品久久三| 国产精品影音先锋| 精品伦理精品一区| 日韩成人精品在线| 欧美午夜片在线观看| 亚洲欧美日韩国产另类专区| 国产成人99久久亚洲综合精品| 日韩一区二区不卡| 日欧美一区二区| 欧美三级一区二区| 亚洲一区二区成人在线观看| 不卡视频免费播放| 久久久久99精品一区| 国产一区二区三区观看| 欧美大片在线观看| 精品一区在线看| 欧美夫妻性生活| 蜜臀久久99精品久久久久宅男| 在线观看91精品国产麻豆| 亚洲妇熟xx妇色黄| 欧美伊人久久大香线蕉综合69| 专区另类欧美日韩| 一本色道综合亚洲| 亚洲午夜电影网| 欧美高清性hdvideosex| 日韩av高清在线观看| 久久嫩草精品久久久久| 国内精品免费**视频| 2020国产精品自拍| 丰满少妇久久久久久久| 国产精品全国免费观看高清| 99精品在线免费| 一区二区三区高清在线| 91精品免费在线观看| 狠狠色2019综合网| 中文一区二区完整视频在线观看| 国产精品99久久久| 国产精品天天看| 色噜噜狠狠色综合中国| 无吗不卡中文字幕| 日韩欧美中文字幕一区| 国产一区二区三区免费| 亚洲蜜臀av乱码久久精品蜜桃| 色狠狠av一区二区三区| 日本特黄久久久高潮| 欧美精品一区二| 一本色道久久综合精品竹菊| 亚洲大片一区二区三区| 久久免费午夜影院| 欧美色区777第一页| 免费在线一区观看| www日韩大片| 欧美午夜寂寞影院| 国产在线精品一区二区三区不卡 | 亚洲美女屁股眼交3| 欧美午夜精品久久久| 久久se精品一区精品二区| 亚洲天堂福利av| 欧美男男青年gay1069videost | 成人一道本在线| 亚洲视频香蕉人妖| 欧美一级黄色大片| 不卡一区二区在线| 日本va欧美va精品发布| 日韩理论片一区二区| 国产色综合一区| 欧美一区二区性放荡片| 91免费版pro下载短视频| 韩国女主播成人在线观看| 一区二区三区日韩精品| 亚洲国产精品黑人久久久| 日韩欧美国产三级| 欧美三级韩国三级日本三斤| 成人免费视频网站在线观看| 另类小说色综合网站| 一区二区在线电影| 1024成人网| 久久久久久电影| 精品国产区一区| 91精品国产入口在线| 欧美视频三区在线播放| 91蝌蚪porny成人天涯| 成人av综合在线| 国产精品一区二区视频| 免费在线观看一区二区三区| 亚洲精品成人在线| 综合av第一页| 亚洲日本在线观看| 亚洲天堂久久久久久久| 亚洲三级小视频| 亚洲免费观看高清完整版在线观看 | 亚洲亚洲精品在线观看| 综合中文字幕亚洲| 国产精品国产自产拍高清av | 欧美色图一区二区三区| 日韩一区二区在线观看视频| 欧美亚洲尤物久久| 欧美视频在线一区二区三区| 欧洲av在线精品| 欧美性xxxxx极品少妇| 欧美视频自拍偷拍| 欧美一区二区三区免费大片 | 国产永久精品大片wwwapp| 韩国三级中文字幕hd久久精品| 极品少妇xxxx精品少妇| 国产大片一区二区| 丰满亚洲少妇av| 色老综合老女人久久久| 欧美日韩一区二区三区在线| 欧美裸体bbwbbwbbw| 日韩精品一区二区三区四区| 亚洲精品在线观看网站| 中文字幕欧美国产| 最新国产の精品合集bt伙计| 亚洲午夜日本在线观看| 日韩国产在线观看一区| 国产一二三精品| 99re热这里只有精品视频| 欧美视频在线观看一区| 日韩欧美亚洲一区二区| 国产日产欧美一区| 伊人婷婷欧美激情| 麻豆国产精品一区二区三区| 国产精品一区二区三区四区| 91在线播放网址| 欧美精品v日韩精品v韩国精品v| 精品电影一区二区| 一区二区三区不卡视频在线观看| 强制捆绑调教一区二区| 成人av集中营| 日韩欧美的一区| 亚洲另类一区二区| 久久精品国产网站| 色综合久久精品| 久久久www成人免费无遮挡大片| 国产精品国产馆在线真实露脸| 亚洲成人精品在线观看| 国产精品18久久久久久久久久久久| 色婷婷亚洲综合| 久久免费精品国产久精品久久久久| 中文字幕在线播放不卡一区| 麻豆精品久久精品色综合| 一本一道久久a久久精品综合蜜臀| 日韩精品一区二区三区中文不卡| 亚洲视频综合在线| 国产一区二区三区视频在线播放|