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

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

?? kbd_tty.c

?? 該源碼是miniGUI的全部代碼
?? C
字號:
/*** $Id: kbd_tty.c,v 1.15 2003/09/04 03:38:26 weiym Exp $**** kbd_tty.c: /dev/tty TTY Keyboard Driver**** Copyright (C) 2003 Feynman Software.** Copyright (C) 2000 ~ 2002 Song Lixin and Wei Yongming.*//*** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.**** This program is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the** GNU General Public License for more details.**** You should have received a copy of the GNU General Public License** along with this program; if not, write to the Free Software** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//*** TODO:*/#include <sys/types.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#include <termios.h>#include <fcntl.h>#include <sys/ioctl.h>#include <sys/stat.h>#include <linux/kd.h>#include "common.h"#include "misc.h"#include "ial.h"#include "gal.h"#include "native.h"static const char* tty_dev;static int  TTY_Open(void);static void TTY_Close(void);static void TTY_GetModifierInfo(int *modifiers);static int  TTY_Read(unsigned char *buf, int *modifiers);static void TTY_Suspend(void);static int  TTY_Resume(void);KBDDEVICE kbddev_tty = {	TTY_Open,	TTY_Close,	TTY_GetModifierInfo,	TTY_Read,	TTY_Suspend,	TTY_Resume};static int kbd_fd;		/* file descriptor for keyboard */static	struct termios	startup_termios;		/* original terminal modes */static	int	startup_kbdmode;struct termios	work_termios;	/* startup_termios terminal modes *//* * Open the keyboard. * This is real simple, we just use a special file handle * that allows blocking I/O, and put the terminal into * character mode. */static int TTY_Open (void){    if (geteuid() == 0) /* is a super user, try to open the active console */        tty_dev = "/dev/tty0";    else    /* not a super user, so try to open the control terminal */        tty_dev = "/dev/tty";	kbd_fd = open(tty_dev, O_RDONLY | O_NOCTTY);	if (kbd_fd < 0)		return -1;	if (tcgetattr(kbd_fd, &startup_termios) < 0)		goto err;	work_termios = startup_termios;	work_termios.c_lflag &= ~(ICANON | ECHO  | ISIG);	work_termios.c_iflag &= ~(ISTRIP | IGNCR | ICRNL | INLCR | IXOFF | IXON);	work_termios.c_iflag |= IGNBRK;	work_termios.c_cc[VMIN] = 0;	work_termios.c_cc[VTIME] = 0;	if(tcsetattr(kbd_fd, TCSAFLUSH, &work_termios) < 0)		goto err;	/* Put the keyboard into MEDIUMRAW mode.  Despite the name, this	 * is really "mostly raw", with the kernel just folding long	 * scancode sequences (e.g. E0 XX) onto single keycodes.	 */	ioctl (kbd_fd, KDGKBMODE, &startup_kbdmode);	if (ioctl(kbd_fd, KDSKBMODE, K_MEDIUMRAW) < 0) 		goto err;	return kbd_fd;err:	close(kbd_fd);	kbd_fd = 0;	return -1;}/* * Close the keyboard. * This resets the terminal modes. */static void TTY_Close(void){	ioctl(kbd_fd, KDSKBMODE, startup_kbdmode);	tcsetattr(kbd_fd, TCSANOW, &startup_termios);	close(kbd_fd);	kbd_fd = -1;}/* * Return the possible modifiers for the keyboard. */static  void TTY_GetModifierInfo(int *modifiers){	*modifiers = 0;			/* no modifiers available */}/* * This reads one keystroke from the keyboard, and the current state of * the mode keys (ALT, SHIFT, CTRL).  Returns -1 on error, 0 if no data * is ready, and 1 if data was read.  This is a non-blocking call. */static int TTY_Read(unsigned char *buf, int *modifiers){	int	cc;			/* characters read */	unsigned char buf1;	*modifiers = 0;			/* no modifiers yet */	cc = read(kbd_fd, &buf1, 1);	*buf = buf1;	if (cc > 0) {		return 1;	}	if ((cc < 0) && (errno != EINTR) && (errno != EAGAIN))		return -1;	return 0;}/* activate_keyboard: *  Put keyboard into the mode we want. */static void TTY_Suspend(void){	TTY_Close();}/* deactivate_keyboard: *  Restore the original keyboard settings. */static int TTY_Resume(void){	kbd_fd = open (tty_dev, O_NONBLOCK);	if (kbd_fd < 0)		return -1;	if(tcsetattr(kbd_fd, TCSANOW, &work_termios) < 0)		goto err;	/* Put the keyboard into MEDIUMRAW mode.  Despite the name, this	 * is really "mostly raw", with the kernel just folding long	 * scancode sequences (e.g. E0 XX) onto single keycodes.	 */	if (ioctl(kbd_fd, KDSKBMODE, K_MEDIUMRAW) < 0) 		goto err;	return kbd_fd;err:	close(kbd_fd);	kbd_fd = 0;	return -1;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美中文在线| 中文字幕第一区第二区| 国产不卡视频在线观看| 亚洲人xxxx| 久久精品一区二区三区不卡| 91高清视频免费看| 国产精品123区| 亚洲成人av在线电影| 国产精品妹子av| 欧美精品一区二区三区在线| 欧美日韩一区 二区 三区 久久精品| 国产一区久久久| 天堂成人国产精品一区| 日韩理论片网站| 久久久久高清精品| 日韩一区二区三区免费看 | 欧美精品在线观看播放| 不卡一区二区三区四区| 国产在线精品免费av| 亚洲一区二区三区四区五区黄| 国产欧美精品一区二区三区四区| 欧美精品久久99久久在免费线 | 日韩av在线发布| 亚洲精品精品亚洲| 国产精品成人免费在线| 国产亚洲精久久久久久| 日韩欧美在线123| 欧美日韩精品免费| 欧美亚洲国产一区在线观看网站| www.66久久| 懂色av中文字幕一区二区三区| 精品亚洲porn| 精品一区二区在线视频| 日本不卡视频一二三区| 日本视频一区二区| 日韩av不卡一区二区| 亚洲成人av一区二区三区| 亚洲一区二区三区四区的| 亚洲精品一二三| 亚洲精品中文在线观看| 一区二区中文字幕在线| 国产精品高潮久久久久无| 亚洲国产成人自拍| 国产精品国产精品国产专区不蜜| 国产日韩精品一区二区浪潮av| 久久色在线视频| 久久精品一二三| 国产欧美精品一区| 亚洲天堂精品在线观看| 亚洲美女区一区| 一区二区三区欧美久久| 亚洲成人免费影院| 青青草成人在线观看| 久久99久久久久久久久久久| 韩国精品免费视频| 国产激情偷乱视频一区二区三区| 成人夜色视频网站在线观看| 成人深夜在线观看| 日本乱码高清不卡字幕| 欧美日韩免费观看一区二区三区| 欧美日韩在线三级| 欧美一级欧美三级| 久久久噜噜噜久久人人看| 中文字幕一区二区三| 一区二区三区中文在线观看| 亚洲一区二区三区三| 免费在线欧美视频| 国产激情91久久精品导航| 91丨九色丨黑人外教| 欧美日韩亚洲综合一区 | 欧美日韩电影在线| 日韩免费电影一区| 国产精品女同一区二区三区| 一区二区三区欧美| 韩国欧美国产一区| 成人精品免费视频| 欧美猛男超大videosgay| 久久综合久久综合久久| 自拍偷拍欧美激情| 青草av.久久免费一区| k8久久久一区二区三区| 欧美日韩国产免费| 久久综合一区二区| 亚洲精品乱码久久久久| 狠狠久久亚洲欧美| 色系网站成人免费| 亚洲精品一区二区三区影院| 亚洲人精品午夜| 老司机免费视频一区二区三区| k8久久久一区二区三区| 日韩精品一区二区三区视频在线观看| 国产精品麻豆视频| 美女精品一区二区| 91电影在线观看| 精品91自产拍在线观看一区| 一区二区三区在线影院| 国产一区二区三区精品欧美日韩一区二区三区 | 蜜桃一区二区三区在线观看| 成人ar影院免费观看视频| 欧美一二区视频| 亚洲精品视频在线观看网站| 国内精品久久久久影院色| 欧美日韩一区高清| 一区二区中文字幕在线| 激情综合色综合久久综合| 欧美三区在线观看| 亚洲色图视频网| 国产精品中文字幕一区二区三区| 欧美视频三区在线播放| 国产精品高清亚洲| 国产不卡一区视频| 精品久久久久久最新网址| 亚洲大型综合色站| 91浏览器入口在线观看| 国产欧美日韩一区二区三区在线观看| 三级欧美在线一区| 在线看国产日韩| 亚洲欧美一区二区视频| 成人网男人的天堂| 欧美va亚洲va在线观看蝴蝶网| 亚洲综合一区二区三区| 一本色道亚洲精品aⅴ| 亚洲欧洲一区二区三区| 成人在线综合网站| 国产日产欧美一区二区视频| 麻豆视频观看网址久久| 日韩欧美一级二级| 日韩电影在线观看网站| 欧美日韩国产在线观看| 国产成人亚洲综合a∨婷婷图片| 欧美精品123区| 午夜视频久久久久久| 在线观看91视频| 亚洲在线观看免费视频| 91极品视觉盛宴| 一区二区三区中文免费| 在线观看欧美黄色| 亚洲视频免费在线观看| 91在线码无精品| 亚洲精品自拍动漫在线| 色综合天天狠狠| 亚洲一区二区综合| 欧美蜜桃一区二区三区| 日本不卡免费在线视频| 欧美mv和日韩mv的网站| 精品一区二区三区免费毛片爱| 欧美mv日韩mv| 国产高清一区日本| 国产精品久久久久天堂| 色婷婷久久综合| 亚洲国产sm捆绑调教视频| 欧美精品tushy高清| 精品中文字幕一区二区小辣椒| 久久亚洲精品国产精品紫薇| 黄网站免费久久| 亚洲国产精品传媒在线观看| 99re这里只有精品6| 一区二区三区在线观看动漫| 欧美日韩国产综合久久| 久久99最新地址| 国产香蕉久久精品综合网| 99国产精品久久久| 艳妇臀荡乳欲伦亚洲一区| 在线成人小视频| 狠狠v欧美v日韩v亚洲ⅴ| 中文字幕一区二区不卡| 欧美喷水一区二区| 国产综合久久久久影院| 亚洲欧美激情小说另类| 欧美猛男超大videosgay| 国产一区二区三区电影在线观看| 国产精品二区一区二区aⅴ污介绍| 91毛片在线观看| 日本在线观看不卡视频| 日本一区二区三区电影| 在线视频综合导航| 久久国产综合精品| 成人免费在线观看入口| 欧美精品久久久久久久多人混战 | 99视频在线精品| 午夜电影一区二区三区| 久久中文字幕电影| 91美女在线看| 久久99最新地址| 夜夜爽夜夜爽精品视频| 2020日本不卡一区二区视频| 色八戒一区二区三区| 精品无码三级在线观看视频| 亚洲人成在线播放网站岛国| 欧美v亚洲v综合ⅴ国产v| 91看片淫黄大片一级| 极品少妇xxxx偷拍精品少妇| 亚洲最新视频在线观看| 国产三级欧美三级日产三级99 | 色婷婷综合久久| 韩国精品免费视频| 香蕉成人伊视频在线观看| 国产精品高潮呻吟久久| 26uuu精品一区二区| 欧美曰成人黄网|