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

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

?? sngks32csio.c

?? tornado開發 三星s3c44b0x開發板 bsp
?? C
?? 第 1 頁 / 共 2 頁
字號:
    /* Don't enter interrupt mode unless it is allowed. */    if ((newMode == SIO_MODE_INT) && (!sngks32cIntrMode))    return (EIO);    /* set the new mode */    pChan->mode = newMode;    if (pChan->mode == SIO_MODE_INT)        {                SNGKS32C_SIO_REG_READ(pChan, SNGKS32C_UCON, temp);        temp &=UCON_RX_TX_RESET;    /**Reset RX and TX mode bits*/        temp |= (UCON_RX|UCON_TX);        SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UCON, temp);        intEnable(pChan->intLevelRx);        }    else        {        SNGKS32C_SIO_REG_READ(pChan, SNGKS32C_UCON, temp);        temp &=UCON_RX_TX_RESET;    /**Reset RX and TX mode bits*/        temp |= (UCON_RX|UCON_TX);        SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UCON, temp);        intDisable (pChan->intLevelTx);        intDisable (pChan->intLevelRx);        }        return (OK);    }/********************************************************************************* sngks32cHup - hang up the modem control lines ** Resets the RTS and DTR signals.** RETURNS: OK*/LOCAL STATUS sngks32cHup    (    SNGKS32C_CHAN * pChan     /* pointer to channel */    )    {    FAST int     oldlevel;    /* current interrupt level mask */    oldlevel = intLock ();    /* set RTS and DTR low *//*    SNGKS32C_SIO_REG_WRITE(pChan, SNGKS32C_USTAT, USTAT_DTR_LOW);            */    intUnlock (oldlevel);    return (OK);    }    /********************************************************************************* sngks32cOpen - Set the modem control lines ** Set the modem control lines(RTS, DTR) TRUE if not already set.  ** RETURNS: OK*/LOCAL STATUS sngks32cOpen    (    SNGKS32C_CHAN * pChan     /* pointer to channel */    )    {    FAST int     oldlevel;    /* current interrupt level mask */    oldlevel = intLock ();    /* set RTS and DTR active *//*    SNGKS32C_SIO_REG_WRITE(pChan, SNGKS32C_USTAT, USTAT_DTR_HIGH);    */    intUnlock (oldlevel);    return (OK);    }/******************************************************************************** sngks32cOptSet - set hardware options** This routine sets up the hardware according to the specified option* argument.  If the hardware cannot support a particular option value, then* it should ignore that portion of the request.** RETURNS: OK upon success, or EIO for invalid arguments.*/LOCAL int sngks32cOptSet    (    SNGKS32C_CHAN * pChan,        /* channel */    uint_t    newOpts              /* new options */    )    {            UINT8 dataBits = 0x03;    UINT8 stopBits = 0x00;    BOOL hdweFlowCtrl=TRUE;    BOOL rcvrEnable = TRUE;    int  lvl;    UINT8 temp=PARITY_NONE;    UINT32 result;        if (pChan == NULL || newOpts & 0xffffff00)    return EIO;    /* do nothing if options already set */    if (pChan->options == newOpts)    return OK;    /* ignore requests for unsupported options */    /* decode individual request elements */    switch (newOpts & CSIZE)    {    case CS5:        dataBits = 0x00; break;    case CS6:        dataBits = 0x01; break;    case CS7:        dataBits = 0x02; break;    default:    case CS8:        dataBits = 0x03; break;    }    if (newOpts & STOPB)        stopBits = 0x04;    else        stopBits = 0x00;    switch (newOpts & (PARENB|PARODD))    {    case PARENB|PARODD:        /* enable odd parity */            temp=PARITY_ODD;        break;    case PARENB:        /* enable even parity */        temp=PARITY_EVEN;         break;    case PARODD:        /* invalid mode, not normally used. */        break;    default:    case 0:        temp=PARITY_NONE ;/* no parity */        break;    }    if (newOpts & CLOCAL)    {        /* clocal disables hardware flow control */        hdweFlowCtrl = FALSE;    }    if ((newOpts & CREAD) == 0)        rcvrEnable = FALSE;    lvl = intLock ();    /*     * Reset the device according to dataBits, stopBits, hdweFlowCtrl,     * rcvrEnable, and parity selections.     */        SNGKS32C_SIO_REG_READ(pChan, SNGKS32C_ULCON, result);        SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_ULCON,(result|dataBits|temp|stopBits));        intUnlock (lvl);    pChan->options = newOpts;    return (OK);    }/********************************************************************************* sngks32cIoctl - special device control** This routine handles the IOCTL messages from the user. It supports commands * to get/set baud rate, mode(INT,POLL), hardware options(parity, number of * data bits) and modem control(RTS/CTS and DTR/DSR handshakes).* The ioctl commands SIO_HUP and SIO_OPEN are used to implement the HUPCL(hang* up on last close) function.** As on a UNIX system, requesting a baud rate of zero is translated into* a hangup request.  The DTR and RTS lines are dropped.  This should cause* a connected modem to drop the connection.  The SIO_HUP command will only* hangup if the HUPCL option is active.  The SIO_OPEN function will raise* DTR and RTS lines whenever it is called. Use the BAUD_RATE=0 function* to hangup when HUPCL is not active.** The CLOCAL option will disable hardware flow control.  When selected,* hardware flow control is not used.  When not selected hardware flow control* is based on the RTS/CTS signals.  CTS is the clear to send input* from the other end.  It must be true for this end to begin sending new* characters.  In most drivers, the RTS signal will be assumed to be connected* to the opposite end's CTS signal and can be used to control output from* the other end.  Raising RTS asserts CTS at the other end and the other end* can send data.  Lowering RTS de-asserts CTS and the other end will stop* sending data. (This is non-EIA defined use of RTS).** RETURNS: OK on success, ENOSYS on unsupported request, EIO on failed* request.*/LOCAL int sngks32cIoctl    (    SIO_CHAN *    pSioChan,        /* device to control */    int        request,        /* request code */    void *    someArg            /* some argument */    )    {    SNGKS32C_CHAN *pChan = (SNGKS32C_CHAN *) pSioChan;    int     oldlevel;        /* current interrupt level mask */    int     arg = (int)someArg;        switch (request)    {    case SIO_BAUD_SET:        /*         * like unix, a baud request for 0 is really a request to         * hangup.         */        if (arg == 0)        return sngks32cHup (pChan);        /*         * Set the baud rate. Return EIO for an invalid baud rate, or         * OK on success.         */        if (arg < SNGKS32C_BAUD_MIN || arg > SNGKS32C_BAUD_MAX)            {        return (EIO);            }        /* Calculate the baud rate constant for the new baud rate */            switch(arg)                {                case 300:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_300|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 600:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_600|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                                    	                case 1200:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_1200|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 2400:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_2400|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 4800:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_4800|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 9600:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_9600|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 19200:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_19200|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 38400:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_38400|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 57600:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_57600|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 115200:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_115200|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 230400:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_230400|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 460800:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    SNGKS32C_SIO_REG_WRITE(pChan,SNGKS32C_UBRDIV,SNGKS32C_CNT0_460800|SNGKS32C_CNT1_VAL);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                          default:                    return(EIO);                }            break;    case SIO_BAUD_GET:            /* Get the baud rate and return OK */            *(int *)arg = pChan->baudRate;            break;    case SIO_MODE_SET:        /*         * Set the mode (e.g., to interrupt or polled). Return OK         * or EIO for an unknown or unsupported mode.         */        return (sngks32cModeSet (pChan, arg));    case SIO_MODE_GET:                    /* Get the current mode and return OK.  */        *(int *)arg = pChan->mode;        return (OK);    case SIO_AVAIL_MODES_GET:        /* Get the available modes and return OK.  */        *(int *)arg = SIO_MODE_INT | SIO_MODE_POLL;         return (OK);    case SIO_HW_OPTS_SET:        /*         * Optional command to set the hardware options (as defined         * in sioLib.h).         * Return OK, or ENOSYS if this command is not implemented.         * Note: several hardware options are specified at once.         * This routine should set as many as it can and then return         * OK. The SIO_HW_OPTS_GET is used to find out which options         * were actually set.         */        return (sngks32cOptSet (pChan, arg));    case SIO_HW_OPTS_GET:        /*         * Optional command to get the hardware options (as defined         * in sioLib.h). Return OK or ENOSYS if this command is not         * implemented.  Note: if this command is unimplemented, it         * will be assumed that the driver options are CREAD | CS8         * (e.g., eight data bits, one stop bit, no parity, ints enabled).         */        *(int *)arg = pChan->options;        return (OK);    case SIO_HUP:            /* check if hupcl option is enabled */            if (pChan->options & HUPCL)                 return (sngks32cHup (pChan));            return (OK);    case SIO_OPEN:            return (sngks32cOpen (pChan)); /* always open */    default:        return (ENOSYS);    }    return (ENOSYS);    }/********************************************************************************* dummyCallback - dummy callback routine** RETURNS: ERROR.*/LOCAL STATUS dummyCallback (void)    {    return (ERROR);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线欧美小视频| 日韩欧美一区电影| 免费xxxx性欧美18vr| 精品国产青草久久久久福利| 色哟哟一区二区| 狠狠久久亚洲欧美| 亚洲精品国产视频| 国产日韩精品久久久| 丝袜亚洲精品中文字幕一区| 日韩一级高清毛片| 精品成人一区二区三区四区| 日日夜夜精品视频天天综合网| 国产成人aaa| 亚洲欧美日韩一区二区| 国产精品自拍毛片| 精品国产乱码久久久久久免费 | 成+人+亚洲+综合天堂| 亚洲男人电影天堂| 国产精品视频免费| 中文字幕视频一区| 欧美电影免费观看高清完整版在 | 日韩视频一区在线观看| 成人免费高清在线| 国产精品一级在线| 亚洲资源在线观看| 亚洲成人精品影院| 亚洲在线成人精品| 亚洲最大色网站| 亚洲色图欧美偷拍| 中文字幕一区免费在线观看| 久久精品夜色噜噜亚洲aⅴ| 欧美mv日韩mv亚洲| www久久精品| 久久精品欧美一区二区三区不卡| 精品国产一二三区| 欧美精品一区二区久久久| 91蜜桃传媒精品久久久一区二区| 国产一区二区剧情av在线| 欧美日韩综合不卡| 91污在线观看| 国产精品亚洲成人| 亚洲精品视频在线看| 亚洲乱码中文字幕| 五月综合激情日本mⅴ| 首页国产欧美久久| 黑人巨大精品欧美一区| 国产精品亚洲第一区在线暖暖韩国 | 成人网页在线观看| 国产高清在线精品| 男女男精品视频| 国产精品99久久久| 成人免费三级在线| 日本高清不卡aⅴ免费网站| 欧美丝袜丝交足nylons图片| 91精品国产色综合久久ai换脸| 欧美mv日韩mv亚洲| 在线综合+亚洲+欧美中文字幕| 欧美三级中文字幕在线观看| 91精品国产色综合久久久蜜香臀| 久久久久国产精品麻豆| 中文字幕视频一区二区三区久| 亚洲观看高清完整版在线观看 | 欧美日韩成人激情| 精品捆绑美女sm三区| 久久精品一区二区三区四区| 亚洲风情在线资源站| 精一区二区三区| 色婷婷综合视频在线观看| 国产一区二区三区不卡在线观看| 成人中文字幕合集| 884aa四虎影成人精品一区| 国产午夜精品久久久久久免费视| 国产精品青草久久| 久久国产精品露脸对白| 成人精品gif动图一区| 欧美一区二区三区公司| 国产精品色噜噜| 亚洲高清中文字幕| 本田岬高潮一区二区三区| 欧美人牲a欧美精品| 中文字幕在线一区免费| 一区二区三区av电影 | 国产午夜精品在线观看| 亚洲成人av免费| 94-欧美-setu| 欧美精品一区在线观看| 国产乱码一区二区三区| 中文字幕永久在线不卡| 色欧美88888久久久久久影院| 亚洲日本乱码在线观看| 欧美日韩午夜在线视频| 美女视频黄a大片欧美| 久久精品亚洲麻豆av一区二区| 国产盗摄一区二区三区| 亚洲人成影院在线观看| 欧美日韩国产系列| 国产一区中文字幕| 亚洲精品写真福利| 欧美成人在线直播| 成人国产精品免费观看| 日韩精品一二三四| 国产清纯白嫩初高生在线观看91 | 亚洲国产精品一区二区www在线| 欧美日韩一级黄| 国产精品乡下勾搭老头1| 亚洲精品美国一| 日韩欧美精品在线视频| 92国产精品观看| 麻豆91精品视频| 亚洲欧美韩国综合色| 日韩一区二区三区在线观看| 国产v日产∨综合v精品视频| 亚洲一区二区三区在线播放| 欧美精品一区二区蜜臀亚洲| 欧美亚州韩日在线看免费版国语版| 精品一区中文字幕| 一区二区三区国产豹纹内裤在线| 精品国产免费人成在线观看| 欧美三级三级三级| av电影天堂一区二区在线观看| 日韩av一区二区三区| 国产精品久久福利| 久久久青草青青国产亚洲免观| 精品视频一区三区九区| 成人av综合一区| 国产一区二区视频在线| 日本不卡一区二区| 亚洲精品v日韩精品| 国产日韩欧美高清| 精品国产3级a| 日韩欧美国产1| 91精品国产色综合久久不卡蜜臀 | 自拍偷拍国产精品| 久久综合久久鬼色| 日韩欧美一区二区免费| 欧美日韩在线一区二区| 91美女片黄在线观看91美女| 成人激情小说乱人伦| 成人性生交大片免费看中文网站 | 中文字幕永久在线不卡| 国产人伦精品一区二区| 久久欧美中文字幕| 久久久九九九九| 精品国产一区二区三区久久影院 | 午夜精品久久久久| 亚洲一区在线免费观看| 夜夜揉揉日日人人青青一国产精品 | 欧美精品一区二区三区蜜桃| 日韩欧美一二区| 精品久久久久一区| 日韩精品一区二区三区四区视频| 欧美人牲a欧美精品| 欧美精品久久天天躁| 91精选在线观看| 日韩一级二级三级| 亚洲精品一线二线三线无人区| 日韩欧美自拍偷拍| 久久久久青草大香线综合精品| 久久久噜噜噜久噜久久综合| 亚洲国产高清不卡| 成人欧美一区二区三区白人| 中文字幕一区二| 亚洲一区二区精品久久av| 亚洲chinese男男1069| 偷拍与自拍一区| 久久国产精品99久久人人澡| 国产乱码字幕精品高清av| 成人午夜电影网站| 欧美自拍丝袜亚洲| 欧美一级搡bbbb搡bbbb| 欧美精品一区二区三区四区 | 2020国产精品久久精品美国| 国产午夜亚洲精品理论片色戒| 国产精品电影一区二区| 亚洲综合激情小说| 日韩av在线播放中文字幕| 国内成人精品2018免费看| 成人av影视在线观看| 欧美日韩美女一区二区| 欧美变态tickle挠乳网站| 国产欧美日韩在线看| 亚洲一区二区三区在线播放| 精品一区二区三区香蕉蜜桃| 99这里只有精品| 欧美一级久久久久久久大片| 国产日韩精品一区二区三区在线| 亚洲综合视频网| 国产精品羞羞答答xxdd| 欧美三级乱人伦电影| 久久久www成人免费毛片麻豆| 亚洲精品日韩综合观看成人91| 五月天精品一区二区三区| 国产麻豆午夜三级精品| 欧美三级欧美一级| 中文字幕av资源一区| 亚洲欧美另类久久久精品2019| 日韩精品一级中文字幕精品视频免费观看 | 欧美成人a视频| 一级特黄大欧美久久久| 国产aⅴ精品一区二区三区色成熟|