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

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

?? vtswitch.c

?? the embedded GUI for SamSung s3c2410 cpu based board.is microwindows0.90
?? C
字號:
#include <unistd.h>#include <fcntl.h>#include <signal.h>#include <sys/ioctl.h>#include <sys/time.h>#include <linux/vt.h>#include "device.h"#include "fb.h"/* * VT switch handling code for Linux *//* signal to use when VT swithing*/#ifndef SIGUNUSED#define SIGUNUSED	SIGUSR1		/* some systems lack SIGUNUSED*/#endif#define SIGVTSWITCH	SIGUNUSED	/* SIGUSR2 is used by pthreads...*/int	mwvterm;		/* the VT we were started on */volatile int mwdrawing;		/* nonzero when drawing is happening*/static int mwcvt, mwocvt;static int ttyfd = -1;		/* /dev/tty0*/static int visible = 1;		/* VT visible flag*/static struct vt_mode mode;	/* terminal mode*/static SUBDRIVER save;		/* saved subdriver when VT switched*/extern SCREENDEVICE	scrdev;	/* FIXME *//* entry points*/int 	MwInitVt(void);int  	MwCurrentVt(void);int  	MwCheckVtChange(void);void 	MwRedrawVt(int t);/* local routines*/static void  	draw_enable(void);static void 	draw_disable(void);static void	vt_switch(int sig);/* null subdriver for drawing when switched out*/static void 	null_drawpixel(PSD psd,MWCOORD x, MWCOORD y, MWPIXELVAL c) {}static MWPIXELVAL null_readpixel(PSD psd,MWCOORD x, MWCOORD y) { return 0;}static void	null_drawhorzline(PSD psd,MWCOORD x1,MWCOORD x2,MWCOORD y,			MWPIXELVAL c) {}static void	null_drawvertline(PSD psd,MWCOORD x,MWCOORD y1,MWCOORD y2,			MWPIXELVAL c) {}static void	null_fillrect(PSD psd,MWCOORD x1,MWCOORD y1,MWCOORD x2,			MWCOORD y2,MWPIXELVAL c) {}static void	null_blit(PSD dstpsd,MWCOORD destx,MWCOORD desty,MWCOORD w,			MWCOORD h,PSD srcpsd,MWCOORD srcx,MWCOORD srcy,			long op) {}static void 	null_drawarea(PSD psd, driver_gc_t *gc, int op) {}static void	null_stretchblit(PSD dstpsd, MWCOORD dstx, MWCOORD dsty,			MWCOORD dstw, MWCOORD dsth, PSD srcpsd, MWCOORD srcx,			MWCOORD srcy, MWCOORD srcw, MWCOORD srch, long op) {}static void	null_stretchblitex(PSD dstpsd, PSD srcpsd, MWCOORD dest_x_start,			MWCOORD dest_y_start, MWCOORD width, MWCOORD height,			int x_denominator, int y_denominator,			int src_x_fraction, int src_y_fraction,			int x_step_fraction, int y_step_fraction, long op) {}static SUBDRIVER nulldriver = {	NULL,	null_drawpixel,	null_readpixel,	null_drawhorzline,	null_drawvertline,	null_fillrect,	null_blit,	null_drawarea,	null_stretchblit,	null_stretchblitex};static voiddraw_enable(void){	if(visible)		return;	visible = 1;	/* restore screen drawing functions*/	set_subdriver(&scrdev, &save, FALSE);}      static voiddraw_disable(void){	if(!visible)		return;	visible = 0;	/* save screen drawing functions and reroute drawing*/	get_subdriver(&scrdev, &save);	/* set null driver*/	set_subdriver(&scrdev, &nulldriver, FALSE);}/* Timer handler used to do the VT switch at a time when not drawing */static voidvt_do_switch(void *arg){    static unsigned short r[16], g[16], b[16];    /*     * If a drawing function is in progress then we cannot mode     * switch right now because the drawing function would continue to     * scribble on the screen after the switch.  So disable further     * drawing and schedule an alarm to try again in .1 second.     */    if(mwdrawing) {    	draw_disable ();	GdAddTimer(100, vt_do_switch, NULL);    	return;    }          if(visible) {    	draw_disable ();	ioctl_getpalette(0, 16, r, g, b);	if(ioctl (ttyfd, VT_RELDISP, 1) == -1)	    EPRINTF("Error can't switch away from VT: %m\n");    } else {	ioctl_setpalette(0, 16, r, g, b);    	draw_enable ();      	if(ioctl (ttyfd, VT_RELDISP, VT_ACKACQ) == -1)		EPRINTF("Error can't acknowledge VT switch: %m\n");    }}/* Signal handler called when kernel switches to or from our tty*/static voidvt_switch(int sig){	signal(SIGVTSWITCH, vt_switch);	vt_do_switch(NULL);}/* * Init VT switch catching code * 	return 0 on success, -1 on error */intMwInitVt(void){	ttyfd = open("/dev/tty0", O_RDONLY);	if(ttyfd == -1)		return EPRINTF("Error can't open tty0: %m\n");		/* setup new tty mode*/	if(ioctl (ttyfd, VT_GETMODE, &mode) == -1)		return EPRINTF("Error can't get VT mode: %m\n");	mode.mode = VT_PROCESS;	mode.relsig = SIGVTSWITCH;	mode.acqsig = SIGVTSWITCH;	signal (SIGVTSWITCH, vt_switch);	if(ioctl (ttyfd, VT_SETMODE, &mode) == -1)		return EPRINTF("Error can't set VT mode: %m\n");	mwcvt = mwocvt = mwvterm = MwCurrentVt();	/*	 * Note: this hack is required to get Linux	 * to orient virtual 0,0 with physical 0,0	 * I have no idea why this kluge is required...	 */	MwRedrawVt(mwvterm);	return 0;}/* * This function is used to find out what the current active VT is. */intMwCurrentVt(void){	struct vt_stat stat;	ioctl(ttyfd, VT_GETSTATE, &stat);	return stat.v_active;}/* * Check if our VT has changed.  Return 1 if so. */intMwCheckVtChange(void){	mwcvt = MwCurrentVt();	if(mwcvt != mwocvt && mwcvt == mwvterm) {		mwocvt = mwcvt;		return 1;	}	mwocvt = mwcvt;	return 0;}/* * This function is used to cause a redraw of the text console. * FIXME: Switching to another console and * back works, but that's a really dirty hack */voidMwRedrawVt(int t){	if(MwCurrentVt() == mwvterm) {		ioctl(ttyfd, VT_ACTIVATE, t == 1 ? 2 : 1); /* Awful hack!!*/		ioctl(ttyfd, VT_ACTIVATE, t);	}}voidMwExitVt(void){	signal(SIGVTSWITCH, SIG_DFL);	mode.mode = VT_AUTO;	mode.relsig = 0;	mode.acqsig = 0;	ioctl(ttyfd, VT_SETMODE, &mode);	if(ttyfd != -1)		close(ttyfd);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米一区二区三区| 99久久免费国产| caoporn国产一区二区| 这里只有精品电影| 亚洲欧美国产77777| 韩国女主播一区二区三区| 欧美在线观看一区二区| 国产精品你懂的在线欣赏| 青青青爽久久午夜综合久久午夜| 成人一区在线看| 久久一日本道色综合| 视频一区免费在线观看| 色哟哟欧美精品| 国产精品福利一区二区三区| 久久成人免费网站| 欧美一区二区三区四区高清| 一区二区三区欧美| a在线播放不卡| 中文字幕精品一区| 国产成人在线免费| 久久久国产精品不卡| 美国欧美日韩国产在线播放| 欧美日韩国产综合久久| 亚洲色大成网站www久久九九| 成人午夜精品一区二区三区| 国产日韩欧美精品综合| 国模一区二区三区白浆| 精品国产一区久久| 看片的网站亚洲| 精品国产一区二区在线观看| 蜜臀av性久久久久蜜臀aⅴ| 欧美一级高清大全免费观看| 日韩和欧美一区二区| 欧美另类videos死尸| 天堂一区二区在线免费观看| 欧美视频日韩视频在线观看| 亚洲成人免费影院| 欧美福利视频一区| 狂野欧美性猛交blacked| 亚洲精品一区二区三区精华液| 韩国成人精品a∨在线观看| 精品福利一区二区三区| 国产精品亚洲第一| 国产精品丝袜一区| 一本高清dvd不卡在线观看 | 中文字幕一区二区三中文字幕| 国产成人午夜高潮毛片| 欧美激情自拍偷拍| 91视频国产资源| 午夜精品久久久久久久久久| 欧美精品三级在线观看| 理论电影国产精品| 亚洲国产精品v| 91久久精品网| 日本美女视频一区二区| 精品处破学生在线二十三| 国产aⅴ综合色| 亚洲欧美色图小说| 777奇米成人网| 国产成人在线看| 亚洲国产综合91精品麻豆| 91精品国产乱码| 成人综合婷婷国产精品久久免费| 一区二区三区四区视频精品免费| 欧美一区二区私人影院日本| 丁香五精品蜜臀久久久久99网站| 亚洲精品国产高清久久伦理二区| 日韩视频免费观看高清完整版 | 亚洲图片欧美视频| 日韩精品资源二区在线| 波多野结衣精品在线| 午夜欧美在线一二页| 国产三级久久久| 欧美日韩中文字幕一区| 国产精品一线二线三线| 亚洲成av人影院在线观看网| 久久久久88色偷偷免费| 91国内精品野花午夜精品| 久久精品国产一区二区| 亚洲一区二区欧美日韩| 国产午夜一区二区三区| 欧美伦理视频网站| 91伊人久久大香线蕉| 韩国欧美国产1区| 五月激情综合婷婷| 自拍偷拍国产精品| 久久美女艺术照精彩视频福利播放 | 555夜色666亚洲国产免| aaa欧美大片| 国产麻豆成人精品| 日韩国产在线一| 一区二区三区四区不卡在线 | 国内精品视频一区二区三区八戒| 亚洲激情第一区| 中文字幕乱码日本亚洲一区二区| 日韩你懂的在线观看| 在线观看91视频| 97se狠狠狠综合亚洲狠狠| 国产精品综合网| 狠狠色综合播放一区二区| 男女性色大片免费观看一区二区| 伊人一区二区三区| 亚洲欧美日韩电影| 国产精品毛片大码女人| 久久九九久久九九| 久久亚洲精品国产精品紫薇| 欧美一卡二卡三卡| 777午夜精品视频在线播放| 欧美丝袜自拍制服另类| 色狠狠色狠狠综合| 色偷偷88欧美精品久久久| 成人污污视频在线观看| 成人深夜福利app| 国产一区二区三区四区在线观看| 老司机精品视频导航| 久久福利资源站| 黄色小说综合网站| 国产专区欧美精品| 国产不卡一区视频| 成人午夜视频网站| 色综合视频一区二区三区高清| bt7086福利一区国产| 色婷婷亚洲综合| 欧美无人高清视频在线观看| 欧美日韩国产a| 欧美成人精品1314www| 久久久久国产精品厨房| 国产精品色眯眯| 一区二区三区在线观看视频| 亚洲国产精品久久不卡毛片 | **网站欧美大片在线观看| 亚洲欧洲av色图| 一级精品视频在线观看宜春院| 亚洲在线视频一区| 日日骚欧美日韩| 九九视频精品免费| 成人高清免费观看| 91电影在线观看| 日韩欧美www| 国产精品色一区二区三区| 亚洲精品高清在线观看| 日欧美一区二区| 风间由美一区二区三区在线观看 | 中文字幕一区二区5566日韩| 亚洲女人****多毛耸耸8| 亚洲愉拍自拍另类高清精品| 欧美aaa在线| av在线综合网| 日韩欧美国产一区二区在线播放| 欧美国产视频在线| 亚洲自拍欧美精品| 国产精品综合av一区二区国产馆| 99re视频精品| 日韩一区二区三区观看| 国产精品美女久久福利网站| 午夜精品福利久久久| 国产69精品一区二区亚洲孕妇| 在线亚洲+欧美+日本专区| 久久综合久久综合九色| 亚洲精品一二三| 国产一二精品视频| 欧美日韩亚洲综合在线| 国产欧美一区二区精品性色| 亚洲成人av在线电影| 成人爽a毛片一区二区免费| 91精品国产综合久久精品app| 国产精品嫩草99a| 麻豆91免费观看| 欧美性猛交一区二区三区精品| 2020国产精品| 亚洲国产精品天堂| 91在线看国产| 久久久777精品电影网影网| 日韩国产欧美三级| 91久久奴性调教| 中文字幕一区在线观看视频| 精品在线亚洲视频| 91精品国产乱| 婷婷久久综合九色国产成人| 99re热这里只有精品视频| 久久久99精品久久| 国产一区在线观看视频| 欧美一卡在线观看| 午夜在线电影亚洲一区| 一本到不卡精品视频在线观看| 国产亚洲精品免费| 六月丁香综合在线视频| 日韩一区二区在线免费观看| 亚洲一区国产视频| 欧美体内she精高潮| 一区二区三区在线视频免费观看| 成人国产在线观看| 中文字幕乱码久久午夜不卡| 国产精品一区二区你懂的| 日韩免费视频一区二区| 男女性色大片免费观看一区二区| 777色狠狠一区二区三区| 午夜电影网亚洲视频| 欧美日韩极品在线观看一区| 午夜精品免费在线|