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

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

?? mmap.c

?? Linux設(shè)備驅(qū)動(dòng)的經(jīng)典教材, 該電子書是第三版,并附有全部配套代碼.
?? C
字號(hào):
/*  -*- C -*- * mmap.c -- memory mapping for the sculld char module * * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyright (C) 2001 O'Reilly & Associates * * The source code in this file can be freely used, adapted, * and redistributed in source or binary form, so long as an * acknowledgment appears in derived source files.  The citation * should list that the code comes from the book "Linux Device * Drivers" by Alessandro Rubini and Jonathan Corbet, published * by O'Reilly & Associates.   No warranty is attached; * we cannot take responsibility for errors or fitness for use. * * $Id: _mmap.c.in,v 1.13 2004/10/18 18:07:36 corbet Exp $ */#include <linux/config.h>#include <linux/module.h>#include <linux/mm.h>		/* everything */#include <linux/errno.h>	/* error codes */#include <asm/pgtable.h>#include "sculld.h"		/* local definitions *//* * open and close: just keep track of how many times the device is * mapped, to avoid releasing it. */void sculld_vma_open(struct vm_area_struct *vma){	struct sculld_dev *dev = vma->vm_private_data;	dev->vmas++;}void sculld_vma_close(struct vm_area_struct *vma){	struct sculld_dev *dev = vma->vm_private_data;	dev->vmas--;}/* * The nopage method: the core of the file. It retrieves the * page required from the sculld device and returns it to the * user. The count for the page must be incremented, because * it is automatically decremented at page unmap. * * For this reason, "order" must be zero. Otherwise, only the first * page has its count incremented, and the allocating module must * release it as a whole block. Therefore, it isn't possible to map * pages from a multipage block: when they are unmapped, their count * is individually decreased, and would drop to 0. */struct page *sculld_vma_nopage(struct vm_area_struct *vma,                                unsigned long address, int *type){	unsigned long offset;	struct sculld_dev *ptr, *dev = vma->vm_private_data;	struct page *page = NOPAGE_SIGBUS;	void *pageptr = NULL; /* default to "missing" */	down(&dev->sem);	offset = (address - vma->vm_start) + (vma->vm_pgoff << PAGE_SHIFT);	if (offset >= dev->size) goto out; /* out of range */	/*	 * Now retrieve the sculld device from the list,then the page.	 * If the device has holes, the process receives a SIGBUS when	 * accessing the hole.	 */	offset >>= PAGE_SHIFT; /* offset is a number of pages */	for (ptr = dev; ptr && offset >= dev->qset;) {		ptr = ptr->next;		offset -= dev->qset;	}	if (ptr && ptr->data) pageptr = ptr->data[offset];	if (!pageptr) goto out; /* hole or end-of-file */	/* got it, now increment the count */	get_page(page);	if (type)		*type = VM_FAULT_MINOR;  out:	up(&dev->sem);	return page;}struct vm_operations_struct sculld_vm_ops = {	.open =     sculld_vma_open,	.close =    sculld_vma_close,	.nopage =   sculld_vma_nopage,};int sculld_mmap(struct file *filp, struct vm_area_struct *vma){	struct inode *inode = filp->f_dentry->d_inode;	/* refuse to map if order is not 0 */	if (sculld_devices[iminor(inode)].order)		return -ENODEV;	/* don't do anything here: "nopage" will set up page table entries */	vma->vm_ops = &sculld_vm_ops;	vma->vm_flags |= VM_RESERVED;	vma->vm_private_data = filp->private_data;	sculld_vma_open(vma);	return 0;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久一区二区三区| 九色综合狠狠综合久久| 蜜桃av噜噜一区二区三区小说| 国产精品一区二区在线看| 一本一道久久a久久精品| 日韩你懂的电影在线观看| 亚洲女人****多毛耸耸8| 毛片基地黄久久久久久天堂| 色综合天天综合在线视频| 精品三级在线观看| 亚洲五码中文字幕| av网站免费线看精品| 欧美成人性福生活免费看| 亚洲宅男天堂在线观看无病毒| 国产馆精品极品| 日韩三级视频中文字幕| 亚洲一区二区在线视频| 99热这里都是精品| 久久精品视频在线看| 青草国产精品久久久久久| 在线影视一区二区三区| 亚洲欧洲性图库| 国产精品一区在线| 久久先锋影音av鲁色资源网| 三级欧美韩日大片在线看| 欧美无砖专区一中文字| 1024成人网色www| 91丝袜美女网| 1024成人网| 色综合色综合色综合色综合色综合| 国产亚洲欧美日韩俺去了| 国内成人精品2018免费看| 3d成人动漫网站| 日韩精品国产欧美| 欧美一区二区久久久| 免费观看日韩电影| 欧美成人video| 国产伦精品一区二区三区免费迷 | 精品99999| 日本不卡视频在线| 日韩欧美二区三区| 麻豆国产精品777777在线| 精品国产91洋老外米糕| 国产麻豆视频一区| 国产三级久久久| av综合在线播放| 亚洲人成精品久久久久久| 在线观看视频一区二区| 亚洲超碰精品一区二区| 欧美精品亚洲二区| 精品一二三四在线| 国产日韩av一区二区| 国产成人av自拍| 亚洲欧美日韩在线| 欧美电影在线免费观看| 久久精品国产**网站演员| 国产网站一区二区| 91啪亚洲精品| 热久久国产精品| 国产精品色哟哟网站| 在线视频中文字幕一区二区| 日韩av电影天堂| 欧美激情一区二区| 欧美午夜片在线看| 国产一区二区三区电影在线观看 | 欧美一区二区美女| 高清不卡一区二区| 亚洲r级在线视频| 久久久亚洲午夜电影| 日本韩国精品一区二区在线观看| 日本亚洲三级在线| 国产精品国产三级国产三级人妇| 在线影院国内精品| 国产乱码精品一区二区三区av| 1024国产精品| 2017欧美狠狠色| 欧美中文字幕一区二区三区| 精品午夜一区二区三区在线观看| 综合精品久久久| 欧美一级日韩一级| 色婷婷综合久久久中文字幕| 激情综合网天天干| 亚洲一线二线三线久久久| 国产亚洲午夜高清国产拍精品| 色综合网色综合| 国产成人精品亚洲午夜麻豆| 亚洲成人免费在线| 亚洲欧美在线aaa| 精品国产三级a在线观看| 欧美专区在线观看一区| 成人av先锋影音| 韩国毛片一区二区三区| 亚洲激情图片小说视频| 国产视频911| 日韩精品综合一本久道在线视频| 91色porny蝌蚪| 国产aⅴ综合色| 国产一区啦啦啦在线观看| 青草av.久久免费一区| 亚洲午夜成aⅴ人片| 亚洲日本va午夜在线电影| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品午夜免费| 久久久精品免费观看| 精品国产一区二区三区不卡| 4438x亚洲最大成人网| 欧美日韩国产一级片| 欧美性感一区二区三区| 91啦中文在线观看| 成人av免费观看| 波多野洁衣一区| 成人激情免费网站| 成人免费毛片a| 成人一道本在线| 成人av免费网站| 北岛玲一区二区三区四区| 福利一区二区在线观看| 国产精品一线二线三线精华| 国产一区二区不卡老阿姨| 国产高清久久久久| 国产伦精品一区二区三区免费| 国产麻豆精品一区二区| 国产.精品.日韩.另类.中文.在线.播放 | 日韩一区二区三区免费看| 欧美欧美欧美欧美首页| 欧美日韩一级片在线观看| 精品视频在线免费观看| 欧美日高清视频| 精品美女一区二区三区| 久久久精品综合| 成人欧美一区二区三区视频网页| 亚洲欧美一区二区三区久本道91| 亚洲天堂成人在线观看| 亚洲影院免费观看| 免费成人在线视频观看| 国产精品亚洲专一区二区三区| 成人免费av资源| 欧美三级韩国三级日本三斤| 欧美久久一区二区| www国产精品av| 国产精品乱码一区二三区小蝌蚪| 日韩一区在线免费观看| 亚洲国产综合91精品麻豆| 男女激情视频一区| 国产一区二区0| 欧美最猛性xxxxx直播| 欧美大肚乱孕交hd孕妇| 国产精品素人一区二区| 一区二区三区视频在线观看| 日韩中文欧美在线| 国产黄色91视频| 欧美日韩国产乱码电影| 久久精品综合网| 亚洲成年人网站在线观看| 韩国在线一区二区| 91精品福利在线| 亚洲精品一区在线观看| 亚洲精品国产高清久久伦理二区| 免费看欧美美女黄的网站| 91亚洲永久精品| 精品88久久久久88久久久| 亚洲美女电影在线| 国产一区二区电影| 欧美日韩视频不卡| 国产精品无码永久免费888| 香蕉成人伊视频在线观看| 成人午夜在线播放| 日韩亚洲欧美在线观看| 亚洲激情第一区| 国产91精品久久久久久久网曝门 | 亚洲国产精品久久一线不卡| 国产揄拍国内精品对白| 欧美日韩专区在线| 中文字幕在线一区| 激情综合色播五月| 欧美日韩综合色| 亚洲女人的天堂| 不卡电影免费在线播放一区| 精品福利二区三区| 日本不卡在线视频| 色94色欧美sute亚洲线路一ni| 久久综合色播五月| 奇米四色…亚洲| 欧美最猛黑人xxxxx猛交| 国产精品天美传媒| 国产91色综合久久免费分享| 欧美成人女星排行榜| 日韩电影在线观看电影| 色狠狠一区二区三区香蕉| 国产精品水嫩水嫩| 粉嫩av亚洲一区二区图片| 精品国产乱子伦一区| 久久精品久久久精品美女| 91精品婷婷国产综合久久竹菊| 亚洲一区二区三区中文字幕| 色综合天天综合狠狠| 中文字幕在线不卡一区二区三区| 国产成人av一区二区三区在线 | 国产乱码精品一区二区三| 26uuu国产电影一区二区|