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

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

?? mtdram.c

?? 根據fs2410移植過后的mtd驅動源碼
?? C
字號:
/* * mtdram - a test mtd device * $Id: mtdram.c,v 1.37 2005/04/21 03:42:11 joern Exp $ * Author: Alexander Larsson <alex@cendio.se> * * Copyright (c) 1999 Alexander Larsson <alex@cendio.se> * Copyright (c) 2005 Joern Engel <joern@wh.fh-wedel.de> * * This code is GPL * */#include <linux/config.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/ioport.h>#include <linux/vmalloc.h>#include <linux/init.h>#include <linux/mtd/compatmac.h>#include <linux/mtd/mtd.h>static unsigned long total_size = CONFIG_MTDRAM_TOTAL_SIZE;static unsigned long erase_size = CONFIG_MTDRAM_ERASE_SIZE;#define MTDRAM_TOTAL_SIZE (total_size * 1024)#define MTDRAM_ERASE_SIZE (erase_size * 1024)#ifdef MODULEmodule_param(total_size, ulong, 0);MODULE_PARM_DESC(total_size, "Total device size in KiB");module_param(erase_size, ulong, 0);MODULE_PARM_DESC(erase_size, "Device erase block size in KiB");#endif// We could store these in the mtd structure, but we only support 1 device..static struct mtd_info *mtd_info;static int ram_erase(struct mtd_info *mtd, struct erase_info *instr){	if (instr->addr + instr->len > mtd->size)		return -EINVAL;	memset((char *)mtd->priv + instr->addr, 0xff, instr->len);	instr->state = MTD_ERASE_DONE;	mtd_erase_callback(instr);	return 0;}static int ram_point(struct mtd_info *mtd, loff_t from, size_t len,		size_t *retlen, u_char **mtdbuf){	if (from + len > mtd->size)		return -EINVAL;	*mtdbuf = mtd->priv + from;	*retlen = len;	return 0;}static void ram_unpoint(struct mtd_info *mtd, u_char * addr, loff_t from,		size_t len){}static int ram_read(struct mtd_info *mtd, loff_t from, size_t len,		size_t *retlen, u_char *buf){	if (from + len > mtd->size)		return -EINVAL;	memcpy(buf, mtd->priv + from, len);	*retlen = len;	return 0;}static int ram_write(struct mtd_info *mtd, loff_t to, size_t len,		size_t *retlen, const u_char *buf){	if (to + len > mtd->size)		return -EINVAL;	memcpy((char *)mtd->priv + to, buf, len);	*retlen = len;	return 0;}static void __exit cleanup_mtdram(void){	if (mtd_info) {		del_mtd_device(mtd_info);		vfree(mtd_info->priv);		kfree(mtd_info);	}}int mtdram_init_device(struct mtd_info *mtd, void *mapped_address,		unsigned long size, char *name){	memset(mtd, 0, sizeof(*mtd));	/* Setup the MTD structure */	mtd->name = name;	mtd->type = MTD_RAM;	mtd->flags = MTD_CAP_RAM;	mtd->size = size;	mtd->erasesize = MTDRAM_ERASE_SIZE;	mtd->priv = mapped_address;	mtd->owner = THIS_MODULE;	mtd->erase = ram_erase;	mtd->point = ram_point;	mtd->unpoint = ram_unpoint;	mtd->read = ram_read;	mtd->write = ram_write;	if (add_mtd_device(mtd)) {		return -EIO;	}	return 0;}static int __init init_mtdram(void){	void *addr;	int err;	if (!total_size)		return -EINVAL;	/* Allocate some memory */	mtd_info = kmalloc(sizeof(struct mtd_info), GFP_KERNEL);	if (!mtd_info)		return -ENOMEM;	addr = vmalloc(MTDRAM_TOTAL_SIZE);	if (!addr) {		kfree(mtd_info);		mtd_info = NULL;		return -ENOMEM;	}	err = mtdram_init_device(mtd_info, addr, MTDRAM_TOTAL_SIZE, "mtdram test device");	if (err) {		vfree(addr);		kfree(mtd_info);		mtd_info = NULL;		return err;	}	memset(mtd_info->priv, 0xff, MTDRAM_TOTAL_SIZE);	return err;}module_init(init_mtdram);module_exit(cleanup_mtdram);MODULE_LICENSE("GPL");MODULE_AUTHOR("Alexander Larsson <alexl@redhat.com>");MODULE_DESCRIPTION("Simulated MTD driver for testing");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精选在线视频| 亚洲成人777| 久久久久久久久免费| 欧美日韩精品一二三区| 99久久精品国产一区| 成人小视频免费观看| 国产在线精品一区二区| 久久精品99国产精品日本| 亚洲在线免费播放| 亚洲精品免费在线| 亚洲美女偷拍久久| 亚洲伦理在线精品| 亚洲乱码中文字幕综合| 色偷偷久久人人79超碰人人澡| 伊人开心综合网| 国产农村妇女毛片精品久久麻豆| 精品国产第一区二区三区观看体验| 91丨九色丨蝌蚪富婆spa| 捆绑调教一区二区三区| 亚洲精品大片www| 中文字幕成人av| 日韩色视频在线观看| 欧美色视频在线| 91免费版在线| 不卡av电影在线播放| 日本在线播放一区二区三区| 在线播放91灌醉迷j高跟美女| 欧美综合欧美视频| 欧美日韩高清不卡| 欧美一区二区久久| 欧美成人性战久久| 日韩欧美国产不卡| 欧美专区在线观看一区| 色婷婷av一区二区三区gif| 日本道免费精品一区二区三区| 在线免费观看成人短视频| 日韩三级中文字幕| 日韩久久久精品| 欧美成人精品高清在线播放 | 中文字幕一区二区三区在线观看| 久久日一线二线三线suv| 精品国产乱码久久久久久老虎 | 粉嫩在线一区二区三区视频| av在线免费不卡| 色综合久久久久久久久久久| 日本精品一级二级| 欧美精品v国产精品v日韩精品| 日韩一区和二区| 精品国产免费久久| 国产欧美日韩三级| 亚洲精品成人少妇| 日韩国产精品大片| 懂色中文一区二区在线播放| 色综合网色综合| 欧美一区二区三区的| 国产欧美日韩麻豆91| 亚洲成a人v欧美综合天堂| 老司机精品视频在线| 黑人精品欧美一区二区蜜桃| 一本色道久久综合狠狠躁的推荐| 欧美日韩国产美| 欧美国产乱子伦 | 舔着乳尖日韩一区| 国产麻豆精品久久一二三| 不卡免费追剧大全电视剧网站| 欧美手机在线视频| 欧美成人三级在线| 亚洲国产一区二区在线播放| 九九久久精品视频| 成人av中文字幕| 8x8x8国产精品| 国产丝袜美腿一区二区三区| 一区二区三区四区不卡在线 | 精品毛片乱码1区2区3区| 亚洲色图清纯唯美| 日本精品一级二级| 久久综合色播五月| 偷拍自拍另类欧美| 99久久99久久精品免费观看| 久久一二三国产| 天天亚洲美女在线视频| 99精品欧美一区| 久久夜色精品国产噜噜av| 五月天亚洲婷婷| 99视频有精品| 欧美激情一区二区| 久久99久久99精品免视看婷婷 | 成人aaaa免费全部观看| 精品成人一区二区| 香蕉乱码成人久久天堂爱免费| 99久久婷婷国产综合精品电影| 欧美不卡123| 欧美激情艳妇裸体舞| 夜夜操天天操亚洲| 国产福利精品一区| 欧美一区二区三区日韩视频| 久久精品一二三| 久久精品国产亚洲5555| 欧美影院午夜播放| 欧美国产禁国产网站cc| 奇米精品一区二区三区四区| 欧美一区二区在线不卡| 亚洲综合男人的天堂| 成人精品gif动图一区| 欧美精品一区二区三| 丝袜美腿亚洲一区二区图片| 日本韩国一区二区三区视频| 久久久激情视频| 国内外成人在线| 欧美色爱综合网| 国产精品三级av| 国产精品自在欧美一区| 精品国产污网站| 日本中文字幕不卡| 一本大道久久精品懂色aⅴ| 欧美国产精品一区二区三区| 国产激情一区二区三区四区| 欧美刺激脚交jootjob| 一个色妞综合视频在线观看| 色成人在线视频| 亚洲激情五月婷婷| 日本精品一级二级| 综合久久给合久久狠狠狠97色| 99久久er热在这里只有精品15 | 国产精品欧美久久久久一区二区| 免费成人在线观看视频| 777a∨成人精品桃花网| 日韩精品每日更新| 在线观看91精品国产麻豆| 午夜免费欧美电影| 精品91自产拍在线观看一区| 久久精品国产精品青草| 日韩精品一区二区三区swag| 精品一区二区影视| 日韩午夜在线观看视频| 日韩经典一区二区| 精品国产乱码久久久久久老虎| 精品在线观看免费| 欧美日韩国产中文| 蜜桃av一区二区在线观看| 欧美大片在线观看一区二区| 久久国产精品免费| 亚洲精品一线二线三线| 国产一区二区毛片| 亚洲丝袜美腿综合| 99精品一区二区| 亚洲国产精品影院| 欧美本精品男人aⅴ天堂| 国产一区二区h| 日韩免费电影网站| 男女男精品视频| 亚洲精品一区二区三区在线观看| 青青草国产成人av片免费| 欧美大黄免费观看| 久久国产人妖系列| 久久精品一区二区| 在线中文字幕一区二区| 蜜桃av一区二区| 国产精品国产三级国产普通话99 | 亚洲成人动漫在线免费观看| 日韩欧美国产一二三区| 国产一区二区美女诱惑| 一区二区三区四区中文字幕| 欧美一区二区三区在线观看 | 国产成人综合视频| 国产精品久久看| 欧美精品久久99| 国产一区二区三区在线观看免费| 夜夜嗨av一区二区三区网页 | 国产精品污www在线观看| 91亚洲精品久久久蜜桃网站| 五月天欧美精品| 精品久久久久久久人人人人传媒| 99精品久久99久久久久| 一区二区高清免费观看影视大全| 日韩一区二区在线免费观看| 久久国产尿小便嘘嘘尿| 亚洲欧美欧美一区二区三区| 日韩精品最新网址| 在线精品视频免费观看| 国内精品免费**视频| 国产丝袜在线精品| 制服丝袜亚洲播放| 亚洲精品成人悠悠色影视| 日韩亚洲欧美一区二区三区| 成人国产在线观看| 麻豆一区二区三区| 欧美xfplay| 成人av网址在线观看| 久久99深爱久久99精品| 国产精品国产三级国产专播品爱网 | 老司机免费视频一区二区三区| 亚洲欧美日韩系列| 精品国产乱码久久久久久图片 | 国内精品久久久久影院色 | 欧美大片国产精品| 91成人网在线| youjizz国产精品| 国产精品一区在线| 久久精品国产999大香线蕉|