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

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

?? dosfsfmtlib.c

?? vxworks操作系統的文件系統部分原代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* dosFsFmtLib.c - MS-DOS media-compatible file system formatting library */ /* Copyright 1984-2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02b,29apr02,jkf  SPR#76013, dosFsVolFormat shall cbioUnlock all it cbioLock's02a,12dec01,jkf  fixing diab warnings01z,10dec01,jkf  SPR#72039, MSDOS FAT32 fsInfo sector now using hard coded                  offsets to properly support blkSize > 512bps.                 increase check for bytesPerBlk minimum in dosFsFmtAutoParams.01y,15nov01,jkf  SPR#71720, avoid unaligned pointer access.01x,09nov01,jkf  SPR#71633, dont set errno when VolFormat suceeded.01w,20sep01,jkf  SPR#69031, common code for both AE & 5.x.01v,08dec00,jkf  SPR#34704,FAT12/FAT16 determination, SPR#62415 sig location.01u,15sep00,jkf  cleaning warning01t,29feb00,jkf  T3 changes, cleanup01s,18oct99,jkf  avoiding div by zero if nHeads*blksPerTrack = 0, SPR#2950801r,27oct99,jkf  Documentation correction for compatibility section.01q,03oct99,jkf  setup a pseudo LCHS translation to mimic MSDOS more.                 This helps VxLd on large disks formatted by us.01p,03oct99,jkf  removed random signature, breaks vxsys booting.                 Correction from vxsys investigation, removed random                 signature, configure hidden sectors to sec per track,                 change nClust calculation to match Microsoft.01o,03oct99,jkf  added sysId check to dosFsFmtReadBootBlock,                  changed reserved sectors setting to one in                  dosFsVolFormat. Disabled the ret instructions                 being written in dosFsFmtNonFsBootInit.01n,15sep99,jkf  changes for new CBIO API.01m,31jul99,jkf  FAT12/FAT16 calculation per NT, SPR#28274.                  improved media byte support, SPR#27282. 		 added support FSTYPE (0x36) in boot sector, SPR#28273.01l,16jun99,jkf  correctly set FS ID for FAT32, SPR#28275.01k,12jul99,jkf  T2 merge, tidiness & spelling.                 (allows Windows to mount our FAT32)01j,30nov98,lrn  changed JMP instruction to be Win98 compatible (SPR#23442)01i,07sep98,lrn  fixed formatting of 4 MB disks to be FAT1601h,30jul98,wlf  partial doc cleanup01g,14jul98,lrn  replaced perror() with printErr01f,12jul98,lrn  fixed: option may force format to FAT1601e,22jun98,lrn  vol desc name change01d,03jun98,lrn  Libinit, integ, increased max root dirs for small disks01c,03jun98,lrn  polished main function and interactive params control, doc01b,14may98,lrn  added VxLong names 01a,12may98,lrn  initial version*//*DESCRIPTIONThis module is a scaleable companion module for dosFsLib, and is intended to facilitate high level formatting of disk volumes.There are two ways to high level format a volume:.IP "(1)"Directly calling dosFsVolFormat() routine allows to have completecontrol over the format used, parameters and allows to supply a hookroutine which for instance could interactively prompt the user tomodify disk parameters..IP "(2)"Calling ioctl command FIODISKINIT will invoke the formatting routinevia dosFsLib. This uses the default volume format and parameters.AVAILABILITYThis routine is an optional part of the MS-DOS file system,and may be included in a target system if it is required tobe able to format new volumes.In order to include this option, the following function needsto be invoked during system initialization:.CSvoid dosFsFmtLibInit( void );.CESee reference page dosFsVolFormat() for complete description ofsupported formats, options and arguments.SEE ALSOdosFsLib*//* includes */#include "vxWorks.h"#include "private/dosFsVerP.h"#include "string.h"#include "stdio.h"#include "stdlib.h"#include "ctype.h"#include "errnoLib.h"#include "memLib.h"#include "tickLib.h"#include "dosFsLib.h"#include "private/dosFsLibP.h"#include "private/dosDirLibP.h"/* defines *//* defines - FAT Boot Sector values */#define DOS_BOOT_SEC_NUM        0       /* sector number of boot sector */#define DOS_MIN_CLUST           2       /* lowest cluster number used *//* most of these are old defaults which are now calculated */#define DEFAULT_ROOT_ENTS       112     /* default # of root dir entries */#define DEFAULT_MAX_ROOT_ENTS   512     /* default max # of root dir entries */#define DEFAULT_SEC_PER_CLUST   2       /* default sectors per cluster */#define DEFAULT_MEDIA_BYTE      0xF8    /* default media byte value */#define DEFAULT_NFATS           2       /* default number FAT copies */#define MAX_NFATS		16	/* maximum number FAT copies */#define DEFAULT_NRESERVED       1       /* default # of reserved sec's (min=1)*/#define DOS_FAT_12BIT_MAX       4085    /* max clusters, 12 bit FAT entries *//*  * FIXME - these are not really -2, but -11, but it is ok because * we then should take into account the FAT sectors overhead when * calculating cluster size. */#define DOS_FAT_16BIT_MAX   (0x10000-2) /* max clusters, 16 bit FAT */#define DOS_FAT_32BIT_MAX (0x200000-2)  /* max clusters, 32-bit FAT entries */#define	DOS32_INFO_SEC		1	/* FAT32 info sector location */#define	DOS32_BACKUP_BOOT	6	/* FAT32 backup boot block location *//********************************************************************************* dosFsFmtShow - print volume parameters to stdout**/LOCAL void dosFsFmtShow( DOS_VOL_CONFIG * pConf )    {    printf("Volume Parameters: FAT type: FAT%d, sectors per cluster %d\n",	pConf->fatType, pConf->secPerClust);    printf("  %d FAT copies, %ld clusters, %ld sectors per FAT\n",	pConf->nFats, pConf->nClust, pConf->secPerFat );    printf("  Sectors reserved %d, hidden %ld, FAT sectors %ld\n",	pConf->nResrvd, pConf->nHidden, pConf->secPerFat* pConf->nFats);    printf("  Root dir entries %d, sysId %-8s, serial number %lx\n",	pConf->maxRootEnts, pConf->sysId, pConf->volSerial );    printf("  Label:\"%-11s\" ...\n", pConf->volLabel );    }/********************************************************************************* dosFsFmtAutoParams - automatically calculate FAT formatting params** This function attempts to imitate MSFT formulae for setting* disk parameters for maximum compatibility.* For fully automatic configuration, the configuration structure* should be all zeroed out.* If any of the modifiable fields are non-zero, this function will* calculate the rest of the parameters, honoring the values filled* in prior to the call.** Note however that MSFT compatibility can not be always maintained* unless fully automatic configuration is performed.**/LOCAL STATUS dosFsFmtAutoParams    (    DOS_VOL_CONFIG * pConf,	/* config params structure */    ULONG nBlks,		/* # of secs on volume */    int bytesPerBlk,		/* sector size */    int opt			/* VxLongs */    )    {    ULONG nClust, maxClust, minClust ;    int rootSecs, fatBytes ;    int dirEntrySize = DOS_DIRENT_STD_LEN;    /*      * adjust the directory entry size if using vxLongnames which     * use a unique directory entry size.     */    if( opt & DOS_OPT_VXLONGNAMES )	dirEntrySize = DOS_VX_DIRENT_LEN;    /* verify bytes per block supports the file system */    if( (bytesPerBlk < (dirEntrySize *3))     ||         (bytesPerBlk < 64 && nBlks > 0xfffe) )	{	errno = EINVAL;	return ERROR;	}        /* setup some pConf field based on disk size */    if( bytesPerBlk < 512 )	{	/* most likely a tiny RAMdisks */	if(pConf->secPerClust == 0 )		    pConf->secPerClust = 1 ;	if(pConf->mediaByte == 0 )		    pConf->mediaByte = 0xfd;  /* TODO, what to use for RAMDISK? */	if(pConf->nFats == 0 )			    pConf->nFats = 1;	rootSecs = (((DEFAULT_ROOT_ENTS * dirEntrySize) + (bytesPerBlk -1)) / 			 bytesPerBlk);	minClust = 1 ;	}    else if (nBlks <= 720) /* i.e. 360KB 5.25" */	{	/* temporary value, later scaled up as needed */	if(pConf->secPerClust == 0)		    pConf->secPerClust = 1 ;	if(pConf->mediaByte == 0)		    pConf->mediaByte = 0xfd; /* per NT Resource Kit */	if(pConf->fatType == _AUTO)		    pConf->fatType = _FAT12; /* floppies use FAT12 */	pConf->maxRootEnts = DEFAULT_ROOT_ENTS; /* always 112 for 360KB */	rootSecs = (((DEFAULT_ROOT_ENTS * dirEntrySize) + (bytesPerBlk -1)) / 			 bytesPerBlk);	minClust = 2;	}    else if (nBlks <= 1440 ) /* i.e. 720KB 3.5" */	{	/* temporary value, later scaled up as needed */	if( pConf->secPerClust == 0)		    pConf->secPerClust = 1 ;	if( pConf->mediaByte == 0)		    pConf->mediaByte = 0xf9; /* per NT Resource Kit */ 	if(pConf->fatType == _AUTO)		    pConf->fatType = _FAT12; /* floppies use FAT12 */	pConf->maxRootEnts = DEFAULT_ROOT_ENTS; /* always 112 for 720KB */	rootSecs = (((DEFAULT_ROOT_ENTS * dirEntrySize) + (bytesPerBlk -1)) / 			 bytesPerBlk);	minClust = 2;	}    else if (nBlks <= 2400 ) /* i.e. 1.2Mb 5.25" */	{	/* temporary value, later scaled up as needed */	if(pConf->secPerClust == 0)		    pConf->secPerClust = 1 ;	if(pConf->mediaByte == 0)		   pConf->mediaByte = 0xf9;/* per NT Resource Kit */	if(pConf->fatType == _AUTO)		    pConf->fatType = _FAT12; /* floppies use FAT12 */	pConf->maxRootEnts = DEFAULT_ROOT_ENTS;	rootSecs = (((DEFAULT_ROOT_ENTS * dirEntrySize) + (bytesPerBlk -1)) / 			 bytesPerBlk);	minClust = 2;	}    else if( nBlks <= 2880 ) /* i.e. 1.44MB 3.5" floppy */	{	/* temporary value, later scaled up as needed */	if(pConf->secPerClust == 0)		    pConf->secPerClust = 1 ;	if(pConf->mediaByte == 0)		    pConf->mediaByte = 0xf0;/* Per NT Resource Kit */	if(pConf->fatType == _AUTO)		    pConf->fatType = _FAT12; /* floppies use FAT12 */	pConf->maxRootEnts = DEFAULT_ROOT_ENTS; 	rootSecs = (((DEFAULT_ROOT_ENTS * dirEntrySize) + (bytesPerBlk -1)) / 			 bytesPerBlk);	minClust = 2;	}    else if( nBlks <= 4000 ) /* probally a hard disk or PCMCIA, FLASH etc.*/	{	/* temporary value, later scaled up as needed */	if(pConf->secPerClust == 0)		    pConf->secPerClust = 1;	if(pConf->mediaByte == 0)		    pConf->mediaByte = DEFAULT_MEDIA_BYTE;	if(pConf->fatType == _AUTO)		    pConf->fatType = _FAT12; /* floppies use FAT12 */	pConf->maxRootEnts = DEFAULT_ROOT_ENTS; 	rootSecs = (((DEFAULT_ROOT_ENTS * dirEntrySize) + (bytesPerBlk -1)) / 			 bytesPerBlk);        minClust = 1 ;	}    else	{	/* temporary value, later scaled up as needed */	if(pConf->secPerClust == 0)		    pConf->secPerClust = 2;	if(pConf->mediaByte == 0)		    pConf->mediaByte = DEFAULT_MEDIA_BYTE;	pConf->maxRootEnts = DEFAULT_MAX_ROOT_ENTS;	rootSecs = (((DEFAULT_ROOT_ENTS * dirEntrySize) + (bytesPerBlk -1)) / 			 bytesPerBlk);	minClust = 2;	}    /* fixup root directory entries */    if( pConf->maxRootEnts != 0 )	{	rootSecs = (((pConf->maxRootEnts * dirEntrySize) + (bytesPerBlk -1)) / 		    bytesPerBlk);	}    if( pConf->nFats == 0 )			pConf->nFats = DEFAULT_NFATS;    pConf->nFats = min( pConf->nFats, MAX_NFATS );    /* temporary value, may be way too large */    nClust = nBlks / pConf->secPerClust ;    /* define FAT type first, many other params depend on it */    if( pConf->fatType == _AUTO )	{	/* 	 * Here we decide which FAT format to use.	 */	if(nClust < DOS_FAT_12BIT_MAX)	    pConf->fatType = _FAT12 ;	/* <16MB volume, FAT12 */	else if ( nBlks < 0x400000 )		    pConf->fatType = _FAT16 ;   /* 16MB+ <2GB, FAT16 */	else				    pConf->fatType = _FAT32 ;	/* 2GB+ volume, FAT32 */	}    switch(pConf->fatType)	{	case _FAT32:	    if( pConf->nResrvd == 0)				pConf->nResrvd = 32;	    maxClust = DOS_FAT_32BIT_MAX;	    minClust = 8;	    break;	default:	case _FAT16:	    if( pConf->nResrvd == 0)				pConf->nResrvd = 1;	    maxClust = DOS_FAT_16BIT_MAX;	    minClust = 2;	    break;	case _FAT12:	    if( pConf->nResrvd == 0)				pConf->nResrvd = 1;	    maxClust = DOS_FAT_12BIT_MAX;	    minClust = 1;	    break;	}    /* now, we know the FAT type, so we can really calculate secs per clust */    while( (nClust > maxClust ) || ((ULONG)pConf->secPerClust < minClust) )	{	pConf->secPerClust <<= 1 ;	/* multiply secs/clust by 2 */	nClust = nBlks / pConf->secPerClust ;	/* recalc */	}    /* max secs/clust is limited to 254 */    pConf->secPerClust = min( pConf->secPerClust, 254 );    nClust = nBlks / pConf->secPerClust ;	/* recalc */    switch( pConf->fatType )	{	case _FAT32:	    fatBytes = nClust * 4;	    rootSecs = 0 ; /* root dir is a normal cluster */	    if(pConf->sysId==NULL) pConf->sysId = "VX5DOS32";	    break;	default:	case _FAT16:	    fatBytes = nClust * 2;	    if(pConf->sysId==NULL) pConf->sysId = "VXDOS16";	    break;	case _FAT12:	    fatBytes = nClust * 3 / 2;	    if(pConf->sysId==NULL) pConf->sysId = "VXDOS12";	    break;	}    /* setup a special id for longnames */    if( opt & DOS_OPT_VXLONGNAMES )	{	pConf->sysId = "VXEXT1.1";	}    /* calculate sectors per fat */    pConf->secPerFat =  (fatBytes + bytesPerBlk - 1) / bytesPerBlk ;    /* figure out root dir size */    pConf->maxRootEnts = rootSecs * bytesPerBlk / dirEntrySize ;    /* root entries are never bigger than 512 */    if ((pConf->fatType != _FAT32) && (pConf->maxRootEnts > DEFAULT_MAX_ROOT_ENTS))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美专区在线| 人人超碰91尤物精品国产| 亚洲高清免费一级二级三级| 国产麻豆视频一区| 欧美日韩一区二区不卡| 国产精品久久午夜夜伦鲁鲁| 蜜臀a∨国产成人精品| 91小视频免费看| 亚洲精品一区二区三区四区高清| 亚洲精品va在线观看| 国产精品12区| 日韩精品一区二区在线观看| 亚洲国产精品一区二区久久恐怖片| 国产风韵犹存在线视精品| 日韩欧美一区二区在线视频| 亚洲欧美二区三区| 成人免费视频播放| www激情久久| 久久9热精品视频| 欧美理论电影在线| 亚洲一区精品在线| 一本到三区不卡视频| 1024成人网| av在线综合网| 亚洲欧洲国产日本综合| 国产不卡视频在线观看| 久久久不卡影院| 精品一区在线看| 日韩你懂的在线观看| 日韩精品视频网站| 欧美一区二区三区影视| 日本vs亚洲vs韩国一区三区二区 | 欧美丰满一区二区免费视频 | 日本sm残虐另类| 欧美一三区三区四区免费在线看 | 国产乱淫av一区二区三区| 日韩免费观看高清完整版| 日本vs亚洲vs韩国一区三区| 欧美一区二区三区精品| 久久国产精品第一页| 欧美大片免费久久精品三p| 玖玖九九国产精品| 国产午夜亚洲精品不卡| 国产成人精品综合在线观看| 国产婷婷色一区二区三区四区 | 日韩激情在线观看| 日韩欧美中文一区| 国产精品一二三区在线| 国产精品国模大尺度视频| 91免费版在线看| 亚洲电影中文字幕在线观看| 欧美一区二视频| 国产综合色视频| √…a在线天堂一区| 91成人在线免费观看| 日韩高清一区在线| 久久综合九色综合欧美就去吻| 狠狠色狠狠色合久久伊人| 亚洲国产精品ⅴa在线观看| 色综合久久中文字幕| 日韩电影免费一区| 国产欧美精品区一区二区三区| 91视频在线看| 日韩精品成人一区二区三区| 国产亚洲一区二区三区四区| 91毛片在线观看| 青草av.久久免费一区| 中文字幕精品一区二区三区精品| 色婷婷激情综合| 久热成人在线视频| 亚洲日本在线a| 精品国产第一区二区三区观看体验| 国产成人午夜99999| 亚洲综合自拍偷拍| 国产亚洲婷婷免费| 欧美精品九九99久久| 国产传媒一区在线| 亚洲国产精品自拍| 亚洲国产高清aⅴ视频| 欧美日韩黄视频| aaa欧美色吧激情视频| 麻豆久久久久久| 亚洲精品videosex极品| 久久久精品国产免费观看同学| 一本色道久久综合狠狠躁的推荐| 久久er99精品| 日韩电影在线一区二区三区| 国产精品你懂的| 日韩一本二本av| 欧美性视频一区二区三区| 国产99一区视频免费 | 亚洲蜜桃精久久久久久久| 精品区一区二区| 欧美亚一区二区| 99久久99久久免费精品蜜臀| 韩国成人在线视频| 日韩精品午夜视频| 亚洲第一二三四区| 亚洲女同一区二区| ...xxx性欧美| 国产精品久久久久永久免费观看| 日韩欧美专区在线| 51午夜精品国产| 欧美日韩在线综合| 在线观看日韩av先锋影音电影院| 播五月开心婷婷综合| 国产经典欧美精品| 国产精品一区在线观看乱码| 国产一区二区在线视频| 另类的小说在线视频另类成人小视频在线| 亚洲综合丝袜美腿| 亚洲午夜免费福利视频| 亚洲中国最大av网站| 亚洲一区二区三区四区中文字幕 | 爽好久久久欧美精品| 亚洲制服欧美中文字幕中文字幕| 一区视频在线播放| 国产精品不卡视频| 17c精品麻豆一区二区免费| 中文字幕在线不卡国产视频| 国产精品久久看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日韩一区二区高清| 欧美成人国产一区二区| 欧美videos大乳护士334| 欧美一级片免费看| www成人在线观看| 久久蜜桃av一区精品变态类天堂| 国产无人区一区二区三区| 国产精品美女久久久久久| 综合欧美亚洲日本| 亚洲成人一区在线| 天天色天天操综合| 久久69国产一区二区蜜臀| 国产一区二区在线看| eeuss鲁片一区二区三区在线看| 色猫猫国产区一区二在线视频| 色爱区综合激月婷婷| 制服丝袜av成人在线看| 亚洲精品一区二区三区四区高清| 国产三级精品视频| 一区二区三区欧美在线观看| 日日摸夜夜添夜夜添精品视频| 蜜桃精品视频在线| 丁香一区二区三区| 欧美日韩免费电影| 久久久久久日产精品| 亚洲欧美自拍偷拍| 日韩成人一级大片| 粉嫩av一区二区三区在线播放 | 国产一区二区三区四 | 大胆亚洲人体视频| 欧美午夜电影一区| 久久久综合九色合综国产精品| 亚洲色图欧美偷拍| 麻豆国产精品777777在线| www.视频一区| 日韩久久精品一区| 一区二区三区在线免费视频 | 婷婷综合在线观看| 国产成人啪免费观看软件| 欧美在线视频日韩| 欧美精彩视频一区二区三区| 午夜精品久久久久久久久| 国产成人免费视| 91精品国产综合久久精品app| 国产肉丝袜一区二区| 日韩影院精彩在线| 色综合久久88色综合天天6| 日韩精品一区二区三区在线播放 | 日韩精品欧美精品| 91在线免费视频观看| 亚洲精品一区二区三区福利| 亚洲综合在线视频| fc2成人免费人成在线观看播放 | 欧美剧情电影在线观看完整版免费励志电影 | 中文字幕在线一区免费| 蜜桃传媒麻豆第一区在线观看| 色欧美日韩亚洲| 国产亚洲女人久久久久毛片| 免费一级欧美片在线观看| 欧美在线视频日韩| 亚洲另类色综合网站| 成人一区二区在线观看| 久久久久青草大香线综合精品| 日韩国产高清影视| 欧美日韩一区二区三区四区五区| 国产精品久久久久久久久果冻传媒 | 精品久久久久久无| 日本不卡一区二区| 欧美三级在线看| 曰韩精品一区二区| 色哟哟一区二区三区| 国产精品国产精品国产专区不蜜 | 国产精品久久久久精k8| 国产制服丝袜一区| 久久久久久久久久久黄色| 精品一区二区三区av| xf在线a精品一区二区视频网站| 日本欧美一区二区三区乱码|