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

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

?? mtd.h

?? linux-2.6.15.6
?? H
字號:
/* * $Id: mtd.h,v 1.61 2005/11/07 11:14:54 gleixner Exp $ * * Copyright (C) 1999-2003 David Woodhouse <dwmw2@infradead.org> et al. * * Released under GPL */#ifndef __MTD_MTD_H__#define __MTD_MTD_H__#ifndef __KERNEL__#error This is a kernel header. Perhaps include mtd-user.h instead?#endif#include <linux/config.h>#include <linux/types.h>#include <linux/module.h>#include <linux/uio.h>#include <linux/notifier.h>#include <linux/mtd/compatmac.h>#include <mtd/mtd-abi.h>#define MTD_CHAR_MAJOR 90#define MTD_BLOCK_MAJOR 31#define MAX_MTD_DEVICES 16#define MTD_ERASE_PENDING      	0x01#define MTD_ERASING		0x02#define MTD_ERASE_SUSPEND	0x04#define MTD_ERASE_DONE          0x08#define MTD_ERASE_FAILED        0x10/* If the erase fails, fail_addr might indicate exactly which block failed.  If   fail_addr = 0xffffffff, the failure was not at the device level or was not   specific to any particular block. */struct erase_info {	struct mtd_info *mtd;	u_int32_t addr;	u_int32_t len;	u_int32_t fail_addr;	u_long time;	u_long retries;	u_int dev;	u_int cell;	void (*callback) (struct erase_info *self);	u_long priv;	u_char state;	struct erase_info *next;};struct mtd_erase_region_info {	u_int32_t offset;			/* At which this region starts, from the beginning of the MTD */	u_int32_t erasesize;		/* For this region */	u_int32_t numblocks;		/* Number of blocks of erasesize in this region */};struct mtd_info {	u_char type;	u_int32_t flags;	u_int32_t size;	 // Total size of the MTD	/* "Major" erase size for the device. Na飗e users may take this	 * to be the only erase size available, or may use the more detailed	 * information below if they desire	 */	u_int32_t erasesize;	u_int32_t oobblock;  // Size of OOB blocks (e.g. 512)	u_int32_t oobsize;   // Amount of OOB data per block (e.g. 16)	u_int32_t ecctype;	u_int32_t eccsize;	/*	 * Reuse some of the above unused fields in the case of NOR flash	 * with configurable programming regions to avoid modifying the	 * user visible structure layout/size.  Only valid when the	 * MTD_PROGRAM_REGIONS flag is set.	 * (Maybe we should have an union for those?)	 */#define MTD_PROGREGION_SIZE(mtd)  (mtd)->oobblock#define MTD_PROGREGION_CTRLMODE_VALID(mtd)  (mtd)->oobsize#define MTD_PROGREGION_CTRLMODE_INVALID(mtd)  (mtd)->ecctype	// Kernel-only stuff starts here.	char *name;	int index;	// oobinfo is a nand_oobinfo structure, which can be set by iotcl (MEMSETOOBINFO)	struct nand_oobinfo oobinfo;	u_int32_t oobavail;  // Number of bytes in OOB area available for fs	/* Data for variable erase regions. If numeraseregions is zero,	 * it means that the whole device has erasesize as given above.	 */	int numeraseregions;	struct mtd_erase_region_info *eraseregions;	/* This really shouldn't be here. It can go away in 2.5 */	u_int32_t bank_size;	int (*erase) (struct mtd_info *mtd, struct erase_info *instr);	/* This stuff for eXecute-In-Place */	int (*point) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char **mtdbuf);	/* We probably shouldn't allow XIP if the unpoint isn't a NULL */	void (*unpoint) (struct mtd_info *mtd, u_char * addr, loff_t from, size_t len);	int (*read) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf);	int (*write) (struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf);	int (*read_ecc) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf, u_char *eccbuf, struct nand_oobinfo *oobsel);	int (*write_ecc) (struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf, u_char *eccbuf, struct nand_oobinfo *oobsel);	int (*read_oob) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf);	int (*write_oob) (struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf);	/*	 * Methods to access the protection register area, present in some	 * flash devices. The user data is one time programmable but the	 * factory data is read only.	 */	int (*get_fact_prot_info) (struct mtd_info *mtd, struct otp_info *buf, size_t len);	int (*read_fact_prot_reg) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf);	int (*get_user_prot_info) (struct mtd_info *mtd, struct otp_info *buf, size_t len);	int (*read_user_prot_reg) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf);	int (*write_user_prot_reg) (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf);	int (*lock_user_prot_reg) (struct mtd_info *mtd, loff_t from, size_t len);	/* kvec-based read/write methods. We need these especially for NAND flash,	   with its limited number of write cycles per erase.	   NB: The 'count' parameter is the number of _vectors_, each of	   which contains an (ofs, len) tuple.	*/	int (*readv) (struct mtd_info *mtd, struct kvec *vecs, unsigned long count, loff_t from, size_t *retlen);	int (*readv_ecc) (struct mtd_info *mtd, struct kvec *vecs, unsigned long count, loff_t from,		size_t *retlen, u_char *eccbuf, struct nand_oobinfo *oobsel);	int (*writev) (struct mtd_info *mtd, const struct kvec *vecs, unsigned long count, loff_t to, size_t *retlen);	int (*writev_ecc) (struct mtd_info *mtd, const struct kvec *vecs, unsigned long count, loff_t to,		size_t *retlen, u_char *eccbuf, struct nand_oobinfo *oobsel);	/* Sync */	void (*sync) (struct mtd_info *mtd);	/* Chip-supported device locking */	int (*lock) (struct mtd_info *mtd, loff_t ofs, size_t len);	int (*unlock) (struct mtd_info *mtd, loff_t ofs, size_t len);	/* Power Management functions */	int (*suspend) (struct mtd_info *mtd);	void (*resume) (struct mtd_info *mtd);	/* Bad block management functions */	int (*block_isbad) (struct mtd_info *mtd, loff_t ofs);	int (*block_markbad) (struct mtd_info *mtd, loff_t ofs);	struct notifier_block reboot_notifier;  /* default mode before reboot */	void *priv;	struct module *owner;	int usecount;};	/* Kernel-side ioctl definitions */extern int add_mtd_device(struct mtd_info *mtd);extern int del_mtd_device (struct mtd_info *mtd);extern struct mtd_info *get_mtd_device(struct mtd_info *mtd, int num);extern void put_mtd_device(struct mtd_info *mtd);struct mtd_notifier {	void (*add)(struct mtd_info *mtd);	void (*remove)(struct mtd_info *mtd);	struct list_head list;};extern void register_mtd_user (struct mtd_notifier *new);extern int unregister_mtd_user (struct mtd_notifier *old);int default_mtd_writev(struct mtd_info *mtd, const struct kvec *vecs,		       unsigned long count, loff_t to, size_t *retlen);int default_mtd_readv(struct mtd_info *mtd, struct kvec *vecs,		      unsigned long count, loff_t from, size_t *retlen);#define MTD_ERASE(mtd, args...) (*(mtd->erase))(mtd, args)#define MTD_POINT(mtd, a,b,c,d) (*(mtd->point))(mtd, a,b,c, (u_char **)(d))#define MTD_UNPOINT(mtd, arg) (*(mtd->unpoint))(mtd, (u_char *)arg)#define MTD_READ(mtd, args...) (*(mtd->read))(mtd, args)#define MTD_WRITE(mtd, args...) (*(mtd->write))(mtd, args)#define MTD_READV(mtd, args...) (*(mtd->readv))(mtd, args)#define MTD_WRITEV(mtd, args...) (*(mtd->writev))(mtd, args)#define MTD_READECC(mtd, args...) (*(mtd->read_ecc))(mtd, args)#define MTD_WRITEECC(mtd, args...) (*(mtd->write_ecc))(mtd, args)#define MTD_READOOB(mtd, args...) (*(mtd->read_oob))(mtd, args)#define MTD_WRITEOOB(mtd, args...) (*(mtd->write_oob))(mtd, args)#define MTD_SYNC(mtd) do { if (mtd->sync) (*(mtd->sync))(mtd);  } while (0)#ifdef CONFIG_MTD_PARTITIONSvoid mtd_erase_callback(struct erase_info *instr);#elsestatic inline void mtd_erase_callback(struct erase_info *instr){	if (instr->callback)		instr->callback(instr);}#endif/* * Debugging macro and defines */#define MTD_DEBUG_LEVEL0	(0)	/* Quiet   */#define MTD_DEBUG_LEVEL1	(1)	/* Audible */#define MTD_DEBUG_LEVEL2	(2)	/* Loud    */#define MTD_DEBUG_LEVEL3	(3)	/* Noisy   */#ifdef CONFIG_MTD_DEBUG#define DEBUG(n, args...)				\ 	do {						\		if (n <= CONFIG_MTD_DEBUG_VERBOSE)	\			printk(KERN_INFO args);		\	} while(0)#else /* CONFIG_MTD_DEBUG */#define DEBUG(n, args...) do { } while(0)#endif /* CONFIG_MTD_DEBUG */#endif /* __MTD_MTD_H__ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
9191成人精品久久| 欧美电影一区二区三区| 另类小说综合欧美亚洲| 亚洲线精品一区二区三区八戒| 国产精品久久久久久久久免费丝袜| 欧美成人一区二区三区在线观看| 欧美一区二区三区在线观看视频| 日韩一区二区三区在线视频| 欧美一区二区三区男人的天堂| 欧美一区在线视频| 久久综合久久99| 日本一区二区久久| 亚洲欧美日韩久久| 五月婷婷久久综合| 久久99精品久久久久| 国产精品996| 99精品久久99久久久久| 日本电影亚洲天堂一区| 欧美女孩性生活视频| 日韩免费性生活视频播放| 国产亚洲精品超碰| 亚洲视频在线观看一区| 无吗不卡中文字幕| 国产久卡久卡久卡久卡视频精品| 成人免费毛片aaaaa**| 一本大道av伊人久久综合| 7777精品伊人久久久大香线蕉超级流畅| 91精品欧美一区二区三区综合在 | 日韩专区欧美专区| 久久国产精品99久久人人澡| 丁香啪啪综合成人亚洲小说| 一本色道久久综合亚洲91| 91精品欧美一区二区三区综合在 | 91久久精品网| 欧美xxxxx牲另类人与| 中文字幕亚洲电影| 毛片av一区二区三区| 成人黄色免费短视频| 欧美一区二区在线视频| 中文字幕一区二区三区在线不卡| 亚洲成a人在线观看| 国产91高潮流白浆在线麻豆| 欧美性受xxxx| 日本一二三不卡| 日本成人在线网站| 91色视频在线| 国产丝袜美腿一区二区三区| 亚洲国产成人精品视频| av不卡一区二区三区| 日韩精品一区二区在线观看| 一区二区在线免费观看| 国产乱子伦视频一区二区三区| 欧美日韩一卡二卡三卡| 国产精品久久久久久久久快鸭 | 成人妖精视频yjsp地址| 欧美一区二区三区四区五区| 国产精品国产三级国产aⅴ入口| 美腿丝袜在线亚洲一区| 欧美在线看片a免费观看| 国产精品剧情在线亚洲| 国产精品一区在线| 欧美变态口味重另类| 日韩二区在线观看| 欧美性视频一区二区三区| 综合亚洲深深色噜噜狠狠网站| 韩国欧美国产1区| 欧美一区二区久久| 日韩和欧美一区二区| 在线观看免费视频综合| 亚洲日本va午夜在线影院| 国产不卡一区视频| 久久久久久久久久久电影| 久久福利视频一区二区| 日韩欧美的一区二区| 免费在线观看一区| 4438x成人网最大色成网站| 日韩在线一区二区三区| 欧美男同性恋视频网站| 日韩高清一区在线| 日韩一级二级三级| 久久99精品一区二区三区| 日韩欧美高清在线| 国产一区二区在线视频| 国产亚洲一区二区三区四区| 国产成人免费在线观看| 中文字幕+乱码+中文字幕一区| 成人手机在线视频| 亚洲欧美一区二区久久| 欧美网站大全在线观看| 日韩国产欧美视频| 久久综合五月天婷婷伊人| 成人综合婷婷国产精品久久| 国产精品久久久久久久蜜臀| 日本道色综合久久| 婷婷久久综合九色综合绿巨人| 欧美一区二区视频在线观看2022| 美女视频一区二区| 亚洲国产精品国自产拍av| 色综合久久中文综合久久牛| 亚洲成人在线网站| 亚洲精品在线免费播放| 不卡视频在线观看| 午夜激情一区二区| 国产农村妇女毛片精品久久麻豆| 91在线播放网址| 青青草伊人久久| 国产清纯白嫩初高生在线观看91 | 日本伊人精品一区二区三区观看方式 | 欧美一级片在线看| 成人理论电影网| 亚洲国产va精品久久久不卡综合| 日韩欧美国产一二三区| 99热国产精品| 蜜臀91精品一区二区三区| 国产精品嫩草久久久久| 欧美一级夜夜爽| 91在线看国产| 国产成人亚洲综合色影视| 亚洲主播在线观看| 久久久亚洲综合| 在线不卡a资源高清| www.亚洲国产| 国产一区二区三区久久久| 亚洲一二三四在线| 国产精品久久久久久久久久久免费看| 69堂国产成人免费视频| 99麻豆久久久国产精品免费优播| 美美哒免费高清在线观看视频一区二区| 国产精品久久毛片a| 26uuu亚洲| 欧美一区二区三区啪啪| 在线观看91精品国产入口| 成人av在线一区二区三区| 麻豆成人免费电影| 亚洲国产美国国产综合一区二区| 中文字幕av一区二区三区| 欧美精品一区二区蜜臀亚洲| 7777精品伊人久久久大香线蕉最新版| 一本大道久久精品懂色aⅴ| 国产成人激情av| 国产美女视频91| 国产综合色在线| 久久电影网电视剧免费观看| 日韩精品成人一区二区三区| 午夜精品久久一牛影视| 亚洲国产三级在线| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美精品九九99久久| 色猫猫国产区一区二在线视频| 成人晚上爱看视频| www.欧美日韩| 97se亚洲国产综合自在线不卡| 国产成人免费视频一区| 国产剧情一区在线| 国产suv一区二区三区88区| 国产福利一区二区三区视频| 激情综合色播五月| 国产精品一区二区在线观看网站 | 亚洲国产一区二区a毛片| 一区二区三区中文在线| 亚洲综合精品自拍| 亚洲国产欧美日韩另类综合| 日日夜夜精品视频免费| 免费一级欧美片在线观看| 老司机一区二区| 精品一区二区三区蜜桃| 国产成人福利片| 色综合欧美在线视频区| 欧美系列亚洲系列| 日韩欧美一二区| 国产亚洲精品超碰| 亚洲色图欧美在线| 性欧美疯狂xxxxbbbb| 久久国产麻豆精品| 波多野结衣在线aⅴ中文字幕不卡| 91网站在线观看视频| 欧美日韩精品免费| 久久久五月婷婷| 亚洲激情六月丁香| 蜜桃视频一区二区| 99久久精品免费| 欧美人成免费网站| 欧美韩国日本一区| 亚洲一区二区三区小说| 极品瑜伽女神91| 色综合久久综合网欧美综合网| 欧美一级日韩免费不卡| 国产精品美女久久福利网站| 亚洲成人你懂的| 国产成人精品亚洲午夜麻豆| 欧美午夜寂寞影院| 国产日本一区二区| 日本sm残虐另类| va亚洲va日韩不卡在线观看| 91麻豆精品国产自产在线| 亚洲国产精品精华液2区45| 婷婷久久综合九色综合伊人色| 福利91精品一区二区三区| 91精品国产丝袜白色高跟鞋| 中文字幕亚洲电影|