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

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

?? event.svga

?? u-boot-1.1.6 源碼包
?? 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一区二区三区免费野_久草精品视频
欧美日韩在线精品一区二区三区激情| 欧美日韩五月天| 亚洲第一福利视频在线| 精品国产免费视频| 在线观看日韩高清av| 国产99久久久国产精品潘金 | 在线播放91灌醉迷j高跟美女 | 国产精品久久久爽爽爽麻豆色哟哟| 欧美亚洲国产一卡| 国产乱码精品一品二品| 亚洲mv在线观看| 中文字幕一区二区三| 亚洲精品一区二区三区福利| 欧美性猛交一区二区三区精品| 懂色av一区二区三区免费观看| 丝袜美腿一区二区三区| 国产精品不卡在线观看| 国产午夜久久久久| 日韩精品中文字幕一区二区三区 | 日韩精品1区2区3区| 日韩毛片精品高清免费| 国产婷婷色一区二区三区| 日韩亚洲欧美中文三级| 在线播放视频一区| 欧美日韩免费观看一区三区| 91丨九色丨国产丨porny| 国产成人免费视频网站 | 毛片不卡一区二区| 午夜视频一区二区| 亚洲激情自拍偷拍| 亚洲乱码国产乱码精品精小说 | 国产欧美日本一区视频| 欧美大片顶级少妇| 日韩视频永久免费| 91精品国产入口在线| 欧美亚一区二区| 在线免费观看不卡av| 91久久精品一区二区| 性欧美疯狂xxxxbbbb| 一区二区三区在线免费播放| 亚洲图片欧美激情| 一区二区三区四区蜜桃| 91精品国产综合久久国产大片| 欧美探花视频资源| 欧美日韩国产一级二级| 欧美美女直播网站| 91精品在线免费| 欧美成人激情免费网| 久久尤物电影视频在线观看| 久久综合色综合88| 国产日韩欧美精品一区| 中文字幕免费一区| 亚洲精品视频在线| 亚洲高清免费视频| 蜜臀91精品一区二区三区 | 亚洲成a人v欧美综合天堂下载| 艳妇臀荡乳欲伦亚洲一区| 一区二区三区四区视频精品免费 | 麻豆国产精品视频| 韩国成人在线视频| 成人精品视频一区二区三区| 97国产一区二区| 欧美视频在线不卡| 日韩一级大片在线观看| 国产日韩欧美一区二区三区综合| 亚洲欧洲三级电影| 日本亚洲三级在线| 国产精品一区二区果冻传媒| 成人高清av在线| 欧美影院一区二区三区| 日韩视频一区二区三区| 2021久久国产精品不只是精品| 国产精品乱人伦| 亚洲一区二区四区蜜桃| 老司机免费视频一区二区| 成人国产免费视频| 欧美日韩一级片网站| 久久亚洲一区二区三区四区| 亚洲欧洲日产国产综合网| 视频一区中文字幕国产| 懂色中文一区二区在线播放| 欧美无乱码久久久免费午夜一区| 精品国内片67194| 亚洲精品乱码久久久久| 麻豆精品新av中文字幕| caoporn国产精品| 制服丝袜中文字幕亚洲| 欧美国产亚洲另类动漫| 午夜欧美一区二区三区在线播放| 国产一二三精品| 欧美日本国产一区| 欧美激情综合五月色丁香| 日韩黄色免费网站| 91蜜桃网址入口| 26uuu亚洲婷婷狠狠天堂| 亚洲一二三专区| 成人av免费网站| 欧美不卡在线视频| 午夜伊人狠狠久久| 成人av在线资源网站| 日韩免费电影一区| 亚洲影院理伦片| 成人黄色小视频在线观看| 日韩欧美中文字幕一区| 亚洲最新视频在线观看| 高清视频一区二区| 日韩精品一区二| 亚洲不卡av一区二区三区| 9l国产精品久久久久麻豆| 26uuu国产一区二区三区| 午夜视频在线观看一区二区 | 日韩一区二区三区电影 | 日本成人在线一区| 色www精品视频在线观看| 亚洲国产电影在线观看| 国产一区二三区好的| 在线成人小视频| 日韩欧美在线一区二区三区| 亚洲18女电影在线观看| 色综合咪咪久久| 国产精品视频一二三| 国产高清一区日本| 日韩欧美专区在线| 久久久久亚洲综合| 精品一区二区三区在线观看国产 | 欧美日韩国产123区| 亚洲高清免费观看高清完整版在线观看| av亚洲精华国产精华精华| 欧美国产欧美亚州国产日韩mv天天看完整| 久久www免费人成看片高清| 9191精品国产综合久久久久久| 亚洲成av人在线观看| 欧美优质美女网站| 亚洲综合视频在线| 欧美性猛片aaaaaaa做受| 亚洲一区在线播放| 欧美久久高跟鞋激| 午夜精品久久久久| 制服丝袜在线91| 另类欧美日韩国产在线| 国产成人夜色高潮福利影视| 久久精品一区蜜桃臀影院| 国产乱人伦精品一区二区在线观看| 精品久久一二三区| 国产精品自拍三区| 国产精品夫妻自拍| 在线欧美日韩国产| 蜜臀精品一区二区三区在线观看| 日韩一区二区在线看| 国产伦精品一区二区三区在线观看| 久久免费电影网| 成人午夜激情视频| 亚洲美女视频在线观看| 捆绑调教美女网站视频一区| 精品不卡在线视频| 高清国产一区二区| 亚洲日本一区二区三区| 欧美伊人精品成人久久综合97 | 看电视剧不卡顿的网站| 精品国产一区二区精华| 成人在线视频首页| 一区二区三区日韩| 日韩免费在线观看| av一区二区不卡| 2024国产精品| 91在线精品一区二区| 亚洲高清一区二区三区| 久久综合九色综合欧美98| caoporen国产精品视频| 亚洲一区二区欧美| 久久久久久久久久久久电影 | 一区二区三区日韩精品| 日韩欧美综合一区| av网站一区二区三区| 天堂资源在线中文精品| 99re成人在线| 日本麻豆一区二区三区视频| 国产欧美日韩精品一区| 欧美影院一区二区| 国产成人自拍网| 亚洲国产精品一区二区尤物区| 久久一区二区视频| 欧美日韩一区二区电影| 福利一区二区在线| 亚洲成人av一区二区三区| 欧美高清一级片在线观看| 7799精品视频| www.欧美.com| 韩国女主播成人在线| 欧美一区二区三区人| 99久久国产免费看| 免费观看日韩电影| 亚洲区小说区图片区qvod| 欧美一级精品大片| 欧美性一二三区| 白白色 亚洲乱淫| 国内精品国产三级国产a久久| 亚洲美女视频一区| 国产人伦精品一区二区| 日韩女优视频免费观看|