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

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

?? uglpckbd.c

?? 嵌入式開發(fā)工具
?? 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);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成在人线在线播放| 亚洲色图.com| 懂色av一区二区三区蜜臀| 中文字幕一区二区三区色视频| 91美女精品福利| 三级在线观看一区二区| 久久综合九色综合欧美98| eeuss鲁片一区二区三区在线看| 亚洲三级小视频| 91在线看国产| 午夜伊人狠狠久久| 日本一二三四高清不卡| 欧美天天综合网| 国产精品一线二线三线精华| 亚洲精品国产视频| 精品国偷自产国产一区| 日本高清无吗v一区| 国产综合一区二区| 亚洲国产精品久久不卡毛片| 久久精品视频在线免费观看| 99国产精品99久久久久久| 亚洲成人av一区| 亚洲女与黑人做爰| 国产丝袜在线精品| 日韩一区二区免费在线观看| 97超碰欧美中文字幕| 国精品**一区二区三区在线蜜桃| 一区二区三区丝袜| 国产女主播一区| 欧美成va人片在线观看| 欧美中文字幕一区二区三区| 成人激情小说乱人伦| 美国十次综合导航| 性感美女久久精品| 亚洲精品欧美综合四区| 26uuu亚洲婷婷狠狠天堂| 91丨porny丨国产入口| 国产精品99久| 蜜桃av噜噜一区二区三区小说| 一区二区三区美女视频| 亚洲国产精品99久久久久久久久| 日韩一级免费一区| 欧美日韩国产精品自在自线| 成人av网站在线观看| 国产精品小仙女| 国产一区二区三区日韩| 亚洲国产视频直播| 亚洲欧洲av一区二区三区久久| 日韩一区二区三区免费观看| 欧美专区在线观看一区| 色综合视频在线观看| 91婷婷韩国欧美一区二区| 国产成人精品免费| 国产精品一级片| 国产成人免费视频网站| 国产精品亚洲综合一区在线观看| 精品一区二区三区日韩| 久久av中文字幕片| 日本一道高清亚洲日美韩| 亚洲午夜精品久久久久久久久| 一区二区欧美视频| 一个色综合av| 日韩精品国产欧美| 蜜桃传媒麻豆第一区在线观看| 免费成人av资源网| 六月丁香综合在线视频| 精品午夜一区二区三区在线观看| 国产在线一区观看| 国产91精品一区二区麻豆亚洲| 成人性生交大片免费看在线播放| 九九九精品视频| 国产一本一道久久香蕉| 成人综合婷婷国产精品久久蜜臀| 国产盗摄一区二区| 99久久免费国产| 欧美性一二三区| 日韩一级大片在线| 久久久久久夜精品精品免费| 国产欧美一区二区精品忘忧草 | 一级女性全黄久久生活片免费| 中文字幕一区不卡| 一区二区三区四区不卡在线 | 国产激情精品久久久第一区二区 | 亚洲女爱视频在线| 最新不卡av在线| 性做久久久久久免费观看欧美| 欧美aa在线视频| 懂色一区二区三区免费观看| 91极品视觉盛宴| 日韩午夜三级在线| 国产精品国产三级国产专播品爱网 | 亚洲视频免费在线| 午夜av一区二区三区| 另类成人小视频在线| 国产二区国产一区在线观看| 大桥未久av一区二区三区中文| 欧美在线视频全部完| 精品国产一区a| 亚洲欧美另类久久久精品2019| 日韩高清在线观看| 粉嫩嫩av羞羞动漫久久久| 欧美日韩成人综合天天影院| 久久久久9999亚洲精品| 一区二区欧美国产| 国产精品1区2区3区在线观看| 色999日韩国产欧美一区二区| 日韩一区二区三区视频| 国产精品传媒入口麻豆| 美女视频黄久久| 日本精品视频一区二区三区| 精品福利av导航| 亚洲精品五月天| 国产精品一区二区在线看| 欧美日韩一区成人| 国产精品久久久久影院| 婷婷综合另类小说色区| av电影天堂一区二区在线观看| 日韩欧美亚洲国产另类| 亚洲精品国产视频| 不卡一区二区三区四区| 日韩一级二级三级精品视频| 亚洲欧美另类久久久精品2019| 久久www免费人成看片高清| 欧美日韩免费视频| 亚洲美女偷拍久久| 成人免费视频一区| 精品99一区二区三区| 婷婷成人激情在线网| 97国产一区二区| 久久综合久色欧美综合狠狠| 亚洲中国最大av网站| 99精品一区二区三区| 国产精品久久久久三级| 成人午夜免费视频| 国产欧美精品日韩区二区麻豆天美| 国产福利91精品一区二区三区| 久久久电影一区二区三区| 国产成人免费av在线| 欧美国产精品劲爆| aa级大片欧美| 亚洲免费高清视频在线| 欧美视频在线播放| 日韩国产欧美在线视频| 日韩亚洲国产中文字幕欧美| 韩国毛片一区二区三区| 中文字幕精品一区二区精品绿巨人 | 欧美日韩一区二区三区四区五区| 亚洲国产欧美在线人成| 欧美精品免费视频| 麻豆精品新av中文字幕| 欧美精品一区二区三区在线播放| 国产中文一区二区三区| 国产精品污网站| 欧美专区在线观看一区| 蜜臀av一区二区在线观看| 久久伊99综合婷婷久久伊| 懂色av一区二区在线播放| 亚洲理论在线观看| 欧美挠脚心视频网站| 国产美女精品在线| 中文字幕av免费专区久久| 色综合久久中文字幕综合网| 亚洲午夜精品在线| 精品国产电影一区二区| eeuss国产一区二区三区| 午夜久久久久久| 国产区在线观看成人精品| 在线亚洲一区观看| 麻豆一区二区99久久久久| 国产日韩欧美电影| 在线看日本不卡| 国内一区二区在线| 亚洲精品中文字幕乱码三区| 欧美一区二区三区免费大片| 黄色日韩网站视频| 夜夜嗨av一区二区三区中文字幕| 欧美成人精品1314www| 不卡大黄网站免费看| 五月天婷婷综合| 国产精品美女久久久久高潮| 欧美日韩中字一区| 国产99久久久国产精品免费看| 亚洲一区二区中文在线| 国产三级久久久| 777精品伊人久久久久大香线蕉| 国产精品一区二区三区99| 亚洲午夜私人影院| 中文在线一区二区| 日韩视频在线你懂得| 91香蕉国产在线观看软件| 国内精品自线一区二区三区视频| 亚洲精品高清在线观看| 久久人人爽人人爽| 欧美欧美午夜aⅴ在线观看| 成年人网站91| 国产激情一区二区三区桃花岛亚洲| 一区二区欧美国产| 中文字幕欧美一| 国产日韩一级二级三级| 欧美一区二区精品久久911|