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

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

?? uglpckbd.c

?? windriver_VxWorks.zinc60t22 zin6.0 for tornado 2.2 patch
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* uglPcKbd.c - PC (AT) type keyboard device support *//* Copyright 1999-2003 Wind River Systems, Inc. All Rights Reserved *//*modification history--------------------01l,18jun03,jlb  Updated for Tornado 2.201k,16nov01,msr  Fixed SPR #70054: formatter loses key events.01j,25jul01,gav  Back out AltGr.01i,25jul01,gav  Added AltGr support to keyboard mapping.22dec00,pkr	Added handling of AltGr on german keyboard01h,01feb01,jlb  Do not convert key to control value when ctrl mod present (Java)01g,10nov00,jlb  Do not compile keyboard mappings when config changes01f,09nov00,jlb  Fixed num lock processing (SPR 62143)01e,23oct00,wdf  Changed copyright date.01d,24feb00,msr  Updated for event service API.01c,18jan00,jlb  Modified to have the init function to add the device01b,12jan00,jlb  Set the virtual console number01a,16dec99,jlb  writtenDESCRIPTIONThis file provides the PC At type keyboard protocol support for UGL.  Ithas a single global entry point <uglPcKbdInit> which initializes thePC keyboard.  The initialization function opens the specifiedI/O device, sets it to the proper mode, and registers the device formatter, control, and destroy functions.This keyboard handler uses a keyboard driver to control the physicaldevice.  The keyboard must be either a PC At 101/102 keyboard ora PS2 type keyboard that is set up to operate with scan code set 1.*/#include <stdlib.h>#include <string.h>#include <stdarg.h>#include <ctype.h>#include <ioLib.h>#include <stdio.h>#include <drv/serial/pcConsole.h>#include <ugl/uglos.h>#include <ugl/uglmem.h>#include <ugl/uglinput.h>#include <ugl/uglevent.h>#include <ugl/uglucode.h>#include <ugl/driver/keyboard/uglpckbd.h>/* Forward references */UGL_LOCAL UGL_STATUS uglPcKbdInfo (UGL_INPUT_DEVICE * pDevice,                                   UGL_DEVICE_REQ  devRequest, void * arg);UGL_LOCAL UGL_STATUS uglPcKbdDestroy (UGL_INPUT_DEVICE * pDevice);UGL_LOCAL UGL_STATUS uglPcKbdFormatter (UGL_INPUT_DEVICE * pDevice,                                        UGL_EVENT *  pEvent);UGL_LOCAL UGL_UINT16 MapKeyValue(UGL_UINT16 keyValue, UGL_UINT32 modifiers);/******************************************************************************** uglPcKbdInit - initialize the PC AT keyboard** This routine initializes the PC keyboard for operation with UGL.  The* keyboard attached to the device <pDevName> is opened and set in the* proper mode to function with UGL.  It creates a device entry for the * input sercice <inSvcId>.** After the proper mode is set it fills in the formatter, control, and* destroy function pointers in the device descriptor and allocates device * specific control data.* * RETURNS: input device identifier assigned to keyboard when success;*          otherwise UGL_NULL** ERRNO: N/A** SEE ALSO: uglPcKbdDestroy()*/UGL_INPUT_DEVICE_ID uglPcKbdInit    (    char *                  pDevName,           /* name of the device */    UGL_EVENT_SERVICE_ID    eventServiceId      /* event service */    )    {            UGL_PC_KEYBOARD * pKbdData;    char * tmp;    int virtualConsole;    UGL_INPUT_DEVICE * pDevice;            /* Create the device */    pDevice = uglInputDeviceAdd (eventServiceId);    if (pDevice == UGL_NULL)        return (UGL_NULL);        /* open the device */    pDevice->fd = open (pDevName, 0, 0);    if (pDevice->fd >= 0)         {        if ((tmp = rindex(pDevName,(int)'/')) != 0)            {            /* set the proper virtual console as the active */            sscanf(tmp+1,"%d",&virtualConsole);            ioctl(pDevice->fd, CONIOCURCONSOLE,virtualConsole);            }                /* set the device type as a keyboard */        pDevice->deviceType = UGL_DEVICE_KEYBOARD;        /* device was opened, initialize */        ioctl (pDevice->fd, FIOSETOPTIONS, OPT_RAW);        ioctl (pDevice->fd, FIOFLUSH,0);        ioctl (pDevice->fd, CONIOCONVERTSCAN, FALSE);        /* set up function pointers for device */        pDevice->format = uglPcKbdFormatter;        pDevice->destroy = uglPcKbdDestroy;        pDevice->info = uglPcKbdInfo;        /* set device local data */        pKbdData = pDevice->data = UGL_MALLOC (sizeof(UGL_PC_KEYBOARD));        pKbdData->ledValue = 0;        pKbdData->extendedKey = FALSE;        pKbdData->ledControl = TRUE;        ioctl (pDevice->fd, CONIOLEDS, pKbdData->ledValue);        }    else        return (UGL_NULL);    return ((UGL_INPUT_DEVICE_ID) pDevice);    }/******************************************************************************** uglPcKbdPtrInfo - control the keyboard operations** This routine obtains information from the device and sets new information* within the device.   For the PC keyboard, the following operations are * provided:**\is*\i LED mode (UGL_DEVICE_SET_LED_CONTROL)*   Allow an application to control the LED state*\i set LED states (UGL_DEVICE_SET_LED)*   Turn on/off an LED*\i get LED states (UGL_DEVICE_GET_LED)*   Get the current setting of the keyboard LEDs*\ie** RETURNS: UGL_STATUS_OK** ERRNO: N/A** SEE ALSO: uglPcKbdInit()**/UGL_LOCAL UGL_STATUS uglPcKbdInfo    (    UGL_INPUT_DEVICE * pDevice,      /* device control structure */    UGL_DEVICE_REQ     request,      /* request to perform */    void *             arg           /* argument for request */    )    {    UGL_PC_KEYBOARD * pKbdData = (UGL_PC_KEYBOARD *) pDevice->data;    switch (request)         {        case UGL_DEVICE_SET_LED_CONTROL:    /* set app/LED control */            pKbdData->ledControl = (UGL_BOOL)arg;            break;        case UGL_DEVICE_SET_LED:            /* set LEDs */            pKbdData->ledValue = (UGL_UINT32) arg;            ioctl (pDevice->fd, CONIOLEDS, (int) arg);            break;        case UGL_DEVICE_GET_LED:            /* get state of LEDs */            *(int *)arg = pKbdData->ledValue;            break;        default:            break;        }    return UGL_STATUS_OK;    }/******************************************************************************** uglPcKbdDestroy - destory the device** This device terminates operations on a PC (AT) type keyboard.  It closes the* device and frees all resources.** RETURNS: UGL_STATUS_OK, or UGL_STATUS_ERROR if the operation fails.** ERRNO: N/A** SEE ALSO: uglPcKbdInit()**/UGL_LOCAL UGL_STATUS uglPcKbdDestroy    (    UGL_INPUT_DEVICE * pDevice      /* device control structure */    )    {    /* close the device */    close (pDevice->fd);    /* free local storage */    UGL_FREE (pDevice->data);    return UGL_STATUS_OK;    }/******************************************************************************** uglPcKbdFormatter - format keyboard input data to input event** This routine handles formatting of input device data into an appropriate* event. The scan code from the keyboard is read and processed to * approporately update state modifiers (ALT, CTRL, SHIFT) and update LED* states. An input event is generated that contains the updated modifier* states, the scan code, and the corresponding Unicode value.** RETURNS:  UGL_STATUS_OK, when a packet was recieved*   UGL_STATUS_DROP** ERRNO: N/A** SEE ALSO: uglMsPtrInit()*/UGL_LOCAL UGL_STATUS uglPcKbdFormatter    (        UGL_INPUT_DEVICE * pDevice,         /* device info */    UGL_EVENT *  pEvent                 /* event to build */    )    {    UGL_INPUT_EVENT * pInputEvent = (UGL_INPUT_EVENT *)pEvent;    UGL_BOOL    keyDown;    UGL_UINT32  modifiers = 0;    UGL_UINT32  newLedValue;    unsigned short scanCode = 0;    unsigned char atScanCode;    int readCnt = 1;    UGL_STATUS status = UGL_STATUS_DROP;    UGL_PC_KEYBOARD * pKbdData = (UGL_PC_KEYBOARD *) pDevice->data;    UGL_EVENT_SERVICE * pService = pDevice->pService;    /* Get data until no more data is present */    while (readCnt != 0)         {        ioctl (pDevice->fd, FIONREAD, (int) &readCnt);        if (readCnt > 0)             readCnt = read(pDevice->fd, &atScanCode, 1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频一区二区在线| 亚洲另类在线制服丝袜| 亚洲视频一二三区| 日韩av在线播放中文字幕| 丁香五精品蜜臀久久久久99网站| 在线免费观看日本一区| 精品久久久网站| 亚洲自拍偷拍欧美| 国产a区久久久| 日韩欧美在线1卡| 一区二区高清免费观看影视大全| 国产精品小仙女| 日韩一区二区三| 亚洲综合精品自拍| 99久精品国产| 国产精品人成在线观看免费| 精品在线免费观看| 7777精品伊人久久久大香线蕉经典版下载 | 国产一区二区毛片| 91精品国产高清一区二区三区| 亚洲欧洲日产国码二区| 久久超碰97人人做人人爱| 欧美性生活大片视频| 综合久久给合久久狠狠狠97色| 国产精品亚洲人在线观看| 精品少妇一区二区三区日产乱码| 偷拍亚洲欧洲综合| 欧美伊人精品成人久久综合97| 亚洲乱码日产精品bd| av在线播放成人| 国产亚洲综合在线| 国产精品一二三区| 国产欧美一区二区三区在线看蜜臀 | 在线综合亚洲欧美在线视频| 亚洲成人自拍网| 欧美日韩一区二区三区四区五区| 亚洲欧美另类综合偷拍| 日本韩国欧美一区| 亚洲乱码国产乱码精品精可以看 | 亚洲男人天堂av网| 欧洲生活片亚洲生活在线观看| 国产精品久久久久久福利一牛影视| 国产成人高清视频| 中文字幕免费不卡| 国产成人亚洲综合a∨猫咪| 国产女人18水真多18精品一级做 | 欧美日韩激情一区| 亚洲成人久久影院| 欧美一级搡bbbb搡bbbb| 久久成人免费电影| 欧美国产一区在线| 99精品久久只有精品| 亚洲欧美日韩国产综合| 欧美网站一区二区| 蜜臀av性久久久久蜜臀av麻豆| 日韩在线a电影| 97se亚洲国产综合自在线观| 亚洲成人精品在线观看| 国产精品丝袜一区| 日韩一级免费一区| 亚洲特级片在线| 欧美亚洲综合另类| 蜜臀久久久99精品久久久久久| 精品999在线播放| 国产成人av影院| 夜夜精品视频一区二区| 欧美二区三区的天堂| 国产999精品久久久久久| 亚洲精品国产一区二区精华液| 欧美日韩精品免费| 国产精品亚洲一区二区三区妖精 | 国产乱人伦精品一区二区在线观看| 国产精品美女久久久久av爽李琼 | 日韩一区二区三区视频在线观看| 日本欧美在线观看| 91视频一区二区| 日韩在线一二三区| 欧美激情一区二区三区不卡| 日韩欧美色综合| 99精品欧美一区二区蜜桃免费| 日本在线不卡视频| 国产精品久久久久影院色老大| 欧美美女网站色| 国产91在线|亚洲| 日韩综合一区二区| 中文字幕一区二区三区不卡在线| 91精品国产综合久久久久久久| 床上的激情91.| 久久电影网电视剧免费观看| 亚洲一区二区中文在线| 久久精品亚洲精品国产欧美 | 一区二区视频在线| 国产亚洲综合在线| 欧美一级免费观看| 在线精品观看国产| aaa欧美大片| 久久精品国产精品亚洲红杏| 亚洲五码中文字幕| 亚洲精品免费看| 国产欧美日韩综合| 亚洲精品一区二区三区四区高清| 欧美午夜精品免费| 91激情五月电影| 99在线精品视频| 成人免费毛片a| 国产伦精一区二区三区| 久久97超碰国产精品超碰| 天天免费综合色| 一区二区三区中文字幕| 国产精品污www在线观看| 欧美精品一区二区三区在线 | 国产一区在线精品| 美脚の诱脚舐め脚责91| 日韩电影在线看| 日本午夜一区二区| 日本美女一区二区三区| 美腿丝袜亚洲综合| 韩国精品久久久| 国产精品一区二区免费不卡 | 欧美性生交片4| 精品视频一区三区九区| 欧美美女一区二区在线观看| 欧美日韩国产高清一区二区| 欧美日韩高清一区| 91精品欧美综合在线观看最新 | 久久爱www久久做| 精品一区二区三区不卡| 激情五月激情综合网| 激情国产一区二区| 国产福利精品导航| 99久久精品国产网站| 91麻豆免费在线观看| 欧美色图在线观看| 91精品国产综合久久香蕉的特点| 欧美xfplay| 国产精品美女久久久久av爽李琼| 亚洲久本草在线中文字幕| 亚洲成av人片在线观看| 捆绑调教一区二区三区| 国产高清不卡二三区| 91成人网在线| 欧美成人aa大片| 中日韩av电影| 午夜欧美在线一二页| 极品少妇一区二区三区精品视频| www.综合网.com| 91精品国产综合久久久蜜臀粉嫩 | 欧美不卡一区二区三区| 欧美国产丝袜视频| 悠悠色在线精品| 久久精品国产99国产| 成人理论电影网| 欧美日韩一区二区三区四区| 日韩三级视频在线看| 欧美高清视频在线高清观看mv色露露十八| 日韩精品一区二区三区在线 | 欧美色图激情小说| 精品蜜桃在线看| 亚洲免费观看视频| 亚洲成a人v欧美综合天堂| 狠狠色综合日日| 国产一区二区主播在线| 欧美撒尿777hd撒尿| 日韩精品一区二区三区老鸭窝| 欧美激情一区二区三区不卡| 亚洲色图欧洲色图婷婷| 国产一区二区在线电影| av中文字幕亚洲| 日韩午夜在线影院| 国产精品色婷婷久久58| 日本视频在线一区| 波多野洁衣一区| 欧美一区二区在线免费观看| 亚洲精品一线二线三线| 性久久久久久久| 国产69精品久久久久毛片| 欧洲另类一二三四区| 精品国产99国产精品| 丝袜国产日韩另类美女| 国产999精品久久久久久绿帽| 欧美男女性生活在线直播观看| 欧美亚洲愉拍一区二区| 国产精品国产三级国产普通话99| 视频在线观看一区二区三区| aaa欧美色吧激情视频| 精品国精品国产尤物美女| 亚洲乱码国产乱码精品精98午夜 | 99vv1com这只有精品| 国产69精品久久久久777| 日韩精品资源二区在线| 欧美国产精品一区| 三级精品在线观看| 97成人超碰视| 亚洲蜜臀av乱码久久精品蜜桃| 狂野欧美性猛交blacked| 欧美日韩在线观看一区二区| 亚洲色图清纯唯美| 91网址在线看| 国产精品伦一区| 国产精品亚洲人在线观看|