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

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

?? badblocks.c

?? busybox是一個(gè)集成了一百多個(gè)最常用linux命令和工具的軟件,在嵌入式linux應(yīng)用中,busybox有非常廣的應(yīng)用。
?? C
字號(hào):
/* 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;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区视频在线观看| 亚洲国产视频在线| 777亚洲妇女| 欧美疯狂做受xxxx富婆| 欧美图区在线视频| 欧美曰成人黄网| 欧美三级乱人伦电影| 欧美性视频一区二区三区| 色激情天天射综合网| 欧美羞羞免费网站| 6080国产精品一区二区| 91精品国产免费久久综合| 欧美一区二区三区四区视频| 日韩天堂在线观看| 久久精品一二三| 国产精品盗摄一区二区三区| 日韩毛片精品高清免费| 亚洲精品成人在线| 日本91福利区| 欧美三区在线观看| 免费美女久久99| 国产精品一区二区果冻传媒| 豆国产96在线|亚洲| 97精品国产97久久久久久久久久久久| 97超碰欧美中文字幕| 欧美性猛片aaaaaaa做受| 欧美日韩高清在线| 久久影院视频免费| 国产精品护士白丝一区av| 亚洲男人天堂一区| 免费成人av资源网| 懂色一区二区三区免费观看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美妇女性影城| 日韩精品一区二区三区中文不卡 | 国内外成人在线| 成人aaaa免费全部观看| 91福利精品第一导航| 日韩免费福利电影在线观看| 国产精品美女久久久久久久网站| 亚洲精品免费视频| 蜜桃视频一区二区三区在线观看| 国产成人综合在线播放| 日本韩国一区二区三区视频| 日韩欧美国产精品| 亚洲图片激情小说| 蜜臀久久99精品久久久画质超高清| 成人性视频网站| 欧美高清你懂得| 国产精品久久久久久妇女6080| 日韩激情av在线| 成人不卡免费av| 欧美一区日韩一区| 日韩毛片高清在线播放| 久久国产免费看| 日本韩国精品在线| 久久蜜桃av一区精品变态类天堂 | 久久av中文字幕片| 色婷婷综合激情| 久久免费电影网| 亚洲成人精品一区二区| 成人h动漫精品| 欧美va在线播放| 亚洲主播在线播放| 成人午夜在线免费| 欧美mv日韩mv亚洲| 亚洲线精品一区二区三区八戒| 懂色av中文一区二区三区| 欧美精品九九99久久| 亚洲人成精品久久久久| 国产成a人亚洲| 日韩一区二区高清| 亚洲夂夂婷婷色拍ww47| 成人网在线免费视频| 精品国产一区二区在线观看| 亚洲综合丁香婷婷六月香| av成人免费在线观看| 久久精品欧美日韩精品| 久久国产福利国产秒拍| 欧美精品 日韩| 亚洲动漫第一页| 一本色道亚洲精品aⅴ| 国产欧美日韩在线| 国内精品国产三级国产a久久| 91精品国产黑色紧身裤美女| 亚洲一区二区三区四区中文字幕| 粉嫩嫩av羞羞动漫久久久| 精品国产麻豆免费人成网站| 人妖欧美一区二区| 91精品在线观看入口| 丝袜诱惑制服诱惑色一区在线观看| 99久久婷婷国产综合精品| 国产欧美1区2区3区| 国产大片一区二区| 337p日本欧洲亚洲大胆色噜噜| 婷婷久久综合九色综合绿巨人| 欧美性生交片4| 亚洲丰满少妇videoshd| 欧美久久久一区| 日本亚洲一区二区| 日韩欧美久久一区| 久久精品999| 久久网这里都是精品| 国产综合久久久久久鬼色| 精品久久久久99| 国产麻豆精品视频| 亚洲国产电影在线观看| 99精品视频一区| 夜夜嗨av一区二区三区网页| 色婷婷一区二区三区四区| 亚洲综合在线免费观看| 欧美在线观看视频一区二区三区| 亚洲小说春色综合另类电影| 欧美日韩中文另类| 琪琪一区二区三区| 久久香蕉国产线看观看99| 夫妻av一区二区| 亚洲婷婷综合色高清在线| 欧美吻胸吃奶大尺度电影| 日韩电影一二三区| 久久久综合九色合综国产精品| 国产精品一区久久久久| 中文字幕一区三区| 欧美吞精做爰啪啪高潮| 久久丁香综合五月国产三级网站| 久久久www成人免费毛片麻豆 | 欧美男男青年gay1069videost | 欧美日韩激情一区二区| 午夜精品aaa| 久久久亚洲综合| 97se亚洲国产综合在线| 亚洲成人av在线电影| 精品国产第一区二区三区观看体验| 国产精品资源站在线| 亚洲免费大片在线观看| 欧美一区二区三区免费大片 | 国产伦精品一区二区三区免费| 欧美国产视频在线| 欧美三级韩国三级日本三斤| 免费成人在线视频观看| 国产精品嫩草影院com| 欧美视频一区二区三区| 国产一区二区中文字幕| 一个色综合av| 亚洲精品一线二线三线无人区| av中文字幕亚洲| 蜜桃一区二区三区在线| 中文字幕欧美一| 欧美一区二区三区系列电影| 成人白浆超碰人人人人| 热久久国产精品| 中文字幕制服丝袜成人av| 91精品国产麻豆国产自产在线| 成人黄色在线看| 麻豆免费精品视频| 一区二区三区日韩| 久久色中文字幕| 欧美视频在线不卡| 国产99久久久国产精品潘金| 亚洲成在人线免费| 中文av一区二区| 欧美大片顶级少妇| 欧美揉bbbbb揉bbbbb| 成人午夜电影久久影院| 免费在线观看不卡| 亚洲综合免费观看高清完整版在线| 久久青草国产手机看片福利盒子| 欧美最新大片在线看 | 欧美一区二区三区在线看| 99久久久无码国产精品| 久久99精品久久只有精品| 亚洲va欧美va人人爽午夜| 国产精品免费久久久久| 精品久久久久久无| 欧美日本一道本| 色综合色综合色综合| 岛国精品在线观看| 蜜臀久久久久久久| 亚洲成人午夜影院| 亚洲欧美一区二区三区国产精品 | 欧美网站大全在线观看| 成人97人人超碰人人99| 国模一区二区三区白浆| 青青草原综合久久大伊人精品| 亚洲一区二三区| 亚洲丝袜制服诱惑| 日本一区二区三区dvd视频在线| 欧美va日韩va| 日韩一区二区在线播放| 这里只有精品免费| 欧美色网一区二区| 欧美午夜精品久久久| 欧美视频在线观看一区| 色婷婷综合久久久久中文 | 欧美日高清视频| 欧美视频一区二区三区四区| 在线视频欧美精品| 色视频一区二区| 91视频免费播放| av电影天堂一区二区在线观看|