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

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

?? pcconsolepep.c

?? 此文件是cp6000主板的bsp包
?? C
字號:
/* pcConsolePep.c - Compaq DeskPro 386 console handler *//* Copyright 2002 Kontron Modular Computers GmbH *//* Copyright 1993-2001 Wind River System, Inc. */#include "copyright_wrs.h"/*modification history--------------------01f,26feb03,gko  new function call to avoid typematic error by 				 USB keyboard, because of a too low priority of 				 the interrupt task of UHCI.01e,01aug02,phd  support for USB keyboard added  01d,06dec01,jlb  added option to send scan codes and set LEDs01c,11jun96,wlf  doc: cleanup.01b,14jun95,hdn  removed function declarations defined in sysLib.h.01a,09sep93,vin  created.*//*DESCRIPTIONThis file is used to link the keyboard driver and the vga driver.USER CALLABLE ROUTINESMost of the routines in this driver are accessible only through the I/Osystem.  Two routines, however, must be called directly: pcConDrv() toinitialize the driver, and pcConDevCreate() to create devices.Before using the driver, it must be initialized by calling pcConDrv ()This routine should be called exactly once, before any reads, writes, orcalls to pcConDevCreate().  Normally, it is called from usrRoot() in usrConfig.c.Before a console can be used, it must be created using pcConDevCreate().IOCTL FUNCTIONSThis driver responds to the same ioctl codes as a normal ty driver.SEE ALSO: tyLibNOTESThe macro N_VIRTUAL_CONSOLES should be defined in config.h file.The macro UHCI_INT_PRIORITY for USB keyboard should also be defined inconfig.h file.*//* includes */#include "vxWorks.h"#include "iv.h"#include "ioLib.h"#include "iosLib.h"#include "memLib.h"#include "tyLib.h"#include "intLib.h"#include "errnoLib.h"#include "config.h"#include "drv/serial/pcConsolePep.h"#include "versionPep.h"#if (PC_KBD_TYPE == USB_KBD)#include "drv/usb/usbKeyboardTyPep.h"#include "drv/usb/usbUhciHostPep.h"#endif/* defines */PEP_VERSION(pcConsolePep_c,01f)				/* version identifier *//* globals */PC_CON_DEV pcConDv [N_VIRTUAL_CONSOLES] ;	/* device descriptors *//* locals */LOCAL int	pcConDrvNum;	/* driver number assigned to this driver */#if (PC_KBD_TYPE == USB_KBD)TY_DEV_ID pUsbKeyboardTyDev =				/* console descriptor */ 		(&(pcConDv [PC_CONSOLE].tyDev));#endif/* forward declarations */LOCAL int	pcConDrvOpen ();LOCAL STATUS	pcConDrvIoctl (PC_CON_DEV * pPcCoDv, int request, int arg);LOCAL void	pcConDrvHrdInit ();/******************************************************************************** pcConDrv - initialize the console driver ** This routine initializes the console driver, sets up interrupt vectors,* and performs hardware initialization of the keybord and display.** RETURNS: OK, or ERROR if the driver cannot be installed.*/STATUS pcConDrv (void)    {    /* check if driver already installed */    if (pcConDrvNum > 0)	return (OK);    pcConDrvHrdInit ();    pcConDrvNum = iosDrvInstall (pcConDrvOpen, (FUNCPTR) NULL, pcConDrvOpen,				(FUNCPTR) NULL, tyRead, tyWrite, pcConDrvIoctl				 );    return (pcConDrvNum == ERROR ? ERROR : OK);    }/******************************************************************************** pcConDevCreate - create a device for the on-board ports** This routine creates a device on one of the pcConsole ports.  Each port* to be used should have only one device associated with it, by calling* this routine.** RETURNS: OK, or ERROR if there is no driver or one already exists for the* specified port.*/STATUS pcConDevCreate     (    char *	name,		/* name to use for this device	*/    FAST int	channel,        /* virtual console number	*/    int		rdBufSize,	/* read buffer size, in bytes	*/    int		wrtBufSize	/* write buffer size in bytes	*/    )    {    FAST PC_CON_DEV *pPcCoDv;    if (pcConDrvNum <= 0)	{	errnoSet (S_ioLib_NO_DRIVER);	return (ERROR);	}    /* if this device already exists, don't create it */    if (channel < 0 || channel >= N_VIRTUAL_CONSOLES)        return (ERROR);    pPcCoDv = &pcConDv [channel];    if (pPcCoDv->created)	return (ERROR);    if (tyDevInit (&pPcCoDv->tyDev, rdBufSize, wrtBufSize, vgaWriteString)	!= OK)	{	return (ERROR);	}    #if (PC_KBD_TYPE != USB_KBD)    /* enable the keybord interrupt */    sysIntEnablePIC (KBD_INT_LVL);#endif    /* mark the device as created, and add the device to the I/O system */    pPcCoDv->created = TRUE;    return (iosDevAdd (&pPcCoDv->tyDev.devHdr, name, pcConDrvNum));    }/******************************************************************************** pcConDrvHrdInit - initialize the Keyboard and VGA*/LOCAL void pcConDrvHrdInit (void)    {    FAST int 	oldlevel;	/* to hold the oldlevel of interrupt */    oldlevel= intLock ();    /* Keyboard initialization */#if (PC_KBD_TYPE == USB_KBD)	pcConDv[PC_CONSOLE].ks->kbdHook = usbKeyboardTyHook;	usbUhciHostInit ();  	usbKeyboardTyInit ();	usbChangeUhciIntPriority( UHCI_INT_PRIORITY ); /* new, due to typematic problem */#else     kbdHrdInit ();#endif    /* (VGA) Display initialization */    vgaHrdInit ();    /* interrupt is masked out: the keyboard interrupt will be enabled     * in the pcConDevCreate      */    intUnlock (oldlevel);    } /********************************************************************************* pcConDrvOpen - open file to Console**/LOCAL int pcConDrvOpen     (    PC_CON_DEV *	pPcCoDv,    char *		name,    int 		mode    )    {    return ((int) pPcCoDv);    }/********************************************************************************* pcConDrvIoctl - special device control** This routine handles FIOGETOPT requests and passes all others to tyIoctl.** RETURNS: OK or ERROR if invalid baud rate, or whatever tyIoctl returns.*/LOCAL STATUS pcConDrvIoctl     (    PC_CON_DEV *	pPcCoDv,	/* device to control */    int 		request,	/* request code */    int 		arg		/* some argument */    )    {    int 	status = OK;    switch (request)	{        case CONIOSETATRB:            pPcCoDv->vs->curAttrib = arg ;	    break;        case CONIOGETATRB:            status = pPcCoDv->vs->curAttrib;	    break;#if (PC_KBD_TYPE != USB_KBD)        case CONIOSETKBD:            if (arg == 0 || arg == 1)                pPcCoDv->ks->kbdMode = arg;            else                status = ERROR;	    break;#endif        case CONIOSCREENREV:	    pPcCoDv->vs->rev = (pPcCoDv->vs->rev) ? FALSE : TRUE;	    pPcCoDv->vs->vgaHook (pPcCoDv->vs, arg, 0);	/* reverse screen */            break;        case CONIOBEEP:	    pPcCoDv->vs->vgaHook (pPcCoDv->vs, arg, 1);	/* produce beep */	    break;        case CONIOCURSORON:	    pPcCoDv->vs->vgaHook (pPcCoDv->vs, arg, 2); /* vgaCursor on */	    break;        case CONIOCURSOROFF:	    pPcCoDv->vs->vgaHook (pPcCoDv->vs, arg, 3);	/* vgaCursor off */	    break;        case CONIOCURSORMOVE:	    pPcCoDv->vs->vgaHook (pPcCoDv->vs, arg, 4); /* position cursor */	    break;	    #if (PC_KBD_TYPE != USB_KBD)	case CONIOCURCONSOLE:		/* change current console */	    if ((arg >= 0) && (arg < N_VIRTUAL_CONSOLES))	       pPcCoDv->ks->currCon = arg;	    break;#endif	case CONIOCONVERTSCAN:		 /* send scan codes or ASCII */	    pPcCoDv->ks->convertChar = arg;	    break;	case CONIOLEDS:			/* change LEDs */	    pPcCoDv->ks->kbdFlags &= ~7;	    pPcCoDv->ks->kbdFlags |= (arg & 7);	    pPcCoDv->ks->kbdHook (1);	    break;	default:	    status = tyIoctl (&pPcCoDv->tyDev, request, arg);	    break;	}    return (status);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜中文字幕| 在线观看视频一区二区 | 成人动漫一区二区在线| 国产精品一区二区在线观看网站| 日日夜夜免费精品视频| 日本亚洲电影天堂| 精品一区二区免费| 精品一区二区三区免费毛片爱| 美女网站色91| 国产一区二区在线看| 丁香六月久久综合狠狠色| 成人三级在线视频| 91福利资源站| 337p亚洲精品色噜噜| 精品乱人伦一区二区三区| 国产日本一区二区| 亚洲美腿欧美偷拍| 日韩电影在线免费看| 久久国产三级精品| 99久久99久久精品国产片果冻 | 亚洲国产视频直播| 日本女优在线视频一区二区| 久久国产精品免费| 成人综合在线网站| 欧美日韩黄色一区二区| 欧美成人在线直播| 亚洲女爱视频在线| 麻豆91小视频| 99re热这里只有精品视频| 欧美性生活一区| 精品成人私密视频| 亚洲制服丝袜一区| 国产成人午夜精品5599| 欧美怡红院视频| 久久久99精品久久| 五月天精品一区二区三区| 国产在线视频不卡二| 91福利国产成人精品照片| 日韩女优制服丝袜电影| 亚洲乱码日产精品bd| 经典三级在线一区| 欧美日韩另类一区| 国产精品久久一卡二卡| 秋霞午夜av一区二区三区| 99精品欧美一区| 久久久一区二区三区捆绑**| 日韩成人免费电影| 一本一道久久a久久精品综合蜜臀| 欧美一级午夜免费电影| 亚洲精品自拍动漫在线| 国产精品18久久久久久久久久久久 | 久久精品欧美一区二区三区不卡| 一区二区三区加勒比av| 国产乱码精品一区二区三| 欧美日韩国产片| 亚洲精品菠萝久久久久久久| 高清日韩电视剧大全免费| 日韩视频在线永久播放| 亚洲国产一区二区a毛片| 成人ar影院免费观看视频| 久久久国产午夜精品| 日本va欧美va精品| 欧美嫩在线观看| 亚洲va天堂va国产va久| 色欧美片视频在线观看| 日韩伦理电影网| 99精品1区2区| 亚洲特级片在线| 97久久精品人人做人人爽50路| 久久精品一区蜜桃臀影院| 九一久久久久久| 精品精品国产高清一毛片一天堂| 日本女人一区二区三区| 日韩午夜av电影| 激情欧美一区二区三区在线观看| 欧美一区二区三区免费视频| 日韩中文字幕1| 欧美一区二区黄色| 久久激情五月激情| 国产午夜亚洲精品不卡| 国产精品亚洲а∨天堂免在线| 久久九九全国免费| av在线免费不卡| 一区二区三区视频在线看| 精品视频色一区| 日产精品久久久久久久性色| 欧美一级爆毛片| 国产乱码精品1区2区3区| 国产欧美精品一区| 99久久综合精品| 亚洲chinese男男1069| 欧美一区二区私人影院日本| 九九精品一区二区| 欧美激情在线一区二区三区| 97久久精品人人做人人爽| 亚洲bdsm女犯bdsm网站| 日韩三级免费观看| 国产超碰在线一区| 亚洲成av人**亚洲成av**| 日韩你懂的在线播放| 成人免费观看视频| 亚洲成人av免费| 26uuu亚洲综合色| 欧美日韩一区高清| 美脚の诱脚舐め脚责91 | 国产精品入口麻豆原神| 91久久精品一区二区三区| 舔着乳尖日韩一区| 日本一区免费视频| 欧美日韩国产系列| 高清视频一区二区| 日韩高清在线一区| 国产精品久久久久影院色老大| 在线一区二区视频| 国产精品99久久久久| 亚洲国产一区在线观看| 国产拍揄自揄精品视频麻豆| 日本韩国欧美在线| 成熟亚洲日本毛茸茸凸凹| 日韩精品电影一区亚洲| 国产精品第五页| 精品国产露脸精彩对白| 91精品福利视频| 国产精品一二三四区| 日韩精品91亚洲二区在线观看| 久久精品一区四区| 日韩精品一区二区三区三区免费| 91成人免费在线| 99久久综合精品| 国模套图日韩精品一区二区| 亚洲.国产.中文慕字在线| 国产精品乱人伦中文| 精品精品欲导航| 日韩一区二区影院| 欧美日韩午夜精品| 91麻豆国产福利在线观看| 国产91精品露脸国语对白| 精品一区中文字幕| 麻豆91精品91久久久的内涵| 一区二区欧美在线观看| 亚洲天堂2016| 国产精品成人一区二区三区夜夜夜 | 欧美精品v国产精品v日韩精品| 91在线观看高清| 成人av在线资源| 成人网页在线观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日本丶国产丶欧美色综合| 粉嫩欧美一区二区三区高清影视| 加勒比av一区二区| 国内外精品视频| 狠狠色狠狠色综合日日91app| 免费人成精品欧美精品| 免费在线视频一区| 日韩中文字幕av电影| 日韩中文字幕一区二区三区| 日韩福利视频网| 日韩激情一二三区| 捆绑调教一区二区三区| 激情av综合网| 顶级嫩模精品视频在线看| 播五月开心婷婷综合| 一本久久a久久精品亚洲| 欧美在线免费观看视频| 91精品综合久久久久久| 日韩精品在线一区二区| 337p日本欧洲亚洲大胆色噜噜| 精品国产1区2区3区| 国产欧美日韩麻豆91| 中文字幕一区二| 亚洲国产一区二区三区青草影视| 三级久久三级久久| 国产精品一级在线| 色综合中文字幕国产| 在线播放亚洲一区| 久久久美女毛片| 亚洲一区二区不卡免费| 捆绑调教一区二区三区| 成人激情午夜影院| 欧美亚日韩国产aⅴ精品中极品| 日韩一级片网址| 中文字幕欧美国产| 五月天视频一区| 国产69精品久久99不卡| 欧美亚洲一区三区| 久久综合久久综合亚洲| 亚洲天堂福利av| 日韩电影在线观看一区| 99久久综合色| 欧美成人一区二区三区片免费| 中文字幕在线一区二区三区| 午夜在线成人av| 99国产精品一区| 精品成人在线观看| 亚洲一区二区三区美女| 成人一级视频在线观看| 日韩一区二区影院| 亚洲一区在线观看视频| 不卡一区二区三区四区| 精品福利在线导航|