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

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

?? dir_iterate.c

?? busybox最新版本. 嵌入式編程必不可少之工具.
?? C
字號:
/* vi: set sw=4 ts=4: *//* * dir_iterate.c --- ext2fs directory iteration operations * * Copyright (C) 1993, 1994, 1994, 1995, 1996, 1997 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#if HAVE_ERRNO_H#include <errno.h>#endif#include "ext2_fs.h"#include "ext2fsP.h"/* * This function checks to see whether or not a potential deleted * directory entry looks valid.  What we do is check the deleted entry * and each successive entry to make sure that they all look valid and * that the last deleted entry ends at the beginning of the next * undeleted entry.  Returns 1 if the deleted entry looks valid, zero * if not valid. */static int ext2fs_validate_entry(char *buf, int offset, int final_offset){	struct ext2_dir_entry *dirent;	while (offset < final_offset) {		dirent = (struct ext2_dir_entry *)(buf + offset);		offset += dirent->rec_len;		if ((dirent->rec_len < 8) ||		    ((dirent->rec_len % 4) != 0) ||		    (((dirent->name_len & 0xFF)+8) > dirent->rec_len))			return 0;	}	return (offset == final_offset);}errcode_t ext2fs_dir_iterate2(ext2_filsys fs,			      ext2_ino_t dir,			      int flags,			      char *block_buf,			      int (*func)(ext2_ino_t	dir,					  int		entry,					  struct ext2_dir_entry *dirent,					  int	offset,					  int	blocksize,					  char	*buf,					  void	*priv_data),			      void *priv_data){	struct		dir_context	ctx;	errcode_t	retval;	EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);	retval = ext2fs_check_directory(fs, dir);	if (retval)		return retval;	ctx.dir = dir;	ctx.flags = flags;	if (block_buf)		ctx.buf = block_buf;	else {		retval = ext2fs_get_mem(fs->blocksize, &ctx.buf);		if (retval)			return retval;	}	ctx.func = func;	ctx.priv_data = priv_data;	ctx.errcode = 0;	retval = ext2fs_block_iterate2(fs, dir, 0, 0,				       ext2fs_process_dir_block, &ctx);	if (!block_buf)		ext2fs_free_mem(&ctx.buf);	if (retval)		return retval;	return ctx.errcode;}struct xlate {	int (*func)(struct ext2_dir_entry *dirent,		    int		offset,		    int		blocksize,		    char	*buf,		    void	*priv_data);	void *real_private;};static int xlate_func(ext2_ino_t dir EXT2FS_ATTR((unused)),		      int entry EXT2FS_ATTR((unused)),		      struct ext2_dir_entry *dirent, int offset,		      int blocksize, char *buf, void *priv_data){	struct xlate *xl = (struct xlate *) priv_data;	return (*xl->func)(dirent, offset, blocksize, buf, xl->real_private);}extern errcode_t ext2fs_dir_iterate(ext2_filsys fs,			      ext2_ino_t dir,			      int flags,			      char *block_buf,			      int (*func)(struct ext2_dir_entry *dirent,					  int	offset,					  int	blocksize,					  char	*buf,					  void	*priv_data),			      void *priv_data){	struct xlate xl;	xl.real_private = priv_data;	xl.func = func;	return ext2fs_dir_iterate2(fs, dir, flags, block_buf,				   xlate_func, &xl);}/* * Helper function which is private to this module.  Used by * ext2fs_dir_iterate() and ext2fs_dblist_dir_iterate() */int ext2fs_process_dir_block(ext2_filsys fs,			     blk_t	*blocknr,			     e2_blkcnt_t blockcnt,			     blk_t	ref_block EXT2FS_ATTR((unused)),			     int	ref_offset EXT2FS_ATTR((unused)),			     void	*priv_data){	struct dir_context *ctx = (struct dir_context *) priv_data;	unsigned int	offset = 0;	unsigned int	next_real_entry = 0;	int		ret = 0;	int		changed = 0;	int		do_abort = 0;	int		entry, size;	struct ext2_dir_entry *dirent;	if (blockcnt < 0)		return 0;	entry = blockcnt ? DIRENT_OTHER_FILE : DIRENT_DOT_FILE;	ctx->errcode = ext2fs_read_dir_block(fs, *blocknr, ctx->buf);	if (ctx->errcode)		return BLOCK_ABORT;	while (offset < fs->blocksize) {		dirent = (struct ext2_dir_entry *) (ctx->buf + offset);		if (((offset + dirent->rec_len) > fs->blocksize) ||		    (dirent->rec_len < 8) ||		    ((dirent->rec_len % 4) != 0) ||		    (((dirent->name_len & 0xFF)+8) > dirent->rec_len)) {			ctx->errcode = EXT2_ET_DIR_CORRUPTED;			return BLOCK_ABORT;		}		if (!dirent->inode &&		    !(ctx->flags & DIRENT_FLAG_INCLUDE_EMPTY))			goto next;		ret = (ctx->func)(ctx->dir,				  (next_real_entry > offset) ?				  DIRENT_DELETED_FILE : entry,				  dirent, offset,				  fs->blocksize, ctx->buf,				  ctx->priv_data);		if (entry < DIRENT_OTHER_FILE)			entry++;		if (ret & DIRENT_CHANGED)			changed++;		if (ret & DIRENT_ABORT) {			do_abort++;			break;		}next:		if (next_real_entry == offset)			next_real_entry += dirent->rec_len;		if (ctx->flags & DIRENT_FLAG_INCLUDE_REMOVED) {			size = ((dirent->name_len & 0xFF) + 11) & ~3;			if (dirent->rec_len != size)  {				unsigned int final_offset;				final_offset = offset + dirent->rec_len;				offset += size;				while (offset < final_offset &&				       !ext2fs_validate_entry(ctx->buf,							      offset,							      final_offset))					offset += 4;				continue;			}		}		offset += dirent->rec_len;	}	if (changed) {		ctx->errcode = ext2fs_write_dir_block(fs, *blocknr, ctx->buf);		if (ctx->errcode)			return BLOCK_ABORT;	}	if (do_abort)		return BLOCK_ABORT;	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线观看一区二区| 韩国成人精品a∨在线观看| 91亚洲精品久久久蜜桃| 亚洲精品视频免费观看| 在线观看亚洲精品视频| 亚洲成人www| 日韩欧美高清在线| 国产麻豆精品视频| 1000部国产精品成人观看| 91社区在线播放| 天天av天天翘天天综合网 | 丁香啪啪综合成人亚洲小说| 国产精品美女久久久久久久 | 91精品国产一区二区| 激情五月婷婷综合| 国产精品成人网| 欧美情侣在线播放| 黑人巨大精品欧美一区| 国产精品卡一卡二卡三| 欧美三级电影精品| 国产精品综合av一区二区国产馆| 国产精品区一区二区三| 在线视频综合导航| 狠狠色丁香久久婷婷综合_中| 国产精品三级av| 欧美精品乱码久久久久久| 久久精品99国产精品| 中文字幕乱码一区二区免费| 欧美色图片你懂的| 国产在线观看一区二区| 一区二区三区在线观看网站| 日韩欧美一级在线播放| 色综合久久久久网| 久久国产精品99久久久久久老狼 | 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 奇米精品一区二区三区在线观看| 久久中文娱乐网| 欧洲av一区二区嗯嗯嗯啊| 韩国成人福利片在线播放| 亚洲精品视频在线| 国产清纯在线一区二区www| 欧美午夜在线观看| www.亚洲免费av| 精彩视频一区二区三区| 亚洲最大的成人av| 国产欧美一区二区三区沐欲 | 欧美精品一区二区三区高清aⅴ | 国产精品一线二线三线| 天天综合网 天天综合色| 亚洲欧美日韩中文播放| 国产情人综合久久777777| 91精品国产美女浴室洗澡无遮挡| 91美女精品福利| 成人永久免费视频| 久久精品国产免费| 人人爽香蕉精品| 亚洲第一综合色| 一二三四社区欧美黄| 最新高清无码专区| 亚洲国产精华液网站w| 欧美精品一区二区精品网| 欧美乱妇20p| 欧美色精品在线视频| 91色婷婷久久久久合中文| 国产成a人亚洲精| 美女被吸乳得到大胸91| 天天操天天干天天综合网| 午夜精彩视频在线观看不卡| 亚洲一区二区三区视频在线| 亚洲狼人国产精品| 中文字幕日韩一区| 国产精品乱人伦中文| 日本一区二区三区dvd视频在线| 精品少妇一区二区三区视频免付费| 欧美日韩黄色影视| 欧美一区二区三区在线看| 69堂国产成人免费视频| 91精品国产综合久久福利| 91精品久久久久久蜜臀| 欧美精品日韩一本| 欧美日韩国产另类不卡| 91精品国产综合久久久蜜臀图片| 在线播放视频一区| 精品国产免费久久| 久久九九99视频| 欧美韩国日本一区| 国产精品毛片久久久久久| 中文字幕制服丝袜一区二区三区 | 国产精品日日摸夜夜摸av| 欧美激情综合在线| 亚洲欧美日本在线| 亚洲电影在线免费观看| 人人狠狠综合久久亚洲| 韩国三级电影一区二区| 国产 欧美在线| 一本大道久久a久久精二百 | 精品少妇一区二区三区日产乱码 | 免费不卡在线观看| 国产综合色视频| 成人97人人超碰人人99| 欧美日韩中文国产| 日韩一级视频免费观看在线| 久久综合久色欧美综合狠狠| 成人欧美一区二区三区白人| 亚洲自拍偷拍欧美| 激情亚洲综合在线| 99国产麻豆精品| 欧美精品高清视频| 国产欧美一区二区在线观看| 亚洲最大色网站| 韩国v欧美v日本v亚洲v| 日本高清不卡视频| 精品少妇一区二区三区在线视频| 欧美激情一二三区| 水蜜桃久久夜色精品一区的特点| 国产美女一区二区三区| 在线视频欧美精品| 精品成人在线观看| 亚洲精品免费看| 国产福利视频一区二区三区| 日本高清不卡一区| 国产日韩v精品一区二区| 五月激情六月综合| av激情成人网| 欧美大片在线观看| 亚洲欧美区自拍先锋| 狠狠色狠狠色综合系列| 色婷婷一区二区三区四区| 精品盗摄一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 精品综合免费视频观看| 欧美偷拍一区二区| 国产精品午夜在线| 久久精品国产99久久6| 欧美性受xxxx黑人xyx性爽| 国产亚洲欧美一级| 日本中文字幕一区| 欧美性猛片xxxx免费看久爱| 欧美国产综合一区二区| 久久国产三级精品| 欧美日韩精品福利| 一区二区三区在线播放| 成人国产精品视频| 国产亚洲成年网址在线观看| 日韩精品久久理论片| 在线这里只有精品| 国产精品久久看| 国产激情视频一区二区三区欧美 | 日韩电影在线一区| 日本国产一区二区| 亚洲日本成人在线观看| 风间由美一区二区三区在线观看| 91精品国产欧美一区二区18| 亚洲一区二区视频| 91久久精品一区二区三| 中文字幕中文字幕一区| 国产福利一区二区| 国产欧美一区二区在线| 国产一区二区在线观看视频| 日韩一二三区不卡| 久久99精品久久久久久国产越南| 宅男噜噜噜66一区二区66| 午夜国产精品一区| 欧美一区二区三区视频免费播放| 一区二区成人在线| 在线免费精品视频| 亚洲激情男女视频| 欧亚一区二区三区| 亚洲国产成人精品视频| 欧美区一区二区三区| 偷窥国产亚洲免费视频| 欧美精选在线播放| 奇米四色…亚洲| www欧美成人18+| 国产精品综合一区二区三区| 国产网站一区二区三区| 国产999精品久久久久久绿帽| 国产日韩欧美在线一区| 成人蜜臀av电影| 亚洲欧美在线高清| 欧美性大战久久| 日韩在线一区二区| 精品国产乱码久久久久久蜜臀| 国产呦萝稀缺另类资源| 国产欧美日韩视频在线观看| eeuss鲁片一区二区三区在线观看| 日韩美女视频一区二区| 在线中文字幕不卡| 久久国产尿小便嘘嘘尿| 欧美经典一区二区| 欧美在线观看一二区| 日韩精品三区四区| 国产视频在线观看一区二区三区| 99综合电影在线视频| 婷婷开心激情综合| 久久久久久久久免费| 在线看国产一区| 久久99精品久久只有精品| 中文字幕在线免费不卡| 在线播放中文一区|