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

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

?? dio_tsk.c

?? ti的驅動程序例程
?? C
字號:
/*
 *  Copyright 2003 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/* "@(#) DDK 1.10.00.23 07-02-03 (ddk-b12)" */
/*
 *  ======== dio_tsk.c ========
 *  SEM based functions of DIO.
 *
 */

#include <std.h>

#include <dev.h>
#include <que.h>
#include <sem.h>
#include <sys.h>

#include <iom.h>
#include <dio.h>

Int     DIO_tskIdle(DEV_Handle device, Bool flush);
Int     DIO_tskIssue(DEV_Handle device);
Bool    DIO_tskReady(DEV_Handle device, SEM_Handle sem);
Int     DIO_tskReclaim(DEV_Handle device);
Void    DIO_tskCallback(Ptr devp, DEV_Frame *frame);

/*
 *  ======== DIO_tskCallback ========
 */
Void DIO_tskCallback(Ptr devp, DEV_Frame *frame)
{
    DEV_Handle  device = (DEV_Handle)devp;
    DIO_Handle  dio = (DIO_Handle)device->object;

    if (frame->cmd == IOM_READ || frame->cmd == IOM_WRITE) {
        QUE_put(device->fromdevice, frame); 

        SEM_post(dio->context.sems.complete);

        /*
         * If semaphore was registered with DIO_ready(), dio->ready will
         * be non-NULL.  In this case, SIO_select() is probably waiting for
         * this semaphore to be posted by the first ready device.
         */
        if (dio->context.sems.ready) {
            SEM_post(dio->context.sems.ready);
        }
    }
    else {
        SEM_post(dio->context.sems.complete);
    }
}

/*
 *  ======== DIO_tskIdle ========
 *  DIO_tskIdle() puts the device back to the state it was in just after
 *  DIO_open() was called.
 */
Int DIO_tskIdle(DEV_Handle device, Bool flush)
{
    DIO_Handle dio = (DIO_Handle)device->object;
    Uns         pendCount = 0;
    DEV_Frame   localFrame;
    Int         status;

    localFrame.status = IOM_PENDING;

    if (device->mode == DEV_INPUT || flush) {
        localFrame.cmd = IOM_ABORT;
    }
    else {
        localFrame.cmd = IOM_FLUSH;
    }

    status = dio->fxns->mdSubmitChan(dio->chanp, &localFrame);

    if (status == IOM_PENDING) {
        for (;;) {
            if (SEM_pend(dio->context.sems.complete, device->timeout)) {
                /*
                 * Break out of the for loop when the local abort/flush
                 * frame status shows that it is complete.
                 */
                if (localFrame.status == IOM_COMPLETED) {
                    break;
                }
                else {
                    /* keep track of data frame completions */
                    pendCount++;
                }
            }
            else {
                return (SYS_ETIMEOUT);
            }
        }

        /* 
         * Update complete semaphore so it corresponds to number of frames
         * on the 'todevice' queue.  'for' loop above may have made the 
         * complete sem count inconsistent.
         */
        while (pendCount--) {
            SEM_post(dio->context.sems.complete);
        }
    }

    return (SYS_OK);
}

/*
 *  ======== DIO_tskIssue ========
 */
Int DIO_tskIssue(DEV_Handle device)
{
    DIO_Handle dio = (DIO_Handle)device->object;
    DEV_Frame   *frame;
    Int         status;

    frame = QUE_get(device->todevice);

    frame->cmd = (device->mode == DEV_INPUT) ? IOM_READ : IOM_WRITE;
    frame->status = IOM_PENDING;

    status = dio->fxns->mdSubmitChan(dio->chanp, frame);

    if (status < 0) {
        return (SYS_EBADIO);
    }
    else {
        if (status == IOM_COMPLETED) {
            QUE_put(device->fromdevice, frame);
            SEM_post(dio->context.sems.complete);
        }
        
        return (SYS_OK);
    }
}

/*
 *  ======== DIO_tskReady ========
 */
Bool DIO_tskReady(DEV_Handle device, SEM_Handle sem)
{
    DIO_Handle  dio = (DIO_Handle)device->object;

    dio->context.sems.ready = sem;

    return (!(QUE_empty(device->fromdevice)));
}

/*
 *  ======== DIO_tskReclaim ========
 */
Int DIO_tskReclaim(DEV_Handle device)
{
    DIO_Handle  dio = (DIO_Handle)device->object;

    /*
     * Wait here if there are no buffers on the device->fromdevice
     * queue.
     */
    if (SEM_pend(dio->context.sems.complete, device->timeout)) {
        return (SYS_OK);
    }
    else {
        return (SYS_ETIMEOUT);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品18久久久久久vr| 精品国产3级a| 4438成人网| 日韩一区和二区| 久久久.com| 国产精品热久久久久夜色精品三区| 欧美大黄免费观看| 国产精品乱码人人做人人爱| 亚洲婷婷综合色高清在线| 亚洲欧洲一区二区在线播放| 亚洲国产成人tv| 免费精品视频最新在线| 麻豆国产欧美日韩综合精品二区 | 久久超碰97中文字幕| 国产精品一区二区三区99| 91久久精品一区二区三| 欧美一级片免费看| 中文字幕免费不卡| 奇米亚洲午夜久久精品| 国产成人在线免费观看| 波多野结衣一区二区三区| 欧美日韩免费电影| 亚洲精品一区二区三区影院 | 一区二区免费在线| 日日嗨av一区二区三区四区| 青娱乐精品视频| 国产aⅴ精品一区二区三区色成熟| 一本色道久久综合狠狠躁的推荐 | 亚洲成人先锋电影| 国产成人午夜精品影院观看视频 | 久久久久久久综合色一本| 国产精品美女久久久久高潮| 天天综合色天天| 成人h精品动漫一区二区三区| 欧美高清一级片在线| 亚洲福中文字幕伊人影院| 婷婷国产v国产偷v亚洲高清| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品日产欧美久久久久| 午夜精品福利久久久| 成人动漫视频在线| 欧美一级高清片| 国产精品久久久久久妇女6080| 精彩视频一区二区| 欧美亚洲动漫精品| 中文一区一区三区高中清不卡| 蜜臀av一区二区在线免费观看| 99vv1com这只有精品| 欧美一级黄色大片| 亚洲福利电影网| 99re66热这里只有精品3直播| 久久久久久久久久久电影| 水蜜桃久久夜色精品一区的特点 | 欧美一区二区三区啪啪| 亚洲精品免费在线播放| 国产成人欧美日韩在线电影| 欧美一区二区三区系列电影| 亚洲日韩欧美一区二区在线| 免费高清在线一区| 欧美视频一区二区三区在线观看| 亚洲天堂成人网| 懂色av一区二区三区免费观看 | 视频一区二区三区入口| 在线免费视频一区二区| 一区二区三区波多野结衣在线观看| 国产夫妻精品视频| 精品国产一区二区国模嫣然| 美国十次综合导航| 欧美日韩国产首页在线观看| 亚洲狼人国产精品| 99久久久久久99| 国产三级一区二区| 懂色av一区二区三区免费观看| 精品福利一二区| 奇米精品一区二区三区四区| 欧美群妇大交群的观看方式| 国产精品电影一区二区三区| 精品一区二区免费看| 91精品国产91热久久久做人人| 亚洲国产视频网站| 99国产欧美另类久久久精品| 国产精品久久久久久久久免费丝袜 | 91免费版在线看| 亚洲美女区一区| 91一区二区在线观看| 日本一二三四高清不卡| 国产精品资源站在线| 久久婷婷国产综合国色天香| 蜜臀av一级做a爰片久久| 在线观看91精品国产麻豆| 亚洲高清一区二区三区| 欧美三级电影在线观看| 亚洲h在线观看| 欧美日韩综合不卡| 午夜不卡在线视频| 欧美日韩一区小说| 亚洲一卡二卡三卡四卡无卡久久| 色婷婷综合久久久久中文一区二区 | 亚洲人一二三区| 色婷婷精品久久二区二区蜜臀av| 最新日韩av在线| 欧洲一区二区三区在线| 亚洲bt欧美bt精品| 精品免费国产一区二区三区四区| 国产一区美女在线| 国产欧美日韩综合精品一区二区| 国产精品一区二区黑丝| 国产精品午夜电影| 91亚洲永久精品| 日本一不卡视频| 精品动漫一区二区三区在线观看 | 日韩视频在线一区二区| 麻豆国产欧美日韩综合精品二区| 欧美午夜一区二区| 久久99精品国产91久久来源 | av电影一区二区| 亚洲一区二区三区中文字幕在线| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲女人小视频在线观看| 欧美乱妇一区二区三区不卡视频| 日韩成人精品视频| 5月丁香婷婷综合| 国产伦精品一区二区三区视频青涩 | 精品女同一区二区| 成人黄色网址在线观看| 性做久久久久久免费观看| 日韩欧美一二三| 成人三级在线视频| 亚洲国产精品一区二区www| 欧美日韩三级一区二区| 久久国产精品99久久久久久老狼| 国产欧美精品一区| voyeur盗摄精品| 蜜臂av日日欢夜夜爽一区| 欧美国产精品久久| 日韩午夜av电影| 成人一级片网址| 亚洲国产另类精品专区| 久久久精品免费网站| 色综合久久久久久久| 蜜桃一区二区三区在线观看| 亚洲嫩草精品久久| 精品久久五月天| 欧美精品1区2区3区| 国产成人福利片| 日韩和的一区二区| 久久伊人中文字幕| 欧美性色欧美a在线播放| 亚洲品质自拍视频| 国产亚洲精久久久久久| 99国产精品久久久久| 天堂va蜜桃一区二区三区| 中文字幕中文字幕中文字幕亚洲无线| 欧美日韩精品一区视频| 日本精品视频一区二区三区| 国产在线不卡视频| 五月天欧美精品| 中文字幕乱码久久午夜不卡 | 玉米视频成人免费看| 欧美va亚洲va| 精品婷婷伊人一区三区三| 久久97超碰色| 亚洲大尺度视频在线观看| 69p69国产精品| 99久久精品国产麻豆演员表| 国内精品免费在线观看| 午夜精品一区二区三区三上悠亚| 国产精品色在线观看| 精品1区2区在线观看| 欧美三级一区二区| 成人av网站在线观看免费| 极品尤物av久久免费看| 午夜欧美电影在线观看| 亚洲精品国产第一综合99久久| 国产偷国产偷精品高清尤物| 日韩一区二区三区视频在线| 日本精品视频一区二区| 成人免费av网站| 日本不卡1234视频| 亚洲成av人片| **欧美大码日韩| 国产精品乱码一区二区三区软件 | 一区二区在线看| 国产精品看片你懂得| 久久久九九九九| 欧美电影免费观看高清完整版在| 欧美军同video69gay| 欧美日精品一区视频| 91精品在线麻豆| 欧美日韩大陆一区二区| 91精品国产91久久久久久一区二区 | 国产69精品久久久久毛片| 美女视频黄频大全不卡视频在线播放| 亚洲成人一二三| 亚洲第一激情av| 亚洲一卡二卡三卡四卡五卡| 亚洲一区二区在线观看视频| 一区二区在线观看不卡| 国产精品欧美久久久久一区二区| 亚洲欧美在线另类|