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

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

?? event.svga

?? 針對OpenJtag通用調試板的Uboot程序
?? SVGA
?? 第 1 頁 / 共 3 頁
字號:
we can clean up properly.****************************************************************************/static void exitHandler(int sig){    exit(-1);}/****************************************************************************REMARKS:Sleep until the virtual terminal is active****************************************************************************/void wait_vt_active(void){    while (ioctl(tty_fd, VT_WAITACTIVE, tty_vc) < 0) {        if ((errno != EAGAIN) && (errno != EINTR)) {            perror("ioctl(VT_WAITACTIVE)");            exit(1);            }        usleep(150000);        }}/****************************************************************************REMARKS:Signal handler called when our virtual terminal has been released and we arelosing the active focus.****************************************************************************/static void release_vt_signal(int n){    forbid_vt_acquire = 1;    if (forbid_vt_release) {        forbid_vt_acquire = 0;        ioctl(tty_fd, VT_RELDISP, 0);        return;        }    // TODO: Call the user supplied suspendAppCallback and restore text    //       mode (saving the existing mode so we can restore it).    //    //       Also if the suspendAppCallback is NULL then we have to    //       ignore the switch request!    if(suspendAppCallback){      oldmode = VBE_getVideoMode();      suspendAppCallback(true);      VBE_setVideoMode(initmode);    }    ioctl(tty_fd, VT_RELDISP, 1);    forbid_vt_acquire = 0;    wait_vt_active();}/****************************************************************************REMARKS:Signal handler called when our virtual terminal has been re-aquired and weare now regaiing the active focus.****************************************************************************/static void acquire_vt_signal(int n){    forbid_vt_release = 1;    if (forbid_vt_acquire) {        forbid_vt_release = 0;        return;        }    // TODO: Restore the old display mode, call the user suspendAppCallback    //       and and we will be back in graphics mode.    if(suspendAppCallback){      VBE_setVideoMode(oldmode);      suspendAppCallback(false);    }    ioctl(tty_fd, VT_RELDISP, VT_ACKACQ);    forbid_vt_release = 0;}/****************************************************************************REMARKS:Function to set the action for a specific signal to call our signal handler.****************************************************************************/static void set_sigaction(int sig,void (*handler)(int)){    struct sigaction    siga;    siga.sa_handler = handler;    siga.sa_flags = SA_RESTART;    memset(&(siga.sa_mask), 0, sizeof(sigset_t));    sigaction(sig, &siga, NULL);}/****************************************************************************REMARKS:Function to take over control of VT switching so that we can capturevirtual terminal release and aquire signals, allowing us to properlysupport VT switching while in graphics modes.****************************************************************************/static void take_vt_control(void){    struct vt_mode      vtmode;    ioctl(tty_fd, VT_GETMODE, &vtmode);    oldvtmode = vtmode;    vtmode.mode = VT_PROCESS;    vtmode.relsig = SIGUSR1;    vtmode.acqsig = SIGUSR2;    set_sigaction(SIGUSR1, release_vt_signal);    set_sigaction(SIGUSR2, acquire_vt_signal);    ioctl(tty_fd, VT_SETMODE, &oldvtmode);}/****************************************************************************REMARKS:Set the shift keyboard LED's based on the current keyboard modifiers flags.****************************************************************************/static void updateLEDStatus(void){    int state = 0;    if (key_modifiers & EVT_CAPSSTATE)        state |= LED_CAP;    if (key_modifiers & EVT_NUMSTATE)        state |= LED_NUM;    ioctl(tty_fd,KDSETLED,state);}/****************************************************************************PARAMETERS:scancode    - Raw scan code to handleREMARKS:Handles the shift key modifiers and keeps track of the shift key statesso that we can return the correct ASCII codes for the keyboard.****************************************************************************/static void toggleModifiers(    int scancode){    static int caps_down = 0,num_down = 0;    if (scancode & 0x80) {        /* Handle key-release function */        scancode &= 0x7F;        if (scancode == 0x2A || scancode == 0x36)            key_modifiers &= ~EVT_SHIFTKEY;        else if (scancode == 0x1D || scancode == 0x61)            key_modifiers &= ~EVT_CTRLSTATE;        else if (scancode == 0x38 || scancode == 0x64)            key_modifiers &= ~EVT_ALTSTATE;        else if (scancode == 0x3A)            caps_down = false;        else if (scancode == 0x45)            num_down = false;        }    else {        /* Handle key-down function */        scancode &= 0x7F;        if (scancode == 0x2A || scancode == 0x36)            key_modifiers |= EVT_SHIFTKEY;        else if (scancode == 0x1D || scancode == 0x61)            key_modifiers |= EVT_CTRLSTATE;        else if (scancode == 0x38 || scancode == 0x64)            key_modifiers |= EVT_ALTSTATE;        else if (scancode == 0x3A) {            if (!caps_down) {                key_modifiers ^= EVT_CAPSSTATE;                updateLEDStatus();                }            caps_down = true;            }        else if (scancode == 0x45) {            if (!num_down) {                key_modifiers ^= EVT_NUMSTATE;                updateLEDStatus();                }            num_down = true;            }        }}/***************************************************************************REMARKS:Returns the number of bits that have changed from 0 to 1(a negative value means the number of bits that have changed from 1 to 0)  **************************************************************************/static int compareBits(short a, short b){    int ret = 0;    if( (a&1) != (b&1) ) ret += (b&1) ? 1 : -1;    if( (a&2) != (b&2) ) ret += (b&2) ? 1 : -1;    if( (a&4) != (b&4) ) ret += (b&4) ? 1 : -1;    return ret;}/***************************************************************************REMARKS:Turns off all keyboard state because we can't rely on them anymore as soonas we switch VT's***************************************************************************/static void keyboard_clearstate(void){  key_modifiers = 0;  memset(key_down, 0, sizeof(key_down));}/****************************************************************************REMARKS:Pumps all events from the console event queue into the WinDirect event queue.****************************************************************************/static void pumpEvents(void){    static uchar    buf[KBDREADBUFFERSIZE];    static char     data[5];    static int      old_buts, old_mx, old_my;    static struct timeval t;    fd_set fds;    int             numkeys,i;    int             dx, dy, buts;    /* Read all pending keypresses from keyboard buffer and process */    while ((numkeys = read(tty_fd, buf, KBDREADBUFFERSIZE)) > 0) {        for (i = 0; i < numkeys; i++) {            toggleModifiers(buf[i]);            if (key_modifiers & EVT_ALTSTATE){              int fkey = 0;              // Do VT switching here for Alt+Fx keypresses              switch(buf[i] & 0x7F){              case 59 ... 68: /* F1 to F10 */                fkey = (buf[i] & 0x7F) - 58;                break;              case 87: /* F11 */              case 88: /* F12 */                fkey = (buf[i] & 0x7F) - 76;                break;              }              if(fkey){                struct vt_stat vts;                ioctl(tty_fd, VT_GETSTATE, &vts);                                if(fkey != vts.v_active){                  keyboard_clearstate();                  ioctl(tty_fd, VT_ACTIVATE, fkey);                }              }            }            if (buf[i] & 0x80)                addKeyEvent(EVT_KEYUP,buf[i] & 0x7F);            else                addKeyEvent(EVT_KEYDOWN,buf[i] & 0x7F);            }        // TODO: If we want to handle VC switching we will need to do it        //       in here so that we can switch away from the VC and then        //       switch back to it later. Right now VC switching is disabled        //       and in order to enable it we need to save/restore the state        //       of the graphics screen (using the suspendAppCallback and        //       saving/restoring the state of the current display mode).        }    /* Read all pending mouse events and process them */    if(conn > 0){        FD_ZERO(&fds);        FD_SET(conn, &fds);        t.tv_sec = t.tv_usec = 0L;        while (select(conn+1, &fds, NULL, NULL, &t) > 0) {            if(read(conn, data, 5) == 5){                buts = (~data[0]) & 0x07;                dx = (char)(data[1]) + (char)(data[3]);                dy = -((char)(data[2]) + (char)(data[4]));                                mx += dx; my += dy;                                if (dx || dy)                    addMouseEvent(EVT_MOUSEMOVE, 0, mx, my, buts);                                if (buts != old_buts){                    int c = compareBits(buts,old_buts);                    if(c>0)                        addMouseEvent(EVT_MOUSEDOWN, 0, mx, my, buts);                    else if(c<0)                        addMouseEvent(EVT_MOUSEUP, 0, mx, my, buts);                }                old_mx = mx; old_my = my;                old_buts = buts;                FD_SET(conn, &fds);                t.tv_sec = t.tv_usec = 0L;            }        }    }}/*------------------------ Public interface routines ----------------------*//****************************************************************************PARAMETERS:which       - Which code for event to postwhat        - Event code for event to postmessage     - Event messagemodifiers   - Shift key/mouse button modifiersRETURNS:True if the event was posted, false if queue is full.REMARKS:Posts an event to the event queue. This routine can be used to post any typeof event into the queue.****************************************************************************/ibool _WDAPI WD_postEvent(    ulong which,    uint what,    ulong message,    ulong modifiers){    WD_event    evt;    if (count < EVENTQSIZE) {        /* Save information in event record */        evt.which = which;        evt.what = what;        evt.when = getTimeStamp();        evt.message = message;        evt.modifiers = modifiers;        addEvent(&evt);             /* Add to tail of event queue   */        return true;        }    else        return false;}/****************************************************************************PARAMETERS:mask    - Event mask to useREMARKS:Flushes all the event specified in 'mask' from the event queue.****************************************************************************/void _WDAPI WD_flushEvent(    uint mask){    WD_event    evt;    do {                            /* Flush all events */        WD_getEvent(&evt,mask);        } while (evt.what != EVT_NULLEVT);}/****************************************************************************PARAMETERS:evt     - Place to store eventmask    - Event mask to useREMARKS:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一二三四区| 色婷婷激情久久| 欧美在线免费观看亚洲| 精品国产91洋老外米糕| 男人的j进女人的j一区| 337p亚洲精品色噜噜狠狠| 日韩av高清在线观看| 自拍偷自拍亚洲精品播放| www.亚洲在线| 亚洲色图视频网站| 欧美日韩精品综合在线| 看片的网站亚洲| 日本一区二区三区国色天香| 高清成人在线观看| 亚洲色图视频网| 欧美一区二区三区成人| 国产剧情一区二区三区| 国产精品视频你懂的| 91国产精品成人| 精品在线观看视频| 国产精品区一区二区三区| 欧美主播一区二区三区| 蜜臀精品一区二区三区在线观看 | 91精品国产一区二区三区蜜臀 | 欧美成人高清电影在线| 国产成人午夜高潮毛片| 亚洲综合久久av| 精品国产91洋老外米糕| 色婷婷亚洲精品| 蜜臀a∨国产成人精品| 国产精品免费看片| 日韩一区二区在线观看| 不卡的av电影| 日本在线不卡视频| 亚洲欧美综合色| 欧美va亚洲va国产综合| 色婷婷av一区二区三区gif| 蜜桃久久精品一区二区| 国产99精品国产| 在线观看日韩电影| 丁香五精品蜜臀久久久久99网站 | 日韩精品一级中文字幕精品视频免费观看| 欧美日韩国产一区二区三区地区| 国产精品中文字幕一区二区三区| 亚洲国产精品精华液网站| 欧美精品一区二区久久婷婷| 99精品视频一区| 国产在线视视频有精品| 亚洲制服丝袜一区| 欧美mv日韩mv亚洲| 欧美性xxxxxxxx| 99国内精品久久| 国产福利一区在线观看| 日本美女一区二区三区视频| 综合久久久久久| 久久精品免费在线观看| 欧美成人a∨高清免费观看| 一本色道**综合亚洲精品蜜桃冫| 极品少妇xxxx精品少妇| 一区二区三区日韩欧美精品| 欧美国产日韩亚洲一区| 欧美成人精品3d动漫h| 在线不卡a资源高清| 97久久精品人人做人人爽50路| 激情av综合网| 青青草97国产精品免费观看无弹窗版 | 中文字幕一区二区三区不卡在线 | 免费观看久久久4p| 午夜一区二区三区视频| 亚洲欧美日韩中文字幕一区二区三区| 国产情人综合久久777777| 精品国产乱码久久久久久图片| 欧美久久久一区| 欧美色成人综合| 欧美片在线播放| 7777女厕盗摄久久久| 欧美三日本三级三级在线播放| 99久久免费视频.com| av毛片久久久久**hd| 不卡一二三区首页| 99久久er热在这里只有精品15| 9人人澡人人爽人人精品| 成人黄色电影在线 | 色又黄又爽网站www久久| 99久久99久久久精品齐齐| 99久久精品国产观看| 日本福利一区二区| 欧美三级视频在线播放| 欧美亚洲综合色| 91精品国产综合久久国产大片| 日韩美女在线视频| 国产调教视频一区| 国产精品国产成人国产三级 | 午夜伦理一区二区| 天天综合网天天综合色| 免费视频最近日韩| 国产在线精品一区二区三区不卡| 国产成人精品免费| av中文一区二区三区| 99在线热播精品免费| 色婷婷综合久久久久中文一区二区 | 欧美伊人精品成人久久综合97 | 亚洲视频一二三区| 亚洲一二三四在线观看| 免费在线观看一区| 国产成人在线看| 色欧美88888久久久久久影院| 欧美日韩情趣电影| 精品国产91乱码一区二区三区| 国产亚洲综合在线| 亚洲一级二级三级在线免费观看| 天堂一区二区在线| 国产不卡视频在线播放| 91福利视频网站| 337p日本欧洲亚洲大胆色噜噜| 国产精品女同一区二区三区| av不卡一区二区三区| 成人av午夜影院| 99久久精品国产网站| 成人开心网精品视频| 99麻豆久久久国产精品免费优播| av在线播放成人| 欧美中文字幕一区| 欧美日韩一区二区三区视频| 色婷婷香蕉在线一区二区| 一本大道久久a久久精二百| 91影视在线播放| 欧美吻胸吃奶大尺度电影| 欧美人妖巨大在线| 日韩精品影音先锋| 国产欧美综合在线观看第十页| 国产三级一区二区三区| 国产精品美女久久久久久2018 | jizzjizzjizz欧美| 色天天综合久久久久综合片| 欧美天堂一区二区三区| 日韩一卡二卡三卡| 国产亚洲精品bt天堂精选| 国产欧美1区2区3区| 亚洲欧美一区二区三区久本道91| 亚洲免费观看高清完整版在线| 亚洲在线中文字幕| 蜜桃视频第一区免费观看| 国产成人av一区二区三区在线观看| 国产成人精品免费在线| 在线国产电影不卡| 精品剧情v国产在线观看在线| 亚洲国产精品v| 亚洲伦理在线精品| 日韩国产高清影视| 日韩精品一二三| 懂色av中文字幕一区二区三区| 欧美在线三级电影| av毛片久久久久**hd| 久久久国产精品午夜一区ai换脸| 美美哒免费高清在线观看视频一区二区| 成人av在线网站| 国产精品久久久久久久久免费桃花 | 极品少妇xxxx偷拍精品少妇| 欧美精品第一页| 亚洲高清三级视频| 91蝌蚪国产九色| 亚洲精品在线三区| 蜜臀久久99精品久久久久宅男 | av男人天堂一区| 国产欧美日韩久久| 国产精品小仙女| 欧美精品一区二区三区在线播放| 欧美aaa在线| 日韩欧美国产三级电影视频| 日韩精品视频网| 欧美一区永久视频免费观看| 日韩二区三区四区| 91精品欧美福利在线观看| 日本女人一区二区三区| 欧美一区二区三区白人| 人人超碰91尤物精品国产| 日韩欧美在线不卡| 国产一区二区美女诱惑| 国产亚洲精品免费| www.色精品| 亚洲香肠在线观看| 在线不卡中文字幕| 国产自产v一区二区三区c| 久久先锋影音av鲁色资源| 国产成人一区在线| 亚洲视频在线观看一区| 欧美日韩一级视频| 欧美视频自拍偷拍| 一区二区三区四区高清精品免费观看 | 经典一区二区三区| 欧美日韩www| 亚洲高清不卡在线观看| 不卡av电影在线播放| 欧美国产乱子伦 | 精品一二三四在线| 日韩区在线观看| 久久国产精品免费| 日韩免费电影一区| 麻豆freexxxx性91精品|