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

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

?? mmap.c

?? ldd3的源碼
?? C
字號:
/*  -*- 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;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区日韩欧美| 久久精品视频在线免费观看| 欧美色老头old∨ideo| 欧美视频日韩视频在线观看| 欧洲精品视频在线观看| 欧美一区二区免费| 亚洲精品一线二线三线无人区| 久久九九影视网| 亚洲视频精选在线| 成人爽a毛片一区二区免费| 国产乱码精品一品二品| zzijzzij亚洲日本少妇熟睡| 欧美日韩在线综合| 欧美精品一区二区三区很污很色的| 中文成人综合网| 日本sm残虐另类| 99在线精品免费| 欧美精品一区二区久久久| 国产精品视频第一区| 日韩精品电影一区亚洲| 国产1区2区3区精品美女| 欧美日韩你懂的| 中文字幕一区三区| 精彩视频一区二区| 欧美色涩在线第一页| 亚洲欧洲另类国产综合| 极品少妇xxxx精品少妇偷拍| 在线免费观看日本一区| 国产午夜精品理论片a级大结局| 五月激情六月综合| 一本一本久久a久久精品综合麻豆| 久久综合九色综合97_久久久 | 极品少妇一区二区| 欧美日韩1区2区| 亚洲精品国产高清久久伦理二区| 国内外成人在线| 日韩精品一区二区三区在线| 午夜精品久久久久久久久久| 色噜噜狠狠成人中文综合| 欧美国产精品v| 国产麻豆精品95视频| 欧美一区二区在线观看| 丝袜美腿亚洲综合| 欧美日韩免费电影| 亚洲与欧洲av电影| 欧美在线免费视屏| 丝袜亚洲另类欧美综合| 欧美一区二区福利在线| 免费欧美高清视频| 欧美一级午夜免费电影| 麻豆久久久久久久| 久久免费电影网| a美女胸又www黄视频久久| 中文字幕一区二区三区精华液| www.久久精品| 美女视频黄a大片欧美| 欧美电影免费观看高清完整版在线观看 | 欧美一区2区视频在线观看| 日本不卡123| 国产欧美日韩在线| 一本色道亚洲精品aⅴ| 日韩成人精品在线观看| 久久久亚洲精华液精华液精华液| 成人国产在线观看| 亚洲一区在线视频观看| 久久久久高清精品| 欧美视频精品在线观看| 韩国av一区二区三区| 一区二区三区在线免费观看| 日韩午夜在线播放| av电影在线观看不卡| 日韩精品一二三| 国产精品美女久久久久久久久 | 日韩av在线播放中文字幕| 欧美激情一区二区在线| 欧美日本一区二区三区四区 | 夜夜嗨av一区二区三区网页| 欧美mv和日韩mv的网站| 91蜜桃网址入口| 国产精品一区二区无线| 日av在线不卡| 一区二区日韩av| 国产精品久久久久久户外露出| 制服丝袜激情欧洲亚洲| 91黄视频在线| 日本高清成人免费播放| 成人精品免费网站| 韩国毛片一区二区三区| 日本美女一区二区三区视频| 亚洲成人综合在线| 亚洲精品你懂的| 亚洲天堂成人网| 亚洲素人一区二区| 成人欧美一区二区三区白人 | 国产精品美女久久久久久| 久久久亚洲精品一区二区三区| 精品精品欲导航| 欧美成人video| 久久久久久久久免费| 久久天天做天天爱综合色| 亚洲精品视频免费看| 亚洲国产精品成人综合| 国产精品水嫩水嫩| 亚洲精品日日夜夜| 亚洲伦在线观看| 亚洲国产精品久久一线不卡| 日韩高清在线电影| 另类成人小视频在线| 国产福利91精品一区| 成人午夜激情视频| 一本色道久久综合狠狠躁的推荐 | 欧美午夜精品免费| 欧美精品少妇一区二区三区| 欧美一级日韩免费不卡| 欧美xxxxx牲另类人与| 国产欧美日韩亚州综合| 一区二区三区免费在线观看| 日本中文一区二区三区| 国产一区在线不卡| 色欧美日韩亚洲| 精品三级在线看| 亚洲另类中文字| va亚洲va日韩不卡在线观看| 精品视频123区在线观看| 欧美福利电影网| 色婷婷狠狠综合| 欧美巨大另类极品videosbest| 欧美三级视频在线观看| 欧美视频中文字幕| 久久久噜噜噜久久中文字幕色伊伊 | 精品视频在线免费| 欧美天天综合网| 国产精品素人一区二区| 午夜精品视频在线观看| 国产高清久久久久| 91精品综合久久久久久| 中文字幕一区三区| 国产成人午夜精品5599| 欧美一区二区视频在线观看| 国产精品久久久久久久久免费樱桃| 亚洲综合图片区| 国产成人精品综合在线观看| 欧美精品自拍偷拍动漫精品| 日本一区二区免费在线观看视频| 国产欧美在线观看一区| 水蜜桃久久夜色精品一区的特点| 国产麻豆精品theporn| 欧美大片一区二区三区| 亚洲国产精品尤物yw在线观看| 99精品一区二区三区| 欧美国产日韩一二三区| 国产成人免费视频网站| 久久久久久久综合| 国产精品99久久久久久久vr | 看片网站欧美日韩| 制服丝袜一区二区三区| 免费观看成人av| 久久这里只有精品首页| 国产成人鲁色资源国产91色综| 久久蜜桃一区二区| 91最新地址在线播放| 一区二区三区在线视频观看| 欧美巨大另类极品videosbest | 亚洲成人www| 欧美性大战久久| 激情综合亚洲精品| 国产精品丝袜久久久久久app| 色欧美日韩亚洲| 男人的天堂亚洲一区| 国产欧美日韩另类视频免费观看| av中文一区二区三区| 日韩av中文字幕一区二区| 欧美激情一区二区三区| 在线免费观看日韩欧美| 韩国一区二区在线观看| 免费观看久久久4p| 久久九九久精品国产免费直播| 99re8在线精品视频免费播放| 午夜欧美在线一二页| 久久精品免视看| 欧美二区三区91| 福利一区在线观看| 日韩—二三区免费观看av| 国产精品久久久久婷婷| 欧美刺激午夜性久久久久久久| 成人高清视频在线| 伦理电影国产精品| 亚洲精品v日韩精品| 久久久99精品久久| 欧美一区二区三区四区五区| 色婷婷综合视频在线观看| 国产成人午夜精品影院观看视频 | 久久久久久9999| 欧美一二三区精品| 欧美日韩一区小说| 色伊人久久综合中文字幕| 高清在线观看日韩| 激情丁香综合五月| 久久国产生活片100| 日韩精品电影在线观看|