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

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

?? unixdrv.c

?? VXWORKS 源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    /* Initialize BLK_DEV structure (in UNIXDISK_DEV) */    pBlkDev = &pUnixDiskDev->unixDiskBlkDev;    pBlkDev->bd_nBlocks      = nBlocks;		/* number of blocks */    pBlkDev->bd_bytesPerBlk  = bytesPerBlk;	/* bytes per block */    pBlkDev->bd_blksPerTrack = blksPerTrack;	/* blocks per track */    pBlkDev->bd_nHeads       = 1;		/* one "head" */    pBlkDev->bd_removable    = FALSE;		/* not removable */    pBlkDev->bd_retry	     = 1;		/* retry count */    pBlkDev->bd_mode	     = UPDATE;		/* initial mode for device */    pBlkDev->bd_readyChanged = TRUE;		/* new ready status */    pBlkDev->bd_blkRd	     = unixDiskBlkRd;	/* read block function */    pBlkDev->bd_blkWrt	     = unixDiskBlkWrt;	/* write block function */    pBlkDev->bd_ioctl	     = unixDiskIoctl;	/* ioctl function */    pBlkDev->bd_reset	     = NULL;		/* no reset function */    pBlkDev->bd_statusChk    = NULL;		/* no check-status function */    /* Initialize remainder of device struct */    pUnixDiskDev->unixFd = fd;    return (&pUnixDiskDev->unixDiskBlkDev);    }/********************************************************************************* unixDiskIoctl - do device specific control function** This routine is called when the file system cannot handle an ioctl* function.** The FIODISKFORMAT function always returns OK, since a UNIX file does* not require formatting.  All other requests return ERROR.** RETURNS:  OK or ERROR.*/LOCAL STATUS unixDiskIoctl    (    UNIXDISK_DEV *pUnixDiskDev,		/* device structure pointer */    int		function,		/* function code */    int		arg			/* some argument */    )    {    FAST int	status;			/* returned status value */    switch (function)	{	case FIODISKFORMAT:	    status = OK;	    break;	default:	    status = ERROR;	    errno = S_ioLib_UNKNOWN_REQUEST;	    break;	}    return (status);    }/********************************************************************************* unixDiskBlkRd - read one or more blocks from a unix file disk volume** This routine reads one or more blocks from the specified volume,* starting with the specified block number.  The byte offset is* calculated and the UNIX disk data is copied to the specified buffer.** RETURNS: OK for success and ERROR for bad block.*/LOCAL STATUS unixDiskBlkRd    (    UNIXDISK_DEV	*pUnixDiskDev,	/* pointer to device desriptor */    int			startBlk,	/* starting block number to read */    int			numBlks,	/* number of blocks to read */    char		*pBuffer	/* pointer to buffer to receive data */    )    {    long offset;    int numBytes, ret;    FAST int		bytesPerBlk;	/* number of bytes per block */    bytesPerBlk = pUnixDiskDev->unixDiskBlkDev.bd_bytesPerBlk;    /* Add in the block offset */    offset = startBlk*bytesPerBlk;    if (u_lseek (pUnixDiskDev->unixFd, offset, 0) != offset)	{	printErr ("unixDiskBlkRd: lseek to offset %d failed\n", offset);	return (ERROR);	}    numBytes = bytesPerBlk * numBlks;    /* Read the block(s) */    if ((ret = u_read (pUnixDiskDev->unixFd, pBuffer, numBytes)) != numBytes)	{	printErr ("unixDiskBlkRd: failed to read %d bytes\n", numBytes);	return (ERROR);	}    return (OK);    }/********************************************************************************* unixDiskBlkWrt - write one or more blocks to a unix disk volume** This routine writes one or more blocks to the specified volume,* starting with the specified block number.  The byte offset is* calculated and the buffer data is copied to the unix disk.** RETURNS: OK for success and ERROR for bad block.*/LOCAL STATUS unixDiskBlkWrt    (    UNIXDISK_DEV	*pUnixDiskDev,	/* pointer to device desriptor */    int			startBlk,	/* starting block number to write */    int			numBlks,	/* number of blocks to write */    char		*pBuffer	/* pointer to buffer of data to write */    )    {    long offset;    int numBytes, ret;    FAST int bytesPerBlk;	/* number of bytes per block */    bytesPerBlk = pUnixDiskDev->unixDiskBlkDev.bd_bytesPerBlk;    /* Add in the block offset */    offset = startBlk * bytesPerBlk;    if (u_lseek (pUnixDiskDev->unixFd, offset, 0) != offset)	{	printErr ("unixDiskBlkWrt: lseek to offset %d failed\n", offset);	return (ERROR);	}    numBytes = bytesPerBlk * numBlks;    if ((ret = u_write (pUnixDiskDev->unixFd, pBuffer, numBytes)) != numBytes)	{	printErr ("unixDiskBlkWrt: failed to write %d bytes\n", numBytes);	return (ERROR);	}    return (OK);    }/********************************************************************************* unixDiskInit - initialize a dosFs disk on top of UNIX** This routine provides some convenience for a user wanting to create* a UNIX disk-based dosFs file system under VxWorks.  The user only* specifes the UNIX file to use, the dosFs volume name, and the* size of the volume in bytes, if the UNIX file needs to be created.** This routine is only applicable to VxSim for Solaris and VxSim for HP.** RETURNS: N/A*/void unixDiskInit    (    char *unixFile,	/* UNIX file name */    char *volName,	/* dosFs name */    int diskSize	/* number of bytes */    )    {    int ix;    int fd;    int numEightKBlocks;    int numHalfKBlocks;    int create = 0;    int stat;    struct unix_stat buf;    char *emptySpace;    BLK_DEV *pBlkDev;    if (u_stat (unixFile, (char*)&buf) < 0)	{	printErr ("unixDiskInit: %s not found. Creating...", unixFile);	if ((fd = u_open (unixFile, ARCHCVTFLAGS(unixCRFlag), unixCRMode)) < 0)	    {	    printErr ("permission denied\n");	    return;	    }        if (diskSize == 0)	    diskSize = DEFAULT_DISK_SIZE;#define	BLOCKSIZE	8192	emptySpace = calloc (1, BLOCKSIZE);	numEightKBlocks = diskSize / BLOCKSIZE;	numHalfKBlocks = (diskSize % BLOCKSIZE) / DEFAULT_SEC_SIZE;	for (ix = 0; ix < numEightKBlocks; ix++)	    if (u_write (fd, emptySpace, BLOCKSIZE) < 0)		{		printErr ("Disk Write failed (disk full?)\n");		free (emptySpace);		return;		}	for (ix = 0; ix < numHalfKBlocks; ix++)	    if (u_write (fd, emptySpace, DEFAULT_SEC_SIZE) < 0)		{		printErr ("Disk Write failed (disk full?)\n");		free (emptySpace);		return;		}	printErr ("done\n");	u_close (fd);	free (emptySpace);	create = 1;	}    pBlkDev = unixDiskDevCreate (unixFile, DEFAULT_SEC_SIZE, 0, 0);    if (pBlkDev != NULL)	{	if (create)	    stat = (dosFsMkfs (volName, pBlkDev) == NULL) ? -1 : 0;	else	    stat = (dosFsDevInit (volName, pBlkDev, 0) == NULL) ? -1 : 0;	if (stat == -1)	    {	    printErr ("unixDiskInit: could not init dosFs file system on %s\n",								unixFile);	    }	else	    {	    printErr ("unixDiskInit: dosFs file system %s as device %s\n",				create ? "init'd" : "attached", volName);	    }	}    else	printErr ("unixDiskInit: failed\n");    }#endif /* (CPU_FAMILY==SIMSPARCSUNOS || CPU_FAMILY==SIMHPPA) || CPU_FAMILY==SIMSPARCSOLARIS */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区视频在线| 欧美bbbbb| 日韩一区和二区| 午夜精品在线看| 国产精品久久久久久久久快鸭| 成人免费视频视频在线观看免费| 国产精品色哟哟| 欧美另类videos死尸| 国产大陆精品国产| 樱桃国产成人精品视频| 在线观看91av| 国产精品一级片在线观看| 国产精品色在线| 欧美亚洲一区二区三区四区| 日本不卡一区二区三区高清视频| 在线观看网站黄不卡| 久久成人18免费观看| 国产精品久久影院| 久久亚洲一区二区三区明星换脸| 国产欧美日韩另类视频免费观看| 91精品免费在线| 97超碰欧美中文字幕| 日本vs亚洲vs韩国一区三区 | 亚洲一二三区在线观看| 精品91自产拍在线观看一区| 91在线国产观看| 激情亚洲综合在线| 亚洲国产精品久久一线不卡| 国产精品久久久久影院| 日韩精品一区二区三区视频播放| 欧美成人三级在线| 色狠狠桃花综合| 国产精品自拍一区| 婷婷开心久久网| 国产精品免费丝袜| 日本欧洲一区二区| 亚洲欧美一区二区三区极速播放| 337p亚洲精品色噜噜噜| 99视频一区二区三区| 国产在线一区观看| 麻豆精品蜜桃视频网站| 亚洲一区二区精品久久av| 中文字幕中文字幕一区二区| 久久久综合视频| 91精品婷婷国产综合久久竹菊| 欧美性猛交一区二区三区精品| jlzzjlzz亚洲日本少妇| 韩国一区二区三区| 美洲天堂一区二卡三卡四卡视频 | 中文字幕av一区二区三区| 精品国产一区二区三区不卡| 欧美视频一区二区三区四区| 成人av资源站| 91视视频在线观看入口直接观看www | 国产999精品久久| 日本少妇一区二区| 亚洲一区二区三区四区在线| 国产精品美女久久久久久2018| 精品日本一线二线三线不卡 | 成人免费视频在线观看| 欧美激情在线一区二区| 久久久国产精品午夜一区ai换脸| 亚洲自拍偷拍网站| 亚洲精品你懂的| 国产精品久久看| **欧美大码日韩| 1000部国产精品成人观看| 国产精品女同一区二区三区| 国产精品欧美久久久久无广告| 中文字幕久久午夜不卡| 国产精品网站在线播放| 亚洲视频资源在线| 国产精品久久久久久久久免费丝袜| 一区二区三区中文字幕精品精品 | 韩国av一区二区三区| 韩国成人精品a∨在线观看| 国产高清成人在线| 成人免费电影视频| 91看片淫黄大片一级| 欧美日韩国产综合一区二区| 在线欧美日韩国产| 日韩一区二区三区在线| 国产女人aaa级久久久级| 亚洲免费av高清| 日韩国产欧美在线播放| 久久综合综合久久综合| 国产传媒欧美日韩成人| 91丝袜美女网| 91精品国产麻豆国产自产在线| 日韩欧美一级片| 久久免费的精品国产v∧| 亚洲一区二区三区免费视频| 久久se精品一区二区| av网站一区二区三区| 欧美伦理影视网| 国产精品美女久久久久av爽李琼 | 91精品国产综合久久精品麻豆 | 日韩免费性生活视频播放| 亚洲欧洲日韩av| 日本一道高清亚洲日美韩| 成人av网站在线观看| 久久久久久久久久久久电影| 亚洲国产综合色| bt7086福利一区国产| 日韩女优av电影| 一区二区三区在线免费视频| 成人免费视频caoporn| 91精品国产乱| 中文字幕在线观看一区| 久久不见久久见免费视频1| 欧美在线免费播放| 欧美极品美女视频| 成人毛片在线观看| 国产精品丝袜久久久久久app| 麻豆精品在线看| 日韩一级精品视频在线观看| 亚洲综合清纯丝袜自拍| 一本大道久久精品懂色aⅴ| 亚洲婷婷综合色高清在线| eeuss鲁一区二区三区| 国产精品久久久久影院亚瑟| 福利电影一区二区| 色噜噜狠狠成人中文综合| 国产精品卡一卡二卡三| 色婷婷精品久久二区二区蜜臀av| 亚洲欧美欧美一区二区三区| 五月天婷婷综合| 色婷婷综合久久久| 国产精品网站一区| 日韩精品高清不卡| 在线91免费看| 国产成人aaa| 亚洲国产精品自拍| 日本丶国产丶欧美色综合| 亚洲第一搞黄网站| 日韩欧美色综合网站| 国产丶欧美丶日本不卡视频| 亚洲综合av网| 精品国产伦一区二区三区观看方式 | 久久影音资源网| 国产精品一区二区三区四区| 国产欧美一区二区在线| 欧美系列亚洲系列| 国产精品资源在线看| 亚洲图片你懂的| 欧美一区二区三区在线视频 | 日韩美女主播在线视频一区二区三区| 日韩精品乱码免费| 欧美一区二区三区小说| 国产精品香蕉一区二区三区| 日韩电影在线一区二区| 亚洲欧洲三级电影| 欧美一级二级三级乱码| 成人免费黄色大片| 麻豆国产精品视频| 亚洲人成在线观看一区二区| 日韩一区二区中文字幕| 93久久精品日日躁夜夜躁欧美| 美女视频黄频大全不卡视频在线播放| 一区二区三区视频在线观看 | 豆国产96在线|亚洲| 极品销魂美女一区二区三区| 丝袜美腿高跟呻吟高潮一区| 亚洲一区二区三区四区五区中文 | 理论电影国产精品| 丝袜美腿亚洲综合| 国产精品灌醉下药二区| 日韩欧美成人一区| 91亚洲男人天堂| 97精品国产露脸对白| 大胆欧美人体老妇| 久久精品免费看| 久久99国产精品久久99果冻传媒| 日韩精品1区2区3区| 国产精品久久三区| 欧美国产激情一区二区三区蜜月| 国产视频亚洲色图| 国产精品蜜臀av| 日本一区二区三区四区在线视频| 精品国产免费人成在线观看| 国产亚洲一区字幕| 一区在线中文字幕| 亚洲人成在线观看一区二区| 亚洲一区二区三区视频在线播放| 亚洲色图在线看| 亚洲欧洲www| 日日骚欧美日韩| 国产精品一品二品| 色综合色综合色综合色综合色综合| 高清不卡在线观看| 国产99久久久久| 在线一区二区三区四区| 欧美三级资源在线| 51精品视频一区二区三区| 精品美女被调教视频大全网站| 国产精品毛片大码女人| 国产精品久久久久婷婷| 亚洲国产cao| 成人三级在线视频| 成人av电影免费观看|