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

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

?? tty_ioctl.c

?? linux0.11內(nèi)核源代碼,學(xué)習(xí)內(nèi)核入門必看
?? C
字號:
/* *  linux/kernel/chr_drv/tty_ioctl.c * *  (C) 1991  Linus Torvalds */#include <errno.h>#include <termios.h>#include <linux/sched.h>#include <linux/kernel.h>#include <linux/tty.h>#include <asm/io.h>#include <asm/segment.h>#include <asm/system.h>static unsigned short quotient[] = {	0, 2304, 1536, 1047, 857,	768, 576, 384, 192, 96,	64, 48, 24, 12, 6, 3};static void change_speed(struct tty_struct * tty){	unsigned short port,quot;	if (!(port = tty->read_q.data))		return;	quot = quotient[tty->termios.c_cflag & CBAUD];	cli();	outb_p(0x80,port+3);		/* set DLAB */	outb_p(quot & 0xff,port);	/* LS of divisor */	outb_p(quot >> 8,port+1);	/* MS of divisor */	outb(0x03,port+3);		/* reset DLAB */	sti();}static void flush(struct tty_queue * queue){	cli();	queue->head = queue->tail;	sti();}static void wait_until_sent(struct tty_struct * tty){	/* do nothing - not implemented */}static void send_break(struct tty_struct * tty){	/* do nothing - not implemented */}static int get_termios(struct tty_struct * tty, struct termios * termios){	int i;	verify_area(termios, sizeof (*termios));	for (i=0 ; i< (sizeof (*termios)) ; i++)		put_fs_byte( ((char *)&tty->termios)[i] , i+(char *)termios );	return 0;}static int set_termios(struct tty_struct * tty, struct termios * termios){	int i;	for (i=0 ; i< (sizeof (*termios)) ; i++)		((char *)&tty->termios)[i]=get_fs_byte(i+(char *)termios);	change_speed(tty);	return 0;}static int get_termio(struct tty_struct * tty, struct termio * termio){	int i;	struct termio tmp_termio;	verify_area(termio, sizeof (*termio));	tmp_termio.c_iflag = tty->termios.c_iflag;	tmp_termio.c_oflag = tty->termios.c_oflag;	tmp_termio.c_cflag = tty->termios.c_cflag;	tmp_termio.c_lflag = tty->termios.c_lflag;	tmp_termio.c_line = tty->termios.c_line;	for(i=0 ; i < NCC ; i++)		tmp_termio.c_cc[i] = tty->termios.c_cc[i];	for (i=0 ; i< (sizeof (*termio)) ; i++)		put_fs_byte( ((char *)&tmp_termio)[i] , i+(char *)termio );	return 0;}/* * This only works as the 386 is low-byt-first */static int set_termio(struct tty_struct * tty, struct termio * termio){	int i;	struct termio tmp_termio;	for (i=0 ; i< (sizeof (*termio)) ; i++)		((char *)&tmp_termio)[i]=get_fs_byte(i+(char *)termio);	*(unsigned short *)&tty->termios.c_iflag = tmp_termio.c_iflag;	*(unsigned short *)&tty->termios.c_oflag = tmp_termio.c_oflag;	*(unsigned short *)&tty->termios.c_cflag = tmp_termio.c_cflag;	*(unsigned short *)&tty->termios.c_lflag = tmp_termio.c_lflag;	tty->termios.c_line = tmp_termio.c_line;	for(i=0 ; i < NCC ; i++)		tty->termios.c_cc[i] = tmp_termio.c_cc[i];	change_speed(tty);	return 0;}int tty_ioctl(int dev, int cmd, int arg){	struct tty_struct * tty;	if (MAJOR(dev) == 5) {		dev=current->tty;		if (dev<0)			panic("tty_ioctl: dev<0");	} else		dev=MINOR(dev);	tty = dev + tty_table;	switch (cmd) {		case TCGETS:			return get_termios(tty,(struct termios *) arg);		case TCSETSF:			flush(&tty->read_q); /* fallthrough */		case TCSETSW:			wait_until_sent(tty); /* fallthrough */		case TCSETS:			return set_termios(tty,(struct termios *) arg);		case TCGETA:			return get_termio(tty,(struct termio *) arg);		case TCSETAF:			flush(&tty->read_q); /* fallthrough */		case TCSETAW:			wait_until_sent(tty); /* fallthrough */		case TCSETA:			return set_termio(tty,(struct termio *) arg);		case TCSBRK:			if (!arg) {				wait_until_sent(tty);				send_break(tty);			}			return 0;		case TCXONC:			return -EINVAL; /* not implemented */		case TCFLSH:			if (arg==0)				flush(&tty->read_q);			else if (arg==1)				flush(&tty->write_q);			else if (arg==2) {				flush(&tty->read_q);				flush(&tty->write_q);			} else				return -EINVAL;			return 0;		case TIOCEXCL:			return -EINVAL; /* not implemented */		case TIOCNXCL:			return -EINVAL; /* not implemented */		case TIOCSCTTY:			return -EINVAL; /* set controlling term NI */		case TIOCGPGRP:			verify_area((void *) arg,4);			put_fs_long(tty->pgrp,(unsigned long *) arg);			return 0;		case TIOCSPGRP:			tty->pgrp=get_fs_long((unsigned long *) arg);			return 0;		case TIOCOUTQ:			verify_area((void *) arg,4);			put_fs_long(CHARS(tty->write_q),(unsigned long *) arg);			return 0;		case TIOCINQ:			verify_area((void *) arg,4);			put_fs_long(CHARS(tty->secondary),				(unsigned long *) arg);			return 0;		case TIOCSTI:			return -EINVAL; /* not implemented */		case TIOCGWINSZ:			return -EINVAL; /* not implemented */		case TIOCSWINSZ:			return -EINVAL; /* not implemented */		case TIOCMGET:			return -EINVAL; /* not implemented */		case TIOCMBIS:			return -EINVAL; /* not implemented */		case TIOCMBIC:			return -EINVAL; /* not implemented */		case TIOCMSET:			return -EINVAL; /* not implemented */		case TIOCGSOFTCAR:			return -EINVAL; /* not implemented */		case TIOCSSOFTCAR:			return -EINVAL; /* not implemented */		default:			return -EINVAL;	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月激情六月综合| 91在线看国产| 色综合欧美在线| 精品国产乱码久久久久久图片 | 天堂一区二区在线| 国产91丝袜在线18| 欧美一区二区三区成人| 亚洲乱码中文字幕综合| 国产成人在线视频免费播放| 日韩一区二区在线看| 亚洲伦理在线精品| 成人免费va视频| 国产亚洲欧美激情| 精品亚洲国产成人av制服丝袜 | 欧美电影免费观看完整版| 亚洲欧美日韩中文播放 | 青青草97国产精品免费观看 | 精品久久久久一区二区国产| 午夜免费久久看| 在线观看av不卡| 亚洲色图欧洲色图| 97se亚洲国产综合自在线不卡| www国产亚洲精品久久麻豆| 日本中文字幕一区二区有限公司| 日本道免费精品一区二区三区| 国产精品丝袜久久久久久app| 国产一区三区三区| 欧美精品一区二区三区一线天视频| 日本成人中文字幕在线视频| 欧美精品99久久久**| 亚洲成a人v欧美综合天堂| 欧美在线观看视频在线| 亚洲一区在线观看免费观看电影高清| 99re视频精品| 亚洲色图清纯唯美| 欧美在线一区二区| 日韩制服丝袜av| 日韩三级视频中文字幕| 国内精品久久久久影院薰衣草| 精品噜噜噜噜久久久久久久久试看| 日韩成人免费在线| 欧美精品一区二区在线观看| 国产成a人无v码亚洲福利| 国产精品美女久久久久aⅴ | 亚洲国产一区二区视频| 91精品在线一区二区| 麻豆视频一区二区| 国产精品视频一区二区三区不卡| av激情综合网| 亚洲国产精品久久人人爱蜜臀| 91精品国产91久久综合桃花 | 久久精品一区蜜桃臀影院| 91在线视频18| 夜夜嗨av一区二区三区| 91超碰这里只有精品国产| 精品综合久久久久久8888| 国产欧美一区二区三区网站| 91极品视觉盛宴| 青青草成人在线观看| 国产精品青草久久| 精品视频全国免费看| 国内精品不卡在线| 一区二区三区免费| 日韩欧美国产系列| 99国产精品久久久久久久久久| 偷窥国产亚洲免费视频| 国产丝袜美腿一区二区三区| 91麻豆福利精品推荐| 久久精品国产秦先生| 亚洲欧洲日本在线| 精品国产亚洲在线| 91福利精品视频| 国产ts人妖一区二区| 日韩国产欧美在线视频| 国产精品久久久久永久免费观看| 在线观看91精品国产麻豆| 国产成人在线视频免费播放| 午夜久久久久久久久| 中文字幕在线不卡一区| 欧美精品久久天天躁| 成人黄色综合网站| 老司机精品视频在线| 亚洲国产成人tv| 国产精品天天看| 久久久久久麻豆| 日韩一卡二卡三卡四卡| 欧美在线观看一区| 91捆绑美女网站| 粉嫩在线一区二区三区视频| 蜜臀精品一区二区三区在线观看 | 欧美偷拍一区二区| 成人av在线电影| 精品一区二区三区免费视频| 亚洲一区二区影院| 一区二区三区在线免费| 国产精品国产三级国产a| 精品国产免费一区二区三区香蕉| 欧美麻豆精品久久久久久| 91丨九色丨黑人外教| 国产高清精品网站| 国产黑丝在线一区二区三区| 精品中文字幕一区二区小辣椒| 视频一区中文字幕| 午夜av一区二区| 亚洲电影在线免费观看| 亚洲精品视频免费看| 亚洲三级在线看| 中文字幕制服丝袜成人av| 国产欧美视频一区二区| 国产日韩欧美一区二区三区乱码| 久久综合色婷婷| 国产亚洲一区二区在线观看| 精品88久久久久88久久久| 精品欧美一区二区久久| 精品国产免费久久| 欧美精品一区二区精品网| 亚洲精品一区二区三区精华液| 欧美成人a在线| 久久久综合九色合综国产精品| 久久这里只精品最新地址| 国产丝袜欧美中文另类| 国产欧美视频一区二区三区| 午夜视频在线观看一区二区三区 | 中文字幕一区二区在线观看| 国产精品欧美久久久久一区二区| 欧美国产日本视频| 亚洲欧美一区二区久久| 亚洲在线一区二区三区| 五月激情丁香一区二区三区| 青娱乐精品视频在线| 国内精品久久久久影院色| 成人免费看黄yyy456| 91在线观看地址| 欧美日韩国产精选| 精品国内二区三区| 国产精品麻豆一区二区| 一区二区三区高清不卡| 性做久久久久久| 国产精品影视天天线| 成人黄色片在线观看| 欧美亚洲国产怡红院影院| 91精品国产91热久久久做人人 | 国产经典欧美精品| 91免费视频观看| 日韩一区二区免费高清| 日本一区二区三区视频视频| 亚洲免费三区一区二区| 日韩精品欧美精品| 国产成人av一区二区三区在线观看| 93久久精品日日躁夜夜躁欧美| 欧美军同video69gay| 久久久久一区二区三区四区| 亚洲柠檬福利资源导航| 日本伊人精品一区二区三区观看方式| 极品少妇xxxx偷拍精品少妇| 一本一道综合狠狠老| 精品国产精品一区二区夜夜嗨| 国产精品久久久久久久久免费相片| 亚洲国产日韩a在线播放| 久久激五月天综合精品| 欧美最新大片在线看| 国产日韩欧美高清在线| 午夜视频在线观看一区| 成人a级免费电影| 欧美不卡在线视频| 亚洲午夜国产一区99re久久| 国产精品一品二品| 在线播放中文一区| 亚洲女人小视频在线观看| 国产一区二区精品久久91| 欧美午夜精品久久久久久超碰 | 国产欧美日本一区视频| 日韩不卡一区二区| 色欲综合视频天天天| 国产欧美日韩亚州综合| 久久99国产精品久久| 精品视频免费在线| 亚洲欧美成aⅴ人在线观看| 国产福利不卡视频| 精品国产免费一区二区三区四区| 亚洲成人777| 色婷婷av一区二区三区软件| 久久久不卡影院| 国产在线不卡一区| 91精品国产综合久久久久久久久久 | 91麻豆成人久久精品二区三区| 久久精品一区二区| 精品伊人久久久久7777人| 欧美日韩1234| 亚洲电影中文字幕在线观看| 色妹子一区二区| 亚洲欧美激情插 | 欧美日产在线观看| 亚洲一卡二卡三卡四卡五卡| 99国产精品久久久久| 中文字幕在线观看不卡| 99精品桃花视频在线观看| 国产精品卡一卡二卡三| 成人av综合一区| 亚洲美女区一区|