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

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

?? gtsio.c

?? ge公司的dv4av4信號處理板的bsp源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
            }       
                   
        else
            (*pChan->putRcvChar) (pChan->putRcvArg, c);                   
        }  
    }


/******************************************************************************
*
* gtSioIntTx - handle a channel's transmitter-ready interrupt
*
* RETURNS: N/A
*/ 

void gtSioIntTx
    (
    GT_PORT *	pChan		/* channel generating the interrupt */
    )
    {
    char            outChar;

    /* 
     * Ack for last transmit.
     */
   
    bslSioTxIntAck(pChan->portId);

    /*
     * If there's a character to transmit then write it out. 
     */

    if ((*pChan->getTxChar) (pChan->getTxArg, &outChar) != ERROR)
        bslSioPutc(pChan->portId, outChar);
    }


/******************************************************************************
*
* gtSioTxStartup - start the interrupt transmitter
*
* RETURNS: OK on success, ENOSYS if the device is polled-only, or
* EIO on hardware error.
*/

LOCAL int gtSioTxStartup
    (
    SIO_CHAN * pSioChan                 /* channel to start */
    )
    {
    GT_PORT * pChan = (GT_PORT *)pSioChan;
    char   outChar;

    /*
     * Enable tx interrupts.  We won't get an interrupt until the 
     * TX operation is done.  Then start a single character output.
     */

    if (((*pChan->getTxChar) (pChan->getTxArg, &outChar) != ERROR) &&
       (bslSioTxReady(pChan->portId) == 1))
	{
	     bslSioTxIntEnable (pChan->portId);
        bslSioPutc(pChan->portId, outChar);
	}

    return (OK);
    }

/******************************************************************************
*
* gtSioCallbackInstall - install ISR callbacks to get/put chars
*
* This driver allows interrupt callbacks for transmitting characters
* and receiving characters. In general, drivers may support other
* types of callbacks too.
*
* RETURNS: OK on success, or ENOSYS for an unsupported callback type.
*/ 

LOCAL int gtSioCallbackInstall
    (
    SIO_CHAN *	pSioChan,               /* channel */
    int		callbackType,           /* type of callback */
    STATUS	(*callback)(void *, ...),          /* callback */
    void *      callbackArg             /* parameter to callback */
    )
    {
    GT_PORT * pChan = (GT_PORT *)pSioChan;

    switch (callbackType)
	{
	case SIO_CALLBACK_GET_TX_CHAR:
	    pChan->getTxChar	= (void *)callback;
	    pChan->getTxArg	= callbackArg;
	    return (OK);

	case SIO_CALLBACK_PUT_RCV_CHAR:
	    pChan->putRcvChar	  = (void *)callback;
	    pChan->putRcvArg	     = callbackArg;
       pChan->savePutRcvChar = pChan->putRcvChar;
       pChan->savePutRcvArg  = pChan->putRcvArg;
       return (OK);

	default:
	    return (ENOSYS);
	}
    }

/*******************************************************************************
*
* gtSioPollOutput - output a character in polled mode
*
* RETURNS: OK if a character arrived, EIO on device error, EAGAIN
* if the output buffer if full. ENOSYS if the device is
* interrupt-only.
*/

LOCAL int gtSioPollOutput
    (
    SIO_CHAN *	pSioChan,
    char	outChar
    )
    {
    GT_PORT * pChan = (GT_PORT *)pSioChan;

    /* is the transmitter ready to accept a character? */

    if (bslSioTxReady(pChan->portId) != 1)
	    return (EAGAIN);

    /* write out the character */

    bslSioPutc(pChan->portId, outChar);

    return (OK);
    }

/******************************************************************************
*
* gtSioPollInput - poll the device for input
*
* RETURNS: OK if a character arrived, EIO on device error, EAGAIN
* if the input buffer if empty, ENOSYS if the device is
* interrupt-only.
*/

LOCAL int gtSioPollInput
    (
    SIO_CHAN *	pSioChan,
    char *	thisChar
    )
    {
    GT_PORT * pChan = (GT_PORT *)pSioChan;
    int	status;

    status = bslSioGetc(pChan->portId);

    if (status == -1)
	    return (EAGAIN);	/* no input available at this time */

    else
        *thisChar = (char)status;

    return (OK);
    }

/******************************************************************************
*
* gtSioModeSet - toggle between interrupt and polled mode
*
* RETURNS: OK on success, EIO on unsupported mode.
*/

LOCAL int gtSioModeSet
    (
    GT_PORT * pChan,    /* channel */
    uint_t    newMode   /* new mode */
    )
    {

    if ((newMode != SIO_MODE_POLL) && (newMode != SIO_MODE_INT))
	return (EIO);

    /* Don't enter interrupt mode unless it is allowed. */

    if ((newMode == SIO_MODE_INT) && (!gtIntrMode))
	return (EIO);

    /* set the new mode */

    pChan->mode = newMode;

    if (pChan->mode == SIO_MODE_INT)
	{
        bslSioRxIntEnable(pChan->portId);
        bslSioTxIntEnable(pChan->portId);
	}
    else
	{
        bslSioRxIntDisable(pChan->portId);
        bslSioTxIntDisable(pChan->portId);
	}

    return (OK);
    }


/******************************************************************************
*
* gtSioOptSet - set hardware options
*
* This routine sets up the hardware according to the specified option
* argument.  If the hardware cannot support a particular option value, 
* this function ignores that portion of the request.
*
* Currently no options are supported.
*
* RETURNS: OK upon success, or EIO for invalid arguments.
*/

LOCAL int gtSioOptSet
    (
    GT_PORT * pChan,		/* channel */
    uint_t	    newOpts          	/* new options */
    )
    {
    return (OK);
    }

/*******************************************************************************
*
* gtSioIoctl - 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).
*
* RETURNS: OK on success, ENOSYS on unsupported request, EIO on failed
* request.
*/

LOCAL int gtSioIoctl
    (
    SIO_CHAN *	pSioChan,		/* device to control */
    int		request,		/* request code */
    void *	someArg			/* some argument */
    )
    {
    GT_PORT *pChan = (GT_PORT *) pSioChan;
    int     arg = (int)someArg;

    switch (request)
    {
    case SIO_BAUD_SET:
        /* Set baud rate. Return EIO for invalid baud rate.  */
        if (arg < GT_BAUD_MIN || arg > GT_BAUD_MAX)
            return (EIO);
        pChan->baud = arg;
        return (OK);

    case SIO_BAUD_GET:
        /* Get the baud rate and return OK */
        *(int *)arg = pChan->baud;
        return (OK);

    case SIO_MODE_SET:
        /*
         * Set the mode (e.g., to interrupt or polled). Return OK
         * or EIO for an unknown or unsupported mode.
         */
        return (gtSioModeSet (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 hardware options (as defined
	     * in sioLib.h).
	     */
        return (gtSioOptSet (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:
        return (ENOSYS);

    case SIO_OPEN:
        return (ENOSYS); /* always open */
        
    case SIO_SHMUART_CHAR:
        pChan->rxRoute = (void *) arg; 
	     return (OK); 

    case SIO_ROUTE_SET:
        pChan->setRoute = (void *) arg; 
        return (OK);
        
    default:
        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一区二区三区免费野_久草精品视频
亚洲精品视频免费看| 欧美日韩视频在线一区二区| 日韩精品一级中文字幕精品视频免费观看| 国产精品色婷婷| 国产亚洲欧美一区在线观看| 欧美大尺度电影在线| 欧美大尺度电影在线| 日韩情涩欧美日韩视频| 日韩午夜精品视频| 久久久一区二区三区捆绑**| 精品国产精品一区二区夜夜嗨| 在线不卡免费av| 欧美一区二区成人| 精品sm在线观看| 国产精品日韩精品欧美在线| 国产精品成人免费在线| 国产精品久久久久久久岛一牛影视 | 中文字幕欧美三区| 国产精品私房写真福利视频| 国产精品三级av| 一区二区三区色| 日本成人中文字幕| 国产98色在线|日韩| 91免费观看国产| 69堂亚洲精品首页| 久久久久综合网| 亚洲天堂精品在线观看| 午夜久久电影网| 国产91丝袜在线观看| 色综合咪咪久久| 日韩欧美中文字幕制服| 亚洲国产精品av| 日韩黄色在线观看| 播五月开心婷婷综合| 51精品久久久久久久蜜臀| 久久久91精品国产一区二区精品 | 91麻豆精品国产无毒不卡在线观看| 精品女同一区二区| 日韩美女视频一区| 日本欧美一区二区在线观看| 成人动漫中文字幕| 56国语精品自产拍在线观看| 欧美国产禁国产网站cc| 天天操天天干天天综合网| 国产mv日韩mv欧美| 日韩免费在线观看| 亚洲一级二级三级在线免费观看| 九九精品视频在线看| 欧美性大战久久久久久久蜜臀| 精品国产区一区| 亚洲视频综合在线| 国产精品一区二区三区乱码| 91传媒视频在线播放| 国产欧美日韩在线视频| 日本不卡视频在线观看| 一本大道久久a久久综合婷婷 | 国产精品夜夜爽| 欧美日韩激情在线| 亚洲色图第一区| 国产成人免费视频一区| 日韩女优av电影| 午夜一区二区三区在线观看| www.日本不卡| 中文字幕av在线一区二区三区| 免费高清在线一区| 欧美精品在线一区二区三区| 亚洲免费观看高清在线观看| 成人免费电影视频| 国产日产精品一区| 国产高清不卡一区二区| 精品精品国产高清a毛片牛牛| 日韩国产一二三区| 欧美酷刑日本凌虐凌虐| 亚洲成av人片一区二区三区| 色婷婷综合视频在线观看| 国产精品盗摄一区二区三区| 成人18视频日本| 国产精品国产a级| 北岛玲一区二区三区四区| 久久久噜噜噜久久中文字幕色伊伊| 久久狠狠亚洲综合| 久久一二三国产| 国产高清精品网站| 国产精品国产成人国产三级 | 综合久久久久久| 99精品视频在线免费观看| 亚洲人成伊人成综合网小说| 99国产精品久| 亚洲综合色婷婷| 欧美久久久久免费| 免费成人在线播放| 国产日韩影视精品| 91色婷婷久久久久合中文| 亚洲欧美日韩精品久久久久| 色94色欧美sute亚洲线路二| 一级特黄大欧美久久久| 欧美另类久久久品| 久久99热这里只有精品| 国产精品久久三| 欧美亚洲动漫精品| 美女一区二区三区在线观看| 国产日韩高清在线| 在线观看国产精品网站| 日韩精品亚洲一区二区三区免费| 欧美mv日韩mv亚洲| 成人91在线观看| 日韩成人一级大片| 亚洲欧美自拍偷拍色图| 欧美精品一二三| 国产精品亚洲一区二区三区妖精 | 欧美高清dvd| 国产成人亚洲综合色影视| 一区二区三区欧美激情| 欧美成va人片在线观看| 91亚洲大成网污www| 久久国产免费看| 亚洲美女屁股眼交3| 精品国精品国产| 日本韩国欧美三级| 韩国精品免费视频| 午夜精品一区二区三区电影天堂| 欧美激情一区二区在线| 欧美一级生活片| 91国偷自产一区二区三区观看 | 久久综合精品国产一区二区三区| av电影一区二区| 狠狠色丁香婷综合久久| 亚洲图片一区二区| 国产精品成人一区二区艾草| 精品99999| 7777精品伊人久久久大香线蕉| 99久久精品国产导航| 激情综合五月婷婷| 日韩 欧美一区二区三区| 亚洲精品写真福利| 中文字幕一区二区三区乱码在线 | 日本一区二区三区在线不卡| 欧美人体做爰大胆视频| 91女神在线视频| 成人一区二区三区在线观看| 免费看日韩精品| 午夜免费久久看| 亚洲图片欧美综合| 亚洲国产中文字幕| 亚洲激情第一区| 亚洲视频狠狠干| 国产精品久久久久久妇女6080| 欧美精品一区二区三区很污很色的 | 亚洲色图清纯唯美| 国产精品国产三级国产专播品爱网 | 亚洲制服丝袜av| 尤物在线观看一区| 一区二区三区欧美久久| 夜夜嗨av一区二区三区| 一区二区三区在线视频观看| 亚洲欧美激情小说另类| 国产精品夫妻自拍| 一区二区三区中文字幕在线观看| 亚洲男同性恋视频| 亚洲高清视频中文字幕| 午夜精品久久久久久| 日本大胆欧美人术艺术动态| 亚洲欧美在线高清| 在线免费av一区| 91老师国产黑色丝袜在线| 972aa.com艺术欧美| 99精品国产热久久91蜜凸| 91黄色免费观看| 精品视频一区二区不卡| 欧美一级二级三级蜜桃| 精品欧美一区二区久久| 欧美激情综合五月色丁香| 自拍偷拍亚洲综合| 亚洲大型综合色站| 精品在线你懂的| 粉嫩嫩av羞羞动漫久久久| 色综合天天综合网天天狠天天| 色视频成人在线观看免| 91精品国产综合久久香蕉的特点| 日韩亚洲欧美高清| 国产精品萝li| 亚洲二区在线观看| 国产尤物一区二区| 色老头久久综合| 日韩一区二区在线看片| 国产精品美女久久久久aⅴ国产馆| 亚洲少妇中出一区| 在线播放日韩导航| 天天色 色综合| 久久国产免费看| 国产成人免费9x9x人网站视频| 成人免费高清在线观看| 欧美日韩不卡视频| 国产免费成人在线视频| 日韩在线卡一卡二| 成人激情视频网站| 欧美一区二区三区在线视频| 国产精品三级在线观看| 日韩福利视频导航| 一本到一区二区三区|