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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tfslog.c

?? flash文件系統實現
?? C
字號:
/* tfslog.c: * *  Optional facility for TFS that supports the ability to log all *  tfs actions that affect flash, to a log file. * *  This function is called by tfsadd(), tfsunlink() and tfsipmod() to *  write to a log file indicating that something in tfs has been changed. *  Note that the function can be called at any user level, but it must be *  able to modify the TFS_CHANGELOG_FILE that has "u3" flags.  The  *  user level must be temporarily forced to MAXUSRLEVEL for this. * *  General notice: *  This code is part of a boot-monitor package developed as a generic base *  platform for embedded system designs.  As such, it is likely to be *  distributed to various projects beyond the control of the original *  author.  Please notify the author of any enhancements made or bugs found *  so that all may benefit from the changes.  In addition, notification back *  to the author will allow the new user to pick up changes that may have *  been made by other users after this version of the code was distributed. * *  Note1: the majority of this code was edited with 4-space tabs. *  Note2: as more and more contributions are accepted, the term "author" *         is becoming a mis-representation of credit. * *  Original author:    Ed Sutter *  Email:              esutter@lucent.com *  Phone:              908-582-2351 */#include "config.h"#include "stddefs.h"#include "genlib.h"#include "tfs.h"#include "tfsprivate.h"//#include "cli.h"#if TFS_CHANGELOG_SIZEstatic int  tfsLogging;#endifvoidtfslog(int action, char *string){#if TFS_CHANGELOG_SIZE    static char *tfslogaction[] = { "ADD", "DEL", "IPM", " ON", "OFF" };        extern  void *setTmpMaxUsrLvl();    static  char buf[TFS_CHANGELOG_SIZE];    TFILE   *tfp;    int     (*fptr)();    char    *eol, *eob, *logaction, tbuf[32];    int     newfsize, fsize, lsize, tfd, err, len, tbuflen;    switch(action) {        case TFSLOG_ADD:        /* Return here if logging is off,   */        case TFSLOG_DEL:        /* or this tfslog() call is on the  */        case TFSLOG_IPM:        /* TFS_CHANGELOG_FILE itself.       */            if (!tfsLogging || !strcmp(string,TFS_CHANGELOG_FILE))                return;            break;        case TFSLOG_ON:            if (tfsLogging == 1)                return;            tfsLogging = 1;            break;        case TFSLOG_OFF:            if (tfsLogging == 0)                return;            tfsLogging = 0;            break;    }    /* Force the getUsrLvl() function to return MAX: */    fptr = (int(*)())setTmpMaxUsrLvl();    logaction = tfslogaction[action];    tfp = tfsstat(TFS_CHANGELOG_FILE);    tfsGetAtime(0,tbuf,sizeof(tbuf));    tbuflen = strlen(tbuf);     if (tfp) {        tfd = tfsopen(TFS_CHANGELOG_FILE,TFS_RDONLY,0);        fsize = tfsread(tfd,buf,TFS_CHANGELOG_SIZE);        tfsclose(tfd,0);        newfsize = (fsize+strlen(logaction)+strlen(string)+3);        if (tbuflen)            newfsize += tbuflen + 3;        eob = buf + fsize;        /* If newfsize is greater than the maximum size the file is         * allowed to grow, then keep removing the first line         * (oldest entry) until new size is within the limit...         */        if (newfsize > TFS_CHANGELOG_SIZE) {            lsize = 0;            eol = buf;            while ((newfsize-lsize) > TFS_CHANGELOG_SIZE) {                while((*eol != '\r') && (*eol != '\n')) eol++;                while((*eol == '\r') || (*eol == '\n')) eol++;                lsize = eol-buf;            }            fsize -= lsize;            newfsize -= lsize;            eob -= lsize;            memcpy(buf,eol,fsize);        }        if (tbuflen)            sprintf(eob,"%s: %s @ %s\n",logaction,string,tbuf);        else            sprintf(eob,"%s: %s\n",logaction,string);        err = _tfsunlink(TFS_CHANGELOG_FILE);        if (err < 0)            printf("%s: %s\n",TFS_CHANGELOG_FILE,                (char *)tfsctrl(TFS_ERRMSG,err,0));        err = tfsadd(TFS_CHANGELOG_FILE,0,"u3",buf,newfsize);        if (err < 0)            printf("%s: %s\n",TFS_CHANGELOG_FILE,                (char *)tfsctrl(TFS_ERRMSG,err,0));    }    else {        if (tbuflen)            len = sprintf(buf,"%s: %s @ %s\n",logaction,string,tbuf);        else            len = sprintf(buf,"%s: %s\n",logaction,string);        err = tfsadd(TFS_CHANGELOG_FILE,0,"u3",buf,len);        if (err < 0)            printf("%s: %s\n",TFS_CHANGELOG_FILE,                (char *)tfsctrl(TFS_ERRMSG,err,0));    }    /* Restore the original getUsrLvl() functionality: */    clrTmpMaxUsrLvl(fptr);#endif}inttfsLogCmd(int argc,char *argv[], int optind){#if TFS_CHANGELOG_SIZE    int status;    int retval = 0;    if (getUsrLvl() < MAXUSRLEVEL) {        status = showTfsError(TFSERR_USERDENIED,0);    }    else {        if (argc == optind + 3) {            if (!strcmp(argv[optind+1],"on"))                tfslog(TFSLOG_ON,argv[optind+2]);            else if (!strcmp(argv[optind+1],"off"))                tfslog(TFSLOG_OFF,argv[optind+2]);            else                retval = CMD_PARAM_ERROR;        }        else if (argc == optind + 1)            printf("TFS logging %sabled\n",tfsLogging ? "en" : "dis");        else            retval = CMD_PARAM_ERROR;    }    return(retval);#else    return -1;    //return(CMD_FAILURE);#endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美色一区| 国产精品国产三级国产a| 欧洲人成人精品| 色又黄又爽网站www久久| 日本乱人伦一区| 欧亚洲嫩模精品一区三区| 欧美亚洲综合网| 91精品国产综合久久婷婷香蕉| 欧美喷水一区二区| 欧美一区二区高清| 欧美va天堂va视频va在线| 日韩美女主播在线视频一区二区三区| 色先锋资源久久综合| 91在线视频播放地址| 最新国产精品久久精品| 国产精品理论片在线观看| 中文字幕日本乱码精品影院| 亚洲欧美视频一区| 日韩影视精彩在线| 极品少妇一区二区三区精品视频| 国产精品18久久久久久久久 | 不卡电影一区二区三区| 97久久超碰国产精品| 欧美乱妇23p| 国产精品无遮挡| 五月天亚洲婷婷| 国产成人免费视频网站| 在线观看国产91| 欧美视频完全免费看| 欧美tickling网站挠脚心| 欧美日韩免费在线视频| 久久亚洲私人国产精品va媚药| 国产亚洲欧美色| 亚洲国产精品久久久男人的天堂 | 国产农村妇女毛片精品久久麻豆| 自拍偷拍亚洲综合| 精品一区二区三区在线观看| av综合在线播放| 欧美精品亚洲一区二区在线播放| 久久久久久免费毛片精品| 一区二区三区四区视频精品免费| 国产中文字幕一区| 欧美日韩aaaaa| 国产精品麻豆一区二区| 国产综合久久久久久鬼色| 欧美三级在线看| 亚洲天堂av一区| 高清不卡在线观看av| 日韩精品专区在线影院重磅| 亚洲一区二区三区四区在线观看| 国产麻豆一精品一av一免费| 欧美精品色综合| 亚洲精品乱码久久久久| 成人av网站在线观看免费| 欧美一激情一区二区三区| 亚洲精品国产精华液| av福利精品导航| 久久精品夜色噜噜亚洲a∨| 麻豆国产一区二区| 欧美人成免费网站| 婷婷综合久久一区二区三区| 欧美偷拍一区二区| 亚洲国产另类精品专区| 欧美性大战久久久| 亚洲va欧美va人人爽午夜| 色成人在线视频| 亚洲专区一二三| 欧美日韩在线一区二区| 又紧又大又爽精品一区二区| 色综合亚洲欧洲| 亚洲激情在线激情| 欧美亚洲日本一区| 婷婷综合在线观看| 91精品国产91久久综合桃花| 日韩精品一二三四| 欧美一二三区在线观看| 久久国产尿小便嘘嘘| 欧美α欧美αv大片| 无码av中文一区二区三区桃花岛| 欧美精选在线播放| 久久99国产精品久久99果冻传媒| 日韩精品一区二区三区swag| 精品一区二区免费看| 久久久久久夜精品精品免费| 成人小视频免费在线观看| 自拍偷拍亚洲激情| 欧美日韩一区小说| 久久91精品久久久久久秒播| 久久久久国产精品厨房| 91在线播放网址| 性做久久久久久久久| 日韩精品一区二区三区在线| 国产精品一区久久久久| 中文字幕在线观看一区二区| 色婷婷精品大在线视频| 男人操女人的视频在线观看欧美| 精品久久国产老人久久综合| 国产精品91xxx| 一区二区三区**美女毛片| 亚洲特级片在线| av在线综合网| 亚洲综合在线观看视频| 7777精品久久久大香线蕉| 国产一区二区看久久| 亚洲乱码国产乱码精品精98午夜| 在线日韩av片| 国产精品123区| 性欧美疯狂xxxxbbbb| 国产亚洲美州欧州综合国| 欧美无乱码久久久免费午夜一区| 久久超碰97中文字幕| 亚洲免费资源在线播放| 欧美r级电影在线观看| 99精品久久99久久久久| 麻豆国产精品官网| 亚洲精品va在线观看| 久久综合九色综合97婷婷| 色域天天综合网| 国产91丝袜在线播放| 强制捆绑调教一区二区| 亚洲日本va午夜在线影院| 精品国产乱码久久久久久久久| 91免费国产在线| 国产精品123区| 老汉av免费一区二区三区| 亚洲激情校园春色| 国产精品久久777777| 精品sm捆绑视频| 欧美剧情片在线观看| 91亚洲精品乱码久久久久久蜜桃| 另类欧美日韩国产在线| 视频一区二区国产| 一区二区久久久久| 亚洲欧洲另类国产综合| 2023国产精品| 精品久久久久一区| 日韩欧美久久久| 欧美精品九九99久久| 欧洲激情一区二区| 91在线观看地址| 一本大道久久a久久精品综合| 国产成人夜色高潮福利影视| 国产真实乱对白精彩久久| 青椒成人免费视频| 美国毛片一区二区三区| 日韩av电影免费观看高清完整版在线观看 | 99久久综合国产精品| 国产一区在线视频| 国产福利一区在线| 夫妻av一区二区| 成人av电影在线| 成人av午夜电影| 色88888久久久久久影院按摩| 91在线观看地址| 免费的成人av| 中文字幕国产精品一区二区| 国产精品久久久久久久久晋中| 欧美一区二区三区电影| 欧美精品123区| 日韩欧美一级二级三级久久久 | 亚洲精品国产精品乱码不99| 亚洲精品国产精品乱码不99| 一区二区三区精品视频| 亚洲成人av在线电影| 免费视频最近日韩| 激情都市一区二区| 成人高清免费观看| 欧美中文字幕不卡| 日韩丝袜情趣美女图片| 中文字幕第一页久久| 中文字幕视频一区二区三区久| 亚洲影院在线观看| 久久国产日韩欧美精品| 成人精品鲁一区一区二区| 色综合中文字幕| 欧美v日韩v国产v| 国产精品久久99| 日本午夜一区二区| 欧美国产精品v| 黄色精品一二区| 亚洲国产精品久久人人爱| 色噜噜狠狠色综合欧洲selulu| 欧美疯狂做受xxxx富婆| 久久久久久久精| 亚洲欧美一区二区久久| 麻豆国产精品官网| 91丝袜美女网| 精品久久久久一区| 一区二区三区精品视频在线| 精品无人区卡一卡二卡三乱码免费卡 | 日韩电影在线免费| 国产成a人亚洲精品| 欧美精品18+| 国产精品国产自产拍高清av王其| 日本视频中文字幕一区二区三区| 国产精品亚洲第一| 日韩一级黄色片| 亚洲欧美视频在线观看视频| 韩日精品视频一区| 欧美日韩综合一区|