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

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

?? badblocks.c

?? busybox最新版本. 嵌入式編程必不可少之工具.
?? C
字號:
/* vi: set sw=4 ts=4: *//* * badblocks.c --- routines to manipulate the bad block structure * * Copyright (C) 1994, 1995, 1996 Theodore Ts'o. * * %Begin-Header% * This file may be redistributed under the terms of the GNU Public * License. * %End-Header% */#include <stdio.h>#include <string.h>#if HAVE_UNISTD_H#include <unistd.h>#endif#include <fcntl.h>#include <time.h>#if HAVE_SYS_STAT_H#include <sys/stat.h>#endif#if HAVE_SYS_TYPES_H#include <sys/types.h>#endif#include "ext2_fs.h"#include "ext2fsP.h"/* * Helper function for making a badblocks list */static errcode_t make_u32_list(int size, int num, __u32 *list,			       ext2_u32_list *ret){	ext2_u32_list	bb;	errcode_t	retval;	retval = ext2fs_get_mem(sizeof(struct ext2_struct_u32_list), &bb);	if (retval)		return retval;	memset(bb, 0, sizeof(struct ext2_struct_u32_list));	bb->magic = EXT2_ET_MAGIC_BADBLOCKS_LIST;	bb->size = size ? size : 10;	bb->num = num;	retval = ext2fs_get_mem(bb->size * sizeof(blk_t), &bb->list);	if (!bb->list) {		ext2fs_free_mem(&bb);		return retval;	}	if (list)		memcpy(bb->list, list, bb->size * sizeof(blk_t));	else		memset(bb->list, 0, bb->size * sizeof(blk_t));	*ret = bb;	return 0;}/* * This procedure creates an empty u32 list. */errcode_t ext2fs_u32_list_create(ext2_u32_list *ret, int size){	return make_u32_list(size, 0, 0, ret);}/* * This procedure creates an empty badblocks list. */errcode_t ext2fs_badblocks_list_create(ext2_badblocks_list *ret, int size){	return make_u32_list(size, 0, 0, (ext2_badblocks_list *) ret);}/* * This procedure copies a badblocks list */errcode_t ext2fs_u32_copy(ext2_u32_list src, ext2_u32_list *dest){	errcode_t	retval;	retval = make_u32_list(src->size, src->num, src->list, dest);	if (retval)		return retval;	(*dest)->badblocks_flags = src->badblocks_flags;	return 0;}errcode_t ext2fs_badblocks_copy(ext2_badblocks_list src,				ext2_badblocks_list *dest){	return ext2fs_u32_copy((ext2_u32_list) src,			       (ext2_u32_list *) dest);}/* * This procedure frees a badblocks list. * * (note: moved to closefs.c) *//* * This procedure adds a block to a badblocks list. */errcode_t ext2fs_u32_list_add(ext2_u32_list bb, __u32 blk){	errcode_t	retval;	int		i, j;	unsigned long	old_size;	EXT2_CHECK_MAGIC(bb, EXT2_ET_MAGIC_BADBLOCKS_LIST);	if (bb->num >= bb->size) {		old_size = bb->size * sizeof(__u32);		bb->size += 100;		retval = ext2fs_resize_mem(old_size, bb->size * sizeof(__u32),					   &bb->list);		if (retval) {			bb->size -= 100;			return retval;		}	}	/*	 * Add special case code for appending to the end of the list	 */	i = bb->num-1;	if ((bb->num != 0) && (bb->list[i] == blk))		return 0;	if ((bb->num == 0) || (bb->list[i] < blk)) {		bb->list[bb->num++] = blk;		return 0;	}	j = bb->num;	for (i=0; i < bb->num; i++) {		if (bb->list[i] == blk)			return 0;		if (bb->list[i] > blk) {			j = i;			break;		}	}	for (i=bb->num; i > j; i--)		bb->list[i] = bb->list[i-1];	bb->list[j] = blk;	bb->num++;	return 0;}errcode_t ext2fs_badblocks_list_add(ext2_badblocks_list bb, blk_t blk){	return ext2fs_u32_list_add((ext2_u32_list) bb, (__u32) blk);}/* * This procedure finds a particular block is on a badblocks * list. */int ext2fs_u32_list_find(ext2_u32_list bb, __u32 blk){	int	low, high, mid;	if (bb->magic != EXT2_ET_MAGIC_BADBLOCKS_LIST)		return -1;	if (bb->num == 0)		return -1;	low = 0;	high = bb->num-1;	if (blk == bb->list[low])		return low;	if (blk == bb->list[high])		return high;	while (low < high) {		mid = (low+high)/2;		if (mid == low || mid == high)			break;		if (blk == bb->list[mid])			return mid;		if (blk < bb->list[mid])			high = mid;		else			low = mid;	}	return -1;}/* * This procedure tests to see if a particular block is on a badblocks * list. */int ext2fs_u32_list_test(ext2_u32_list bb, __u32 blk){	if (ext2fs_u32_list_find(bb, blk) < 0)		return 0;	else		return 1;}int ext2fs_badblocks_list_test(ext2_badblocks_list bb, blk_t blk){	return ext2fs_u32_list_test((ext2_u32_list) bb, (__u32) blk);}/* * Remove a block from the badblock list */int ext2fs_u32_list_del(ext2_u32_list bb, __u32 blk){	int	remloc, i;	if (bb->num == 0)		return -1;	remloc = ext2fs_u32_list_find(bb, blk);	if (remloc < 0)		return -1;	for (i = remloc ; i < bb->num-1; i++)		bb->list[i] = bb->list[i+1];	bb->num--;	return 0;}void ext2fs_badblocks_list_del(ext2_u32_list bb, __u32 blk){	ext2fs_u32_list_del(bb, blk);}errcode_t ext2fs_u32_list_iterate_begin(ext2_u32_list bb,					ext2_u32_iterate *ret){	ext2_u32_iterate iter;	errcode_t		retval;	EXT2_CHECK_MAGIC(bb, EXT2_ET_MAGIC_BADBLOCKS_LIST);	retval = ext2fs_get_mem(sizeof(struct ext2_struct_u32_iterate), &iter);	if (retval)		return retval;	iter->magic = EXT2_ET_MAGIC_BADBLOCKS_ITERATE;	iter->bb = bb;	iter->ptr = 0;	*ret = iter;	return 0;}errcode_t ext2fs_badblocks_list_iterate_begin(ext2_badblocks_list bb,					      ext2_badblocks_iterate *ret){	return ext2fs_u32_list_iterate_begin((ext2_u32_list) bb,					      (ext2_u32_iterate *) ret);}int ext2fs_u32_list_iterate(ext2_u32_iterate iter, __u32 *blk){	ext2_u32_list	bb;	if (iter->magic != EXT2_ET_MAGIC_BADBLOCKS_ITERATE)		return 0;	bb = iter->bb;	if (bb->magic != EXT2_ET_MAGIC_BADBLOCKS_LIST)		return 0;	if (iter->ptr < bb->num) {		*blk = bb->list[iter->ptr++];		return 1;	}	*blk = 0;	return 0;}int ext2fs_badblocks_list_iterate(ext2_badblocks_iterate iter, blk_t *blk){	return ext2fs_u32_list_iterate((ext2_u32_iterate) iter,				       (__u32 *) blk);}void ext2fs_u32_list_iterate_end(ext2_u32_iterate iter){	if (!iter || (iter->magic != EXT2_ET_MAGIC_BADBLOCKS_ITERATE))		return;	iter->bb = 0;	ext2fs_free_mem(&iter);}void ext2fs_badblocks_list_iterate_end(ext2_badblocks_iterate iter){	ext2fs_u32_list_iterate_end((ext2_u32_iterate) iter);}int ext2fs_u32_list_equal(ext2_u32_list bb1, ext2_u32_list bb2){	EXT2_CHECK_MAGIC(bb1, EXT2_ET_MAGIC_BADBLOCKS_LIST);	EXT2_CHECK_MAGIC(bb2, EXT2_ET_MAGIC_BADBLOCKS_LIST);	if (bb1->num != bb2->num)		return 0;	if (memcmp(bb1->list, bb2->list, bb1->num * sizeof(blk_t)) != 0)		return 0;	return 1;}int ext2fs_badblocks_equal(ext2_badblocks_list bb1, ext2_badblocks_list bb2){	return ext2fs_u32_list_equal((ext2_u32_list) bb1,				     (ext2_u32_list) bb2);}int ext2fs_u32_list_count(ext2_u32_list bb){	return bb->num;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美嫩在线观看| 日韩av一二三| 91国产精品成人| 国产精品国产三级国产aⅴ中文| 成人中文字幕合集| 国产精品久久国产精麻豆99网站| 国产精品一色哟哟哟| 国产女人18水真多18精品一级做| 粉嫩av一区二区三区粉嫩| 国产精品黄色在线观看| 色婷婷综合激情| 日本 国产 欧美色综合| 欧美精品一区二区在线观看| 国产高清精品久久久久| 日韩一区欧美一区| 欧美日韩五月天| 国产一区二区三区不卡在线观看| 国产精品区一区二区三区| 在线观看av不卡| 麻豆国产精品一区二区三区| 欧美激情中文字幕一区二区| 欧美综合视频在线观看| 美女爽到高潮91| 自拍视频在线观看一区二区| 欧美手机在线视频| 国产精品一二三区| 亚洲一级二级在线| 日韩精品一区二区三区老鸭窝| 精品一区二区三区免费| 综合精品久久久| 精品捆绑美女sm三区| 91在线免费播放| 久久精品国产亚洲aⅴ| 国产精品久久国产精麻豆99网站| 在线观看视频一区| 国内成人免费视频| 亚洲视频资源在线| 91精品国产麻豆国产自产在线 | 久久久综合视频| 91麻豆国产在线观看| 麻豆国产精品一区二区三区| 亚洲成年人影院| www久久精品| 欧美在线色视频| 国产高清不卡一区二区| 日韩福利视频网| 亚洲人成伊人成综合网小说| 欧美videofree性高清杂交| 色妞www精品视频| 国产麻豆精品一区二区| 日韩国产在线一| 国产精品超碰97尤物18| 久久久噜噜噜久噜久久综合| 欧美高清www午色夜在线视频| 床上的激情91.| 国产在线视频不卡二| 天堂在线一区二区| 亚洲精品视频免费看| 欧美激情中文不卡| 日韩欧美国产一区二区在线播放 | 欧美性大战久久久久久久蜜臀| 国产一区二区在线看| 五月综合激情网| 亚洲精品一二三| 中文字幕亚洲综合久久菠萝蜜| 日韩欧美一区在线| 欧美日韩三级一区二区| 91一区在线观看| 成人精品国产福利| 国产中文字幕精品| 久久精品国产在热久久| 亚洲成人777| 中文字幕制服丝袜成人av| 日韩欧美一区二区免费| 欧美性大战久久久| 欧美在线观看一二区| 91视视频在线观看入口直接观看www| 亚洲高清视频在线| 亚洲图片自拍偷拍| 亚洲欧美成人一区二区三区| 国产精品福利影院| 亚洲视频电影在线| 石原莉奈在线亚洲二区| 亚洲第一主播视频| 日韩高清不卡一区二区三区| 奇米在线7777在线精品| 日本中文字幕不卡| 免费成人av资源网| 久久99精品国产| 国产一区二区三区综合| 毛片av中文字幕一区二区| 日韩精品电影在线观看| 日韩国产精品久久| 久久er99精品| 国产成人免费视频精品含羞草妖精| 国产美女精品一区二区三区| 国产精品一级在线| 成人激情小说乱人伦| 91丨九色porny丨蝌蚪| 欧美性欧美巨大黑白大战| 欧美日韩在线免费视频| 日韩一区二区三区视频在线| 久久中文字幕电影| 国产精品入口麻豆原神| 一区av在线播放| 亚洲va中文字幕| 精品在线播放午夜| 成人av免费在线| 欧美日韩亚洲高清一区二区| 日韩午夜激情av| 国产亚洲女人久久久久毛片| 亚洲精品高清在线观看| 久草这里只有精品视频| 国产大片一区二区| 色www精品视频在线观看| 色婷婷激情久久| 捆绑调教美女网站视频一区| 水野朝阳av一区二区三区| 中文字幕不卡在线播放| 亚洲国产视频在线| 国产一区二区三区免费看 | 麻豆成人综合网| 不卡电影一区二区三区| 欧美日韩mp4| 国产精品久久久久一区二区三区 | 99国内精品久久| 欧美视频在线不卡| 日韩欧美在线不卡| 中文字幕一区二区三区乱码在线 | 欧美在线观看一区| 精品美女在线观看| 一区二区三区免费网站| 韩国精品主播一区二区在线观看 | 亚洲精品成人少妇| 久久91精品国产91久久小草| 91在线视频免费观看| 精品福利一区二区三区免费视频| 最新久久zyz资源站| 九九久久精品视频| 在线观看91视频| 国产精品久久久久久久久动漫| 久久精品999| 欧美综合天天夜夜久久| 中文一区在线播放| 日韩高清在线不卡| 色欧美乱欧美15图片| 欧美—级在线免费片| 天天综合色天天综合色h| 99视频一区二区三区| 久久亚洲精精品中文字幕早川悠里| 午夜激情综合网| 成人美女视频在线观看18| 精品欧美一区二区久久 | 欧美aaaaa成人免费观看视频| 91在线码无精品| 亚洲国产岛国毛片在线| 久久精品99国产精品| 欧美色欧美亚洲另类二区| 欧美日韩一区视频| 国产欧美日韩另类一区| 日韩高清在线观看| 777久久久精品| 舔着乳尖日韩一区| 91传媒视频在线播放| 亚洲乱码国产乱码精品精可以看| 国产91精品入口| 国产三级欧美三级日产三级99| 精品一区二区三区免费观看| 91精品国产全国免费观看| 一区二区在线电影| 色美美综合视频| 亚洲欧美电影一区二区| 91九色02白丝porn| 亚洲欧美日韩一区二区| 91丨国产丨九色丨pron| 亚洲在线免费播放| 欧美视频在线观看一区二区| 午夜激情综合网| 日韩一区二区电影在线| 另类调教123区| 亚洲精品一区二区三区99| 久久91精品国产91久久小草| 欧美伦理电影网| 蜜臀av国产精品久久久久 | 国产精品美女久久久久av爽李琼 | 在线日韩av片| 亚洲国产一区在线观看| 欧美精品日日鲁夜夜添| 麻豆91精品91久久久的内涵| 久久丝袜美腿综合| jlzzjlzz亚洲女人18| 日韩伦理电影网| 欧美在线高清视频| 亚洲福利视频三区| 日韩欧美精品三级| caoporn国产精品| 三级一区在线视频先锋| 2020日本不卡一区二区视频| 国产v综合v亚洲欧| 国产精品三级在线观看|