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

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

?? char_dev.c

?? LINUX 0.11版內核代碼。 并有代碼分析說明。
?? C
字號:
/* passed *  linux/fs/char_dev.c * *  (C) 1991  Linus Torvalds */#include <set_seg.h>

// 錯誤號頭文件。包含系統中各種出錯號。(Linus 從minix 中引進的)。#include <errno.h>
// 類型頭文件。定義了基本的系統數據類型。#include <sys/types.h>
// 調度程序頭文件,定義了任務結構task_struct、初始任務0 的數據,
// 還有一些有關描述符參數設置和獲取的嵌入式匯編函數宏語句。#include <linux/sched.h>
// 內核頭文件。含有一些內核常用函數的原形定義。#include <linux/kernel.h>
// 段操作頭文件。定義了有關段寄存器操作的嵌入式匯編函數。#include <asm/segment.h>
// io 頭文件。定義硬件端口輸入/輸出宏匯編語句。#include <asm/io.h>extern int tty_read(unsigned minor,char * buf,int count);// 終端讀。extern int tty_write(unsigned minor,char * buf,int count);// 終端寫。
// 定義字符設備讀寫函數指針類型。typedef (*crw_ptr)(int rw,unsigned minor,char * buf,int count,off_t * pos);
//// 串口終端讀寫操作函數。
// 參數:rw - 讀寫命令;minor - 終端子設備號;buf - 緩沖區;cout - 讀寫字節數;
//       pos - 讀寫操作當前指針,對于終端操作,該指針無用。
// 返回:實際讀寫的字節數。static int rw_ttyx(int rw,unsigned minor,char * buf,int count,off_t * pos){	return ((rw==READ)?tty_read(minor,buf,count):		tty_write(minor,buf,count));}
//// 終端讀寫操作函數。
// 同上rw_ttyx(),只是增加了對進程是否有控制終端的檢測。static int rw_tty(int rw,unsigned minor,char * buf,int count, off_t * pos){
	// 若進程沒有對應的控制終端,則返回出錯號。	if (current->tty<0)		return -EPERM;
	// 否則調用終端讀寫函數rw_ttyx(),并返回實際讀寫字節數。	return rw_ttyx(rw,current->tty,buf,count,pos);}
//// 內存數據讀寫。未實現。static int rw_ram(int rw,char * buf, int count, off_t *pos){	return -EIO;}
//// 內存數據讀寫操作函數。未實現。static int rw_mem(int rw,char * buf, int count, off_t * pos){	return -EIO;}
//// 內核數據區讀寫函數。未實現。static int rw_kmem(int rw,char * buf, int count, off_t * pos){	return -EIO;}
// 端口讀寫操作函數。
// 參數:rw - 讀寫命令;buf - 緩沖區;cout - 讀寫字節數;pos - 端口地址。
// 返回:實際讀寫的字節數。static int rw_port(int rw,char * buf, int count, off_t * pos){	int i=*pos;
// 對于所要求讀寫的字節數,并且端口地址小于64k 時,循環執行單個字節的讀寫操作。	while (count-->0 && i<65536) {
// 若是讀命令,則從端口i 中讀取一字節內容并放到用戶緩沖區中。		if (rw==READ)			put_fs_byte(inb(i),buf++);
// 若是寫命令,則從用戶數據緩沖區中取一字節輸出到端口i。		else			outb(get_fs_byte(buf++),i);
// 前移一個端口。[??]		i++;	}
// 計算讀/寫的字節數,并相應調整讀寫指針。	i -= *pos;	*pos += i;
// 返回讀/寫的字節數。	return i;}
//// 內存讀寫操作函數。static int rw_memory(int rw, unsigned minor, char * buf, int count, off_t * pos){
// 根據內存設備子設備號,分別調用不同的內存讀寫函數。	switch(minor) {		case 0:			return rw_ram(rw,buf,count,pos);		case 1:			return rw_mem(rw,buf,count,pos);		case 2:			return rw_kmem(rw,buf,count,pos);		case 3:			return (rw==READ)?0:count;	/* rw_null */		case 4:			return rw_port(rw,buf,count,pos);		default:			return -EIO;	}}
// 定義系統中設備種數。#define NRDEVS ((sizeof (crw_table))/(sizeof (crw_ptr)))
// 字符設備讀寫函數指針表。static crw_ptr crw_table[]={	NULL,		/* 無設備(空設備) */	rw_memory,	/* /dev/mem 等 */	NULL,		/* /dev/fd 軟驅 */	NULL,		/* /dev/hd 硬盤 */	rw_ttyx,	/* /dev/ttyx 串口終端 */	rw_tty,		/* /dev/tty 終端 */	NULL,		/* /dev/lp 打印機 */	NULL};		/* 未命名管道 */
//// 字符設備讀寫操作函數。
// 參數:rw - 讀寫命令;dev - 設備號;buf - 緩沖區;count - 讀寫字節數;pos -讀寫指針。
// 返回:實際讀/寫字節數。int rw_char(int rw,int dev, char * buf, int count, off_t * pos){	crw_ptr call_addr;
// 如果設備號超出系統設備數,則返回出錯碼。	if (MAJOR(dev)>=NRDEVS)		return -ENODEV;
// 若該設備沒有對應的讀/寫函數,則返回出錯碼。	if (!(call_addr=crw_table[MAJOR(dev)]))		return -ENODEV;
// 調用對應設備的讀寫操作函數,并返回實際讀/寫的字節數。	return call_addr(rw,MINOR(dev),buf,count,pos);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美中文一区二区三区| 欧美在线不卡一区| 欧美大片免费久久精品三p| 99久久久久免费精品国产| 国产高清不卡一区| 国产成人精品影视| 国产成人福利片| 懂色av一区二区三区蜜臀| 国产精品一区二区久久不卡| 国产一区视频导航| 成人综合婷婷国产精品久久蜜臀| 成人深夜视频在线观看| 不卡在线观看av| 色视频欧美一区二区三区| 在线观看日韩电影| 欧美色大人视频| 欧美视频在线观看一区二区| 91精品欧美综合在线观看最新| 日韩一区二区在线看| 精品91自产拍在线观看一区| 久久精品人人做| 国产精品对白交换视频| 亚洲一区二区欧美| 六月丁香婷婷色狠狠久久| 成人午夜短视频| 日本精品视频一区二区| 欧美一级片免费看| 国产精品无人区| 一区二区三区日韩精品| 日本不卡不码高清免费观看| 国产成人啪免费观看软件| 日本韩国一区二区| 精品国产麻豆免费人成网站| 中文无字幕一区二区三区 | 三级精品在线观看| 精品在线一区二区三区| 94-欧美-setu| 日韩视频一区二区| 亚洲精品国产品国语在线app| 日本女人一区二区三区| 国产成人精品网址| 欧美调教femdomvk| 久久九九全国免费| 亚洲sss视频在线视频| 国产·精品毛片| 欧美一区二区三区在线观看视频| 中文字幕精品—区二区四季| 亚洲一二三四在线观看| 国产成人免费视| 91精品国产综合久久福利软件| 国产精品欧美精品| 久草热8精品视频在线观看| 欧美亚洲动漫精品| 国产精品免费视频网站| 精品一区二区三区在线观看 | 91精品国产综合久久香蕉麻豆| 国产精品午夜久久| 激情六月婷婷综合| 欧美日韩激情一区| 一区二区三区四区不卡视频| 国产精品一区二区视频| 日韩丝袜美女视频| 丝袜脚交一区二区| 欧美三级电影精品| 亚洲天堂精品在线观看| 粉嫩一区二区三区性色av| 精品国产乱码久久久久久免费| 亚洲h在线观看| 欧美私模裸体表演在线观看| 亚洲天堂a在线| 99国产精品久| 亚洲视频资源在线| 99re视频这里只有精品| 国产精品素人一区二区| 国产成人av网站| 国产无人区一区二区三区| 国产制服丝袜一区| 久久亚洲综合色| 国产精品伊人色| 欧美国产在线观看| 懂色av中文字幕一区二区三区| 国产亚洲午夜高清国产拍精品| 国产一区在线精品| 国产人成一区二区三区影院| 国产成人免费av在线| 国产精品美女久久久久aⅴ| 不卡视频在线看| 亚洲私人黄色宅男| 欧美三级日韩在线| 日韩成人精品在线| 久久综合色一综合色88| 国产乱子伦视频一区二区三区 | 成人黄色免费短视频| 国产精品二区一区二区aⅴ污介绍| 99精品国产99久久久久久白柏 | 欧美一级在线视频| 精品一区二区免费看| 中文字幕电影一区| 91黄色在线观看| 日韩在线一区二区三区| 欧美精品一区二区三区视频| 岛国av在线一区| 亚洲6080在线| 国产色产综合产在线视频| 99久久久国产精品| 舔着乳尖日韩一区| 国产精品视频观看| 欧美日韩五月天| 国产精品一区二区在线看| 亚洲私人黄色宅男| 日韩美一区二区三区| 99re这里只有精品首页| 亚洲国产精品一区二区www | 欧美日韩亚洲综合一区二区三区| 日本伊人精品一区二区三区观看方式| 久久久www免费人成精品| 91在线观看下载| 蜜桃久久av一区| 一区二区三区欧美激情| 久久婷婷成人综合色| 欧美亚洲国产一区二区三区| 精品一二三四区| 亚洲高清一区二区三区| 国产精品久久久久四虎| 国产裸体歌舞团一区二区| 欧美精品一区二区三区高清aⅴ | 国产精品视频线看| 91精品国产全国免费观看| 99精品国产99久久久久久白柏| 激情综合网最新| 日韩精品久久久久久| 亚洲久草在线视频| 中文字幕免费观看一区| 欧美大片免费久久精品三p| 91丝袜美女网| www.日韩大片| 国产成人精品影视| 国内精品视频666| 日韩不卡在线观看日韩不卡视频| 亚洲精品久久久蜜桃| 中文字幕乱码日本亚洲一区二区| 日韩久久精品一区| 91精品黄色片免费大全| 欧美午夜在线一二页| 色系网站成人免费| 99视频精品全部免费在线| 丰满白嫩尤物一区二区| 国产不卡在线视频| 国产麻豆精品久久一二三| 久久99久久久久久久久久久| 爽好多水快深点欧美视频| 丝袜诱惑亚洲看片| 亚洲bdsm女犯bdsm网站| 亚洲成av人片在线观看无码| 亚洲国产精品久久人人爱蜜臀| 一区二区三区在线观看视频| 夜夜嗨av一区二区三区网页| 亚洲精品国产一区二区精华液| 亚洲欧洲www| 亚洲欧美一区二区久久| 亚洲另类中文字| 亚洲成人免费在线| 日本 国产 欧美色综合| 久久国产精品99久久久久久老狼| 另类综合日韩欧美亚洲| 极品少妇xxxx精品少妇偷拍 | 亚洲欧美一区二区久久| 中文字幕色av一区二区三区| 成人免费在线视频观看| 亚洲高清不卡在线| 麻豆91在线播放| 成人免费观看av| 一本在线高清不卡dvd| 欧美久久久久久久久久| 精品粉嫩aⅴ一区二区三区四区| 久久精品夜夜夜夜久久| 亚洲欧洲日韩在线| 五月天久久比比资源色| 国产一区二区久久| 91麻豆国产精品久久| 欧美一二三区在线| 中文字幕一区二区三区四区不卡| 亚洲国产欧美另类丝袜| 国产一区亚洲一区| 在线影视一区二区三区| 欧美大片一区二区| 亚洲欧美另类综合偷拍| 久久av中文字幕片| 日本高清不卡在线观看| 日韩欧美国产三级电影视频| 国产精品久久久久久久久图文区| 亚洲综合免费观看高清完整版在线| 日韩和欧美一区二区三区| 国产成人午夜精品影院观看视频| 欧美中文字幕一区| 久久九九影视网| 日韩黄色一级片| 91国偷自产一区二区开放时间 | 捆绑紧缚一区二区三区视频 | 亚洲成人激情av|